From 1e9b0e6dbd89f40660ce00198d88803837239e48 Mon Sep 17 00:00:00 2001 From: Bjoern Gruening Date: Thu, 17 Mar 2016 05:21:25 +0100 Subject: [PATCH 1/2] add molecule datatypes, like PDB and some cheminformatic ones --- config/datatypes_conf.xml.sample | 54 ++ .../converters/cml_to_inchi_converter.xml | 22 + .../converters/cml_to_mol2_converter.xml | 22 + .../converters/cml_to_sdf_converter.xml | 22 + .../converters/cml_to_smi_converter.xml | 48 ++ .../converters/inchi_to_cml_converter.xml | 22 + .../converters/inchi_to_mol2_converter.xml | 22 + .../converters/inchi_to_mol_converter.xml | 22 + .../converters/inchi_to_sdf_converter.xml | 22 + .../converters/inchi_to_smi_converter.xml | 22 + .../converters/mol2_to_cml_converter.xml | 22 + .../converters/mol2_to_inchi_converter.xml | 22 + .../converters/mol2_to_mol_converter.xml | 22 + .../converters/mol2_to_sdf_converter.xml | 22 + .../converters/mol2_to_smi_converter.xml | 22 + .../converters/mol_to_cml_converter.xml | 21 + .../converters/mol_to_inchi_converter.xml | 21 + .../converters/mol_to_mol2_converter.xml | 21 + .../converters/mol_to_smi_converter.xml | 21 + .../converters/sdf_to_cml_converter.xml | 22 + .../converters/sdf_to_inchi_converter.xml | 22 + .../converters/sdf_to_mol2_converter.xml | 22 + .../converters/sdf_to_smi_converter.xml | 27 + .../converters/smi_to_cml_converter.xml | 22 + .../converters/smi_to_inchi_converter.xml | 22 + .../converters/smi_to_mol2_converter.xml | 22 + .../converters/smi_to_mol_converter.xml | 22 + .../converters/smi_to_sdf_converter.xml | 22 + .../converters/smi_to_smi_converter.xml | 48 ++ lib/galaxy/datatypes/molecules.py | 769 ++++++++++++++++++ lib/galaxy/datatypes/registry.py | 7 + lib/galaxy/datatypes/sniff.py | 18 + lib/galaxy/datatypes/test/5e5z.pdb | 357 ++++++++ lib/galaxy/datatypes/test/drugbank_drugs.cml | 385 +++++++++ .../datatypes/test/drugbank_drugs.inchi | 2 + lib/galaxy/datatypes/test/drugbank_drugs.mol2 | 354 ++++++++ lib/galaxy/datatypes/test/drugbank_drugs.sdf | 491 +++++++++++ lib/galaxy/datatypes/test/drugbank_drugs.smi | 2 + lib/galaxy/datatypes/test/q.fps | 7 + 39 files changed, 3115 insertions(+) create mode 100644 lib/galaxy/datatypes/converters/cml_to_inchi_converter.xml create mode 100644 lib/galaxy/datatypes/converters/cml_to_mol2_converter.xml create mode 100644 lib/galaxy/datatypes/converters/cml_to_sdf_converter.xml create mode 100644 lib/galaxy/datatypes/converters/cml_to_smi_converter.xml create mode 100644 lib/galaxy/datatypes/converters/inchi_to_cml_converter.xml create mode 100644 lib/galaxy/datatypes/converters/inchi_to_mol2_converter.xml create mode 100644 lib/galaxy/datatypes/converters/inchi_to_mol_converter.xml create mode 100644 lib/galaxy/datatypes/converters/inchi_to_sdf_converter.xml create mode 100644 lib/galaxy/datatypes/converters/inchi_to_smi_converter.xml create mode 100644 lib/galaxy/datatypes/converters/mol2_to_cml_converter.xml create mode 100644 lib/galaxy/datatypes/converters/mol2_to_inchi_converter.xml create mode 100644 lib/galaxy/datatypes/converters/mol2_to_mol_converter.xml create mode 100644 lib/galaxy/datatypes/converters/mol2_to_sdf_converter.xml create mode 100644 lib/galaxy/datatypes/converters/mol2_to_smi_converter.xml create mode 100644 lib/galaxy/datatypes/converters/mol_to_cml_converter.xml create mode 100644 lib/galaxy/datatypes/converters/mol_to_inchi_converter.xml create mode 100644 lib/galaxy/datatypes/converters/mol_to_mol2_converter.xml create mode 100644 lib/galaxy/datatypes/converters/mol_to_smi_converter.xml create mode 100644 lib/galaxy/datatypes/converters/sdf_to_cml_converter.xml create mode 100644 lib/galaxy/datatypes/converters/sdf_to_inchi_converter.xml create mode 100644 lib/galaxy/datatypes/converters/sdf_to_mol2_converter.xml create mode 100644 lib/galaxy/datatypes/converters/sdf_to_smi_converter.xml create mode 100644 lib/galaxy/datatypes/converters/smi_to_cml_converter.xml create mode 100644 lib/galaxy/datatypes/converters/smi_to_inchi_converter.xml create mode 100644 lib/galaxy/datatypes/converters/smi_to_mol2_converter.xml create mode 100644 lib/galaxy/datatypes/converters/smi_to_mol_converter.xml create mode 100644 lib/galaxy/datatypes/converters/smi_to_sdf_converter.xml create mode 100644 lib/galaxy/datatypes/converters/smi_to_smi_converter.xml create mode 100644 lib/galaxy/datatypes/molecules.py create mode 100644 lib/galaxy/datatypes/test/5e5z.pdb create mode 100644 lib/galaxy/datatypes/test/drugbank_drugs.cml create mode 100644 lib/galaxy/datatypes/test/drugbank_drugs.inchi create mode 100644 lib/galaxy/datatypes/test/drugbank_drugs.mol2 create mode 100644 lib/galaxy/datatypes/test/drugbank_drugs.sdf create mode 100644 lib/galaxy/datatypes/test/drugbank_drugs.smi create mode 100644 lib/galaxy/datatypes/test/q.fps diff --git a/config/datatypes_conf.xml.sample b/config/datatypes_conf.xml.sample index 6859e892924..f321bb5b59d 100644 --- a/config/datatypes_conf.xml.sample +++ b/config/datatypes_conf.xml.sample @@ -443,6 +443,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/cml_to_inchi_converter.xml b/lib/galaxy/datatypes/converters/cml_to_inchi_converter.xml new file mode 100644 index 00000000000..f6bc53f7f0d --- /dev/null +++ b/lib/galaxy/datatypes/converters/cml_to_inchi_converter.xml @@ -0,0 +1,22 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/cml_to_mol2_converter.xml b/lib/galaxy/datatypes/converters/cml_to_mol2_converter.xml new file mode 100644 index 00000000000..cf07535ed8e --- /dev/null +++ b/lib/galaxy/datatypes/converters/cml_to_mol2_converter.xml @@ -0,0 +1,22 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/cml_to_sdf_converter.xml b/lib/galaxy/datatypes/converters/cml_to_sdf_converter.xml new file mode 100644 index 00000000000..f5e238251b6 --- /dev/null +++ b/lib/galaxy/datatypes/converters/cml_to_sdf_converter.xml @@ -0,0 +1,22 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/cml_to_smi_converter.xml b/lib/galaxy/datatypes/converters/cml_to_smi_converter.xml new file mode 100644 index 00000000000..7fae58c4551 --- /dev/null +++ b/lib/galaxy/datatypes/converters/cml_to_smi_converter.xml @@ -0,0 +1,48 @@ + + + + + openbabel + + += 0: + -p $ph + #end if + + 2>&1 +]]> + + + + + + + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/inchi_to_cml_converter.xml b/lib/galaxy/datatypes/converters/inchi_to_cml_converter.xml new file mode 100644 index 00000000000..ab1db9455cc --- /dev/null +++ b/lib/galaxy/datatypes/converters/inchi_to_cml_converter.xml @@ -0,0 +1,22 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/inchi_to_mol2_converter.xml b/lib/galaxy/datatypes/converters/inchi_to_mol2_converter.xml new file mode 100644 index 00000000000..e7fbefb1d6e --- /dev/null +++ b/lib/galaxy/datatypes/converters/inchi_to_mol2_converter.xml @@ -0,0 +1,22 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/inchi_to_mol_converter.xml b/lib/galaxy/datatypes/converters/inchi_to_mol_converter.xml new file mode 100644 index 00000000000..bc6b2e69f99 --- /dev/null +++ b/lib/galaxy/datatypes/converters/inchi_to_mol_converter.xml @@ -0,0 +1,22 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/inchi_to_sdf_converter.xml b/lib/galaxy/datatypes/converters/inchi_to_sdf_converter.xml new file mode 100644 index 00000000000..5a2c3d238cb --- /dev/null +++ b/lib/galaxy/datatypes/converters/inchi_to_sdf_converter.xml @@ -0,0 +1,22 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/inchi_to_smi_converter.xml b/lib/galaxy/datatypes/converters/inchi_to_smi_converter.xml new file mode 100644 index 00000000000..87d75ca2513 --- /dev/null +++ b/lib/galaxy/datatypes/converters/inchi_to_smi_converter.xml @@ -0,0 +1,22 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/mol2_to_cml_converter.xml b/lib/galaxy/datatypes/converters/mol2_to_cml_converter.xml new file mode 100644 index 00000000000..ab040297baf --- /dev/null +++ b/lib/galaxy/datatypes/converters/mol2_to_cml_converter.xml @@ -0,0 +1,22 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/mol2_to_inchi_converter.xml b/lib/galaxy/datatypes/converters/mol2_to_inchi_converter.xml new file mode 100644 index 00000000000..a1215816505 --- /dev/null +++ b/lib/galaxy/datatypes/converters/mol2_to_inchi_converter.xml @@ -0,0 +1,22 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/mol2_to_mol_converter.xml b/lib/galaxy/datatypes/converters/mol2_to_mol_converter.xml new file mode 100644 index 00000000000..75b88369892 --- /dev/null +++ b/lib/galaxy/datatypes/converters/mol2_to_mol_converter.xml @@ -0,0 +1,22 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/mol2_to_sdf_converter.xml b/lib/galaxy/datatypes/converters/mol2_to_sdf_converter.xml new file mode 100644 index 00000000000..9bd01e9afb5 --- /dev/null +++ b/lib/galaxy/datatypes/converters/mol2_to_sdf_converter.xml @@ -0,0 +1,22 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/mol2_to_smi_converter.xml b/lib/galaxy/datatypes/converters/mol2_to_smi_converter.xml new file mode 100644 index 00000000000..05fac1f3f2a --- /dev/null +++ b/lib/galaxy/datatypes/converters/mol2_to_smi_converter.xml @@ -0,0 +1,22 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/mol_to_cml_converter.xml b/lib/galaxy/datatypes/converters/mol_to_cml_converter.xml new file mode 100644 index 00000000000..1af29c63fc3 --- /dev/null +++ b/lib/galaxy/datatypes/converters/mol_to_cml_converter.xml @@ -0,0 +1,21 @@ + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/mol_to_inchi_converter.xml b/lib/galaxy/datatypes/converters/mol_to_inchi_converter.xml new file mode 100644 index 00000000000..185e8337815 --- /dev/null +++ b/lib/galaxy/datatypes/converters/mol_to_inchi_converter.xml @@ -0,0 +1,21 @@ + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/mol_to_mol2_converter.xml b/lib/galaxy/datatypes/converters/mol_to_mol2_converter.xml new file mode 100644 index 00000000000..185e8337815 --- /dev/null +++ b/lib/galaxy/datatypes/converters/mol_to_mol2_converter.xml @@ -0,0 +1,21 @@ + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/mol_to_smi_converter.xml b/lib/galaxy/datatypes/converters/mol_to_smi_converter.xml new file mode 100644 index 00000000000..acc7616eec9 --- /dev/null +++ b/lib/galaxy/datatypes/converters/mol_to_smi_converter.xml @@ -0,0 +1,21 @@ + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/sdf_to_cml_converter.xml b/lib/galaxy/datatypes/converters/sdf_to_cml_converter.xml new file mode 100644 index 00000000000..0d63fe47427 --- /dev/null +++ b/lib/galaxy/datatypes/converters/sdf_to_cml_converter.xml @@ -0,0 +1,22 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/sdf_to_inchi_converter.xml b/lib/galaxy/datatypes/converters/sdf_to_inchi_converter.xml new file mode 100644 index 00000000000..1d78781f00b --- /dev/null +++ b/lib/galaxy/datatypes/converters/sdf_to_inchi_converter.xml @@ -0,0 +1,22 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/sdf_to_mol2_converter.xml b/lib/galaxy/datatypes/converters/sdf_to_mol2_converter.xml new file mode 100644 index 00000000000..ac326e239d6 --- /dev/null +++ b/lib/galaxy/datatypes/converters/sdf_to_mol2_converter.xml @@ -0,0 +1,22 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/sdf_to_smi_converter.xml b/lib/galaxy/datatypes/converters/sdf_to_smi_converter.xml new file mode 100644 index 00000000000..f157f799c02 --- /dev/null +++ b/lib/galaxy/datatypes/converters/sdf_to_smi_converter.xml @@ -0,0 +1,27 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/smi_to_cml_converter.xml b/lib/galaxy/datatypes/converters/smi_to_cml_converter.xml new file mode 100644 index 00000000000..0ab97693d2b --- /dev/null +++ b/lib/galaxy/datatypes/converters/smi_to_cml_converter.xml @@ -0,0 +1,22 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/smi_to_inchi_converter.xml b/lib/galaxy/datatypes/converters/smi_to_inchi_converter.xml new file mode 100644 index 00000000000..75de06cbeb9 --- /dev/null +++ b/lib/galaxy/datatypes/converters/smi_to_inchi_converter.xml @@ -0,0 +1,22 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/smi_to_mol2_converter.xml b/lib/galaxy/datatypes/converters/smi_to_mol2_converter.xml new file mode 100644 index 00000000000..df068cace6f --- /dev/null +++ b/lib/galaxy/datatypes/converters/smi_to_mol2_converter.xml @@ -0,0 +1,22 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/smi_to_mol_converter.xml b/lib/galaxy/datatypes/converters/smi_to_mol_converter.xml new file mode 100644 index 00000000000..c9959815b75 --- /dev/null +++ b/lib/galaxy/datatypes/converters/smi_to_mol_converter.xml @@ -0,0 +1,22 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/smi_to_sdf_converter.xml b/lib/galaxy/datatypes/converters/smi_to_sdf_converter.xml new file mode 100644 index 00000000000..f5c213dd275 --- /dev/null +++ b/lib/galaxy/datatypes/converters/smi_to_sdf_converter.xml @@ -0,0 +1,22 @@ + + + + + openbabel + + +&1 +]]> + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/converters/smi_to_smi_converter.xml b/lib/galaxy/datatypes/converters/smi_to_smi_converter.xml new file mode 100644 index 00000000000..ce0f1ba63ed --- /dev/null +++ b/lib/galaxy/datatypes/converters/smi_to_smi_converter.xml @@ -0,0 +1,48 @@ + + + + + openbabel + + += 0: + -p $ph + #end if + + 2>&1 +]]> + + + + + + + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/molecules.py b/lib/galaxy/datatypes/molecules.py new file mode 100644 index 00000000000..ce66f4b88cb --- /dev/null +++ b/lib/galaxy/datatypes/molecules.py @@ -0,0 +1,769 @@ +# -*- coding: utf-8 -*- + +from galaxy.datatypes import data +import logging +from galaxy.datatypes.sniff import get_headers +from galaxy.datatypes.data import get_file_peek +from galaxy.datatypes.tabular import Tabular +from galaxy.datatypes.binary import Binary +from galaxy.datatypes.xml import GenericXml +import subprocess +import os + +from galaxy.datatypes.metadata import MetadataElement +from galaxy.datatypes import metadata + +log = logging.getLogger(__name__) + + +def count_special_lines(word, filename, invert=False): + """ + searching for special 'words' using the grep tool + grep is used to speed up the searching and counting + The number of hits is returned. + """ + try: + cmd = ["grep", "-c"] + if invert: + cmd.append('-v') + cmd.extend([word, filename]) + out = subprocess.Popen(cmd, stdout=subprocess.PIPE) + return int(out.communicate()[0].split()[0]) + except: + pass + return 0 + + +def count_lines(filename, non_empty=False): + """ + counting the number of lines from the 'filename' file + """ + try: + if non_empty: + out = subprocess.Popen(['grep', '-cve', '^\s*$', filename], stdout=subprocess.PIPE) + else: + out = subprocess.Popen(['wc', '-l', filename], stdout=subprocess.PIPE) + return int(out.communicate()[0].split()[0]) + except: + pass + return 0 + + +class GenericMolFile(data.Text): + """ + abstract class for most of the molecule files + """ + MetadataElement(name="number_of_molecules", default=0, desc="Number of molecules", readonly=True, visible=True, optional=True, no_value=0) + + def set_peek(self, dataset, is_multi_byte=False): + if not dataset.dataset.purged: + dataset.peek = get_file_peek(dataset.file_name, is_multi_byte=is_multi_byte) + if (dataset.metadata.number_of_molecules == 1): + dataset.blurb = "1 molecule" + else: + dataset.blurb = "%s molecules" % dataset.metadata.number_of_molecules + dataset.peek = data.get_file_peek(dataset.file_name, is_multi_byte=is_multi_byte) + else: + dataset.peek = 'file does not exist' + dataset.blurb = 'file purged from disk' + + def get_mime(self): + return 'text/plain' + + +class MOL(GenericMolFile): + file_ext = "mol" + + def set_meta(self, dataset, **kwd): + """ + Set the number molecules, in the case of MOL its always one. + """ + dataset.metadata.number_of_molecules = 1 + + +class SDF(GenericMolFile): + file_ext = "sdf" + + def sniff(self, filename): + """ + Try to guess if the file is a SDF2 file. + + >>> from galaxy.datatypes.sniff import get_test_fname + >>> fname = get_test_fname('drugbank_drugs.sdf') + >>> SDF().sniff(fname) + True + + >>> fname = get_test_fname('drugbank_drugs.cml') + >>> SDF().sniff(fname) + False + """ + counter = count_special_lines("^M\s*END", filename) + count_special_lines("^\$\$\$\$", filename) + if counter > 0 and counter % 2 == 0: + return True + else: + return False + + def set_meta(self, dataset, **kwd): + """ + Set the number of molecules in dataset. + """ + dataset.metadata.number_of_molecules = count_special_lines("^\$\$\$\$", dataset.file_name) + + def split(cls, input_datasets, subdir_generator_function, split_params): + """ + Split the input files by molecule records. + """ + if split_params is None: + return None + + if len(input_datasets) > 1: + raise Exception("SD-file splitting does not support multiple files") + input_files = [ds.file_name for ds in input_datasets] + + chunk_size = None + if split_params['split_mode'] == 'number_of_parts': + raise Exception('Split mode "%s" is currently not implemented for SD-files.' % split_params['split_mode']) + elif split_params['split_mode'] == 'to_size': + chunk_size = int(split_params['split_size']) + else: + raise Exception('Unsupported split mode %s' % split_params['split_mode']) + + def _read_sdf_records(filename): + lines = [] + with open(filename) as handle: + for line in handle: + lines.append(line) + if line.startswith("$$$$"): + yield lines + lines = [] + + def _write_part_sdf_file(accumulated_lines): + part_dir = subdir_generator_function() + part_path = os.path.join(part_dir, os.path.basename(input_files[0])) + part_file = open(part_path, 'w') + part_file.writelines(accumulated_lines) + part_file.close() + + try: + sdf_records = _read_sdf_records(input_files[0]) + sdf_lines_accumulated = [] + for counter, sdf_record in enumerate(sdf_records, start=1): + sdf_lines_accumulated.extend(sdf_record) + if counter % chunk_size == 0: + _write_part_sdf_file(sdf_lines_accumulated) + sdf_lines_accumulated = [] + if sdf_lines_accumulated: + _write_part_sdf_file(sdf_lines_accumulated) + except Exception, e: + log.error('Unable to split files: %s' % str(e)) + raise + split = classmethod(split) + + +class MOL2(GenericMolFile): + file_ext = "mol2" + + def sniff(self, filename): + """ + Try to guess if the file is a MOL2 file. + + >>> from galaxy.datatypes.sniff import get_test_fname + >>> fname = get_test_fname('drugbank_drugs.mol2') + >>> MOL2().sniff(fname) + True + + >>> fname = get_test_fname('drugbank_drugs.cml') + >>> MOL2().sniff(fname) + False + """ + if count_special_lines("@MOLECULE", filename) > 0: + return True + else: + return False + + def set_meta(self, dataset, **kwd): + """ + Set the number of lines of data in dataset. + """ + dataset.metadata.number_of_molecules = count_special_lines("@MOLECULE", dataset.file_name) + + def split(cls, input_datasets, subdir_generator_function, split_params): + """ + Split the input files by molecule records. + """ + if split_params is None: + return None + + if len(input_datasets) > 1: + raise Exception("MOL2-file splitting does not support multiple files") + input_files = [ds.file_name for ds in input_datasets] + + chunk_size = None + if split_params['split_mode'] == 'number_of_parts': + raise Exception('Split mode "%s" is currently not implemented for MOL2-files.' % split_params['split_mode']) + elif split_params['split_mode'] == 'to_size': + chunk_size = int(split_params['split_size']) + else: + raise Exception('Unsupported split mode %s' % split_params['split_mode']) + + def _read_mol2_records(filename): + lines = [] + start = True + with open(filename) as handle: + for line in handle: + if line.startswith("@MOLECULE"): + if start: + start = False + else: + yield lines + lines = [] + lines.append(line) + + def _write_part_mol2_file(accumulated_lines): + part_dir = subdir_generator_function() + part_path = os.path.join(part_dir, os.path.basename(input_files[0])) + part_file = open(part_path, 'w') + part_file.writelines(accumulated_lines) + part_file.close() + + try: + mol2_records = _read_mol2_records(input_files[0]) + mol2_lines_accumulated = [] + for counter, mol2_record in enumerate(mol2_records, start=1): + mol2_lines_accumulated.extend(mol2_record) + if counter % chunk_size == 0: + _write_part_mol2_file(mol2_lines_accumulated) + mol2_lines_accumulated = [] + if mol2_lines_accumulated: + _write_part_mol2_file(mol2_lines_accumulated) + except Exception, e: + log.error('Unable to split files: %s' % str(e)) + raise + split = classmethod(split) + + +class FPS(GenericMolFile): + """ + chemfp fingerprint file: http://code.google.com/p/chem-fingerprints/wiki/FPS + """ + file_ext = "fps" + + def sniff(self, filename): + """ + Try to guess if the file is a FPS file. + + >>> from galaxy.datatypes.sniff import get_test_fname + >>> fname = get_test_fname('q.fps') + >>> FPS().sniff(fname) + True + + >>> fname = get_test_fname('drugbank_drugs.cml') + >>> FPS().sniff(fname) + False + """ + header = get_headers(filename, sep='\t', count=1) + if header[0][0].strip() == '#FPS1': + return True + else: + return False + + def set_meta(self, dataset, **kwd): + """ + Set the number of lines of data in dataset. + """ + dataset.metadata.number_of_molecules = count_special_lines('^#', dataset.file_name, invert=True) + + def split(cls, input_datasets, subdir_generator_function, split_params): + """ + Split the input files by fingerprint records. + """ + if split_params is None: + return None + + if len(input_datasets) > 1: + raise Exception("FPS-file splitting does not support multiple files") + input_files = [ds.file_name for ds in input_datasets] + + chunk_size = None + if split_params['split_mode'] == 'number_of_parts': + raise Exception('Split mode "%s" is currently not implemented for MOL2-files.' % split_params['split_mode']) + elif split_params['split_mode'] == 'to_size': + chunk_size = int(split_params['split_size']) + else: + raise Exception('Unsupported split mode %s' % split_params['split_mode']) + + def _write_part_fingerprint_file(accumulated_lines): + part_dir = subdir_generator_function() + part_path = os.path.join(part_dir, os.path.basename(input_files[0])) + part_file = open(part_path, 'w') + part_file.writelines(accumulated_lines) + part_file.close() + + try: + header_lines = [] + lines_accumulated = [] + fingerprint_counter = 0 + for line in open(input_files[0]): + if not line.strip(): + continue + if line.startswith('#'): + header_lines.append(line) + else: + fingerprint_counter += 1 + lines_accumulated.append(line) + if fingerprint_counter != 0 and fingerprint_counter % chunk_size == 0: + _write_part_fingerprint_file(header_lines + lines_accumulated) + lines_accumulated = [] + if lines_accumulated: + _write_part_fingerprint_file(header_lines + lines_accumulated) + except Exception, e: + log.error('Unable to split files: %s' % str(e)) + raise + split = classmethod(split) + + def merge(split_files, output_file): + """ + Merging fps files requires merging the header manually. + We take the header from the first file. + """ + if len(split_files) == 1: + # For one file only, use base class method (move/copy) + return data.Text.merge(split_files, output_file) + if not split_files: + raise ValueError("No fps files given, %r, to merge into %s" + % (split_files, output_file)) + out = open(output_file, "w") + first = True + for filename in split_files: + with open(filename) as handle: + for line in handle: + if line.startswith('#'): + if first: + out.write(line) + else: + # line is no header and not a comment, we assume the first header is written to out and we set 'first' to False + first = False + out.write(line) + out.close() + merge = staticmethod(merge) + + +class OBFS(Binary): + """OpenBabel Fastsearch format (fs).""" + file_ext = 'fs' + composite_type = 'basic' + allow_datatype_change = False + + MetadataElement(name="base_name", default='OpenBabel Fastsearch Index', + readonly=True, visible=True, optional=True,) + + def __init__(self, **kwd): + """ + A Fastsearch Index consists of a binary file with the fingerprints + and a pointer the actual molecule file. + """ + Binary.__init__(self, **kwd) + self.add_composite_file('molecule.fs', is_binary=True, + description='OpenBabel Fastsearch Index') + self.add_composite_file('molecule.sdf', optional=True, + is_binary=False, description='Molecule File') + self.add_composite_file('molecule.smi', optional=True, + is_binary=False, description='Molecule File') + self.add_composite_file('molecule.inchi', optional=True, + is_binary=False, description='Molecule File') + self.add_composite_file('molecule.mol2', optional=True, + is_binary=False, description='Molecule File') + self.add_composite_file('molecule.cml', optional=True, + is_binary=False, description='Molecule File') + + def set_peek(self, dataset, is_multi_byte=False): + """Set the peek and blurb text.""" + if not dataset.dataset.purged: + dataset.peek = "OpenBabel Fastsearch Index" + dataset.blurb = "OpenBabel Fastsearch Index" + else: + dataset.peek = "file does not exist" + dataset.blurb = "file purged from disk" + + def display_peek(self, dataset): + """Create HTML content, used for displaying peek.""" + try: + return dataset.peek + except: + return "OpenBabel Fastsearch Index" + + def display_data(self, trans, data, preview=False, filename=None, + to_ext=None, size=None, offset=None, **kwd): + """Apparently an old display method, but still gets called. + + This allows us to format the data shown in the central pane via the "eye" icon. + """ + return "This is a OpenBabel Fastsearch format. You can speed up your similarity and substructure search with it." + + def get_mime(self): + """Returns the mime type of the datatype (pretend it is text for peek)""" + return 'text/plain' + + def merge(split_files, output_file, extra_merge_args): + """Merging Fastsearch indices is not supported.""" + raise NotImplementedError("Merging Fastsearch indices is not supported.") + + def split(cls, input_datasets, subdir_generator_function, split_params): + """Splitting Fastsearch indices is not supported.""" + if split_params is None: + return None + raise NotImplementedError("Splitting Fastsearch indices is not possible.") + + +class DRF(GenericMolFile): + file_ext = "drf" + + def set_meta(self, dataset, **kwd): + """ + Set the number of lines of data in dataset. + """ + dataset.metadata.number_of_molecules = count_special_lines('\"ligand id\"', dataset.file_name, invert=True) + + +class PHAR(GenericMolFile): + """ + Pharmacophore database format from silicos-it. + """ + file_ext = "phar" + + def set_peek(self, dataset, is_multi_byte=False): + if not dataset.dataset.purged: + dataset.peek = get_file_peek(dataset.file_name, is_multi_byte=is_multi_byte) + dataset.blurb = "pharmacophore" + else: + dataset.peek = 'file does not exist' + dataset.blurb = 'file purged from disk' + + +class PDB(GenericMolFile): + """ + Protein Databank format. + http://www.wwpdb.org/documentation/format33/v3.3.html + """ + file_ext = "pdb" + + def sniff(self, filename): + """ + Try to guess if the file is a PDB file. + + >>> from galaxy.datatypes.sniff import get_test_fname + >>> fname = get_test_fname('5e5z.pdb') + >>> PDB().sniff(fname) + True + + >>> fname = get_test_fname('drugbank_drugs.cml') + >>> PDB().sniff(fname) + False + """ + headers = get_headers(filename, sep=' ', count=300) + h = t = c = s = k = e = False + for line in headers: + section_name = line[0].strip() + if section_name == 'HEADER': + h = True + elif section_name == 'TITLE': + t = True + elif section_name == 'COMPND': + c = True + elif section_name == 'SOURCE': + s = True + elif section_name == 'KEYWDS': + k = True + elif section_name == 'EXPDTA': + e = True + + if h * t * c * s * k * e: + return True + else: + return False + + def set_peek(self, dataset, is_multi_byte=False): + if not dataset.dataset.purged: + atom_numbers = count_special_lines("^ATOM", dataset.file_name) + hetatm_numbers = count_special_lines("^HETATM", dataset.file_name) + dataset.peek = get_file_peek(dataset.file_name, is_multi_byte=is_multi_byte) + dataset.blurb = "%s atoms and %s HET-atoms" % (atom_numbers, hetatm_numbers) + else: + dataset.peek = 'file does not exist' + dataset.blurb = 'file purged from disk' + + +class grd(data.Text): + file_ext = "grd" + + def set_peek(self, dataset, is_multi_byte=False): + if not dataset.dataset.purged: + dataset.peek = get_file_peek(dataset.file_name, is_multi_byte=is_multi_byte) + dataset.blurb = "grids for docking" + else: + dataset.peek = 'file does not exist' + dataset.blurb = 'file purged from disk' + + +class grdtgz(Binary): + file_ext = "grd.tgz" + + def set_peek(self, dataset, is_multi_byte=False): + if not dataset.dataset.purged: + dataset.peek = 'binary data' + dataset.blurb = "compressed grids for docking" + else: + dataset.peek = 'file does not exist' + dataset.blurb = 'file purged from disk' + + +class InChI(Tabular): + file_ext = "inchi" + column_names = ['InChI'] + MetadataElement(name="columns", default=2, desc="Number of columns", readonly=True, visible=False) + MetadataElement(name="column_types", default=['str'], param=metadata.ColumnTypesParameter, desc="Column types", readonly=True, visible=False) + MetadataElement(name="number_of_molecules", default=0, desc="Number of molecules", readonly=True, visible=True, optional=True, no_value=0) + + def set_meta(self, dataset, **kwd): + """ + Set the number of lines of data in dataset. + """ + dataset.metadata.number_of_molecules = self.count_data_lines(dataset) + + def set_peek(self, dataset, is_multi_byte=False): + if not dataset.dataset.purged: + dataset.peek = get_file_peek(dataset.file_name, is_multi_byte=is_multi_byte) + if (dataset.metadata.number_of_molecules == 1): + dataset.blurb = "1 molecule" + else: + dataset.blurb = "%s molecules" % dataset.metadata.number_of_molecules + dataset.peek = data.get_file_peek(dataset.file_name, is_multi_byte=is_multi_byte) + else: + dataset.peek = 'file does not exist' + dataset.blurb = 'file purged from disk' + + def sniff(self, filename): + """ + Try to guess if the file is a InChI file. + + >>> from galaxy.datatypes.sniff import get_test_fname + >>> fname = get_test_fname('drugbank_drugs.inchi') + >>> InChI().sniff(fname) + True + + >>> fname = get_test_fname('drugbank_drugs.cml') + >>> InChI().sniff(fname) + False + """ + inchi_lines = get_headers(filename, sep=' ', count=10) + for inchi in inchi_lines: + if not inchi[0].startswith('InChI='): + return False + return True + + +class SMILES(Tabular): + file_ext = "smi" + column_names = ['SMILES', 'TITLE'] + MetadataElement(name="columns", default=2, desc="Number of columns", readonly=True, visible=False) + MetadataElement(name="column_types", default=['str', 'str'], param=metadata.ColumnTypesParameter, desc="Column types", readonly=True, visible=False) + MetadataElement(name="number_of_molecules", default=0, desc="Number of molecules", readonly=True, visible=True, optional=True, no_value=0) + + def set_meta(self, dataset, **kwd): + """ + Set the number of lines of data in dataset. + """ + dataset.metadata.number_of_molecules = self.count_data_lines(dataset) + + def set_peek(self, dataset, is_multi_byte=False): + if not dataset.dataset.purged: + dataset.peek = get_file_peek(dataset.file_name, is_multi_byte=is_multi_byte) + if dataset.metadata.number_of_molecules == 1: + dataset.blurb = "1 molecule" + else: + dataset.blurb = "%s molecules" % dataset.metadata.number_of_molecules + dataset.peek = data.get_file_peek(dataset.file_name, is_multi_byte=is_multi_byte) + else: + dataset.peek = 'file does not exist' + dataset.blurb = 'file purged from disk' + + ''' + def sniff(self, filename): + """ + Its hard or impossible to sniff a SMILES File. We can + try to import the first SMILES and check if it is a molecule, but + currently its not possible to use external libraries in datatype definition files. + Moreover it seems mpossible to inlcude OpenBabel as python library because OpenBabel + is GPL licensed. + """ + self.molecule_number = count_lines(filename, non_empty = True) + word_count = count_lines(filename) + + if self.molecule_number != word_count: + return False + + if self.molecule_number > 0: + # test first 3 SMILES + smiles_lines = get_headers(filename, sep='\t', count=3) + for smiles_line in smiles_lines: + if len(smiles_line) > 2: + return False + smiles = smiles_line[0] + try: + # if we have atoms, we have a molecule + if not len(pybel.readstring('smi', smiles).atoms) > 0: + return False + except: + # if convert fails its not a smiles string + return False + return True + else: + return False + ''' + + +class CML(GenericXml): + """ + Chemical Markup Language + http://cml.sourceforge.net/ + """ + file_ext = "cml" + MetadataElement(name="number_of_molecules", default=0, desc="Number of molecules", readonly=True, visible=True, optional=True, no_value=0) + + def set_meta(self, dataset, **kwd): + """ + Set the number of lines of data in dataset. + """ + dataset.metadata.number_of_molecules = count_special_lines('^\s*>> from galaxy.datatypes.sniff import get_test_fname + >>> fname = get_test_fname('interval.interval') + >>> CML().sniff(fname) + False + + >>> fname = get_test_fname('drugbank_drugs.cml') + >>> CML().sniff(fname) + True + """ + handle = open(filename) + line = handle.readline() + if line.strip() != '': + handle.close() + return False + line = handle.readline() + if line.strip().find('http://www.xml-cml.org/schema') == -1: + handle.close() + return False + handle.close() + return True + + def split(cls, input_datasets, subdir_generator_function, split_params): + """ + Split the input files by molecule records. + """ + if split_params is None: + return None + + if len(input_datasets) > 1: + raise Exception("CML-file splitting does not support multiple files") + input_files = [ds.file_name for ds in input_datasets] + + chunk_size = None + if split_params['split_mode'] == 'number_of_parts': + raise Exception('Split mode "%s" is currently not implemented for CML-files.' % split_params['split_mode']) + elif split_params['split_mode'] == 'to_size': + chunk_size = int(split_params['split_size']) + else: + raise Exception('Unsupported split mode %s' % split_params['split_mode']) + + def _read_cml_records(filename): + lines = [] + with open(filename) as handle: + for line in handle: + if line.lstrip().startswith('') or \ + line.lstrip().startswith('\n', '\n'] + footer_line = ['\n'] + + def _write_part_cml_file(accumulated_lines): + part_dir = subdir_generator_function() + part_path = os.path.join(part_dir, os.path.basename(input_files[0])) + part_file = open(part_path, 'w') + part_file.writelines(header_lines) + part_file.writelines(accumulated_lines) + part_file.writelines(footer_line) + part_file.close() + + try: + cml_records = _read_cml_records(input_files[0]) + cml_lines_accumulated = [] + for counter, cml_record in enumerate(cml_records, start=1): + cml_lines_accumulated.extend(cml_record) + if counter % chunk_size == 0: + _write_part_cml_file(cml_lines_accumulated) + cml_lines_accumulated = [] + if cml_lines_accumulated: + _write_part_cml_file(cml_lines_accumulated) + except Exception, e: + log.error('Unable to split files: %s' % str(e)) + raise + split = classmethod(split) + + def merge(split_files, output_file): + """ + Merging CML files. + """ + if len(split_files) == 1: + # For one file only, use base class method (move/copy) + return data.Text.merge(split_files, output_file) + if not split_files: + raise ValueError("Given no CML files, %r, to merge into %s" + % (split_files, output_file)) + with open(output_file, "w") as out: + for filename in split_files: + with open(filename) as handle: + header = handle.readline() + if not header: + raise ValueError("CML file %s was empty" % filename) + if not header.lstrip().startswith(''): + out.write(header) + raise ValueError("%s is not a valid XML file!" % filename) + line = handle.readline() + header += line + if not line.lstrip().startswith(' + if line.lstrip().startswith(''): + continue + if line.lstrip().startswith('\n") + merge = staticmethod(merge) diff --git a/lib/galaxy/datatypes/registry.py b/lib/galaxy/datatypes/registry.py index 56425fe12d7..0669df313e1 100644 --- a/lib/galaxy/datatypes/registry.py +++ b/lib/galaxy/datatypes/registry.py @@ -11,6 +11,7 @@ from . import data from . import tabular from . import interval from . import images +from . import molecules from . import sequence from . import qualityscore from . import xml @@ -738,6 +739,7 @@ class Registry( object ): binary.MzSQlite(), binary.IdpDB(), binary.SQlite(), + molecules.CML(), xml.GenericXml(), sequence.Maf(), sequence.Lav(), @@ -758,6 +760,11 @@ class Registry( object ): interval.Interval(), tabular.Sam(), tabular.Eland(), + molecules.SDF(), + molecules.FPS(), + molecules.InChI(), + molecules.MOL2(), + molecules.PDB(), tabular.CSV() ] diff --git a/lib/galaxy/datatypes/sniff.py b/lib/galaxy/datatypes/sniff.py index d85807d1309..241962a8015 100644 --- a/lib/galaxy/datatypes/sniff.py +++ b/lib/galaxy/datatypes/sniff.py @@ -324,6 +324,24 @@ def guess_ext( fname, sniff_order, is_multi_byte=False ): >>> fname = get_test_fname('test.mz5') >>> guess_ext(fname, sniff_order) 'h5' + >>> fname = get_test_fname('drugbank_drugs.cml') + >>> guess_ext(fname, sniff_order) + 'cml' + >>> fname = get_test_fname('q.fps') + >>> guess_ext(fname, sniff_order) + 'fps' + >>> fname = get_test_fname('drugbank_drugs.inchi') + >>> guess_ext(fname, sniff_order) + 'inchi' + >>> fname = get_test_fname('drugbank_drugs.mol2') + >>> guess_ext(fname, sniff_order) + 'mol2' + >>> fname = get_test_fname('drugbank_drugs.sdf') + >>> guess_ext(fname, sniff_order) + 'sdf' + >>> fname = get_test_fname('5e5z.pdb') + >>> guess_ext(fname, sniff_order) + 'pdb' """ for datatype in sniff_order: """ diff --git a/lib/galaxy/datatypes/test/5e5z.pdb b/lib/galaxy/datatypes/test/5e5z.pdb new file mode 100644 index 00000000000..395b1fe3d11 --- /dev/null +++ b/lib/galaxy/datatypes/test/5e5z.pdb @@ -0,0 +1,357 @@ +HEADER DE NOVO PROTEIN, MEMBRANE PROTEIN 09-OCT-15 5E5Z +TITLE STRUCTURE OF THE AMYLOID FORMING PEPTIDE LVHSSN (RESIDUES +COMPND MOL_ID: 1; +COMPND 2 MOLECULE: LVHSSN (RESIDUES 16-21) FROM ISLET AMYLOID POLYPEPTIDE; +COMPND 3 CHAIN: A; +COMPND 4 ENGINEERED: YES +SOURCE MOL_ID: 1; +SOURCE 2 SYNTHETIC: YES; +SOURCE 3 ORGANISM_SCIENTIFIC: HOMO SAPIENS; +SOURCE 4 ORGANISM_TAXID: 9606 +KEYWDS AMYLOID-LIKE PROTOFIBRIL, DE NOVO PROTEIN, MEMBRANE PROTEIN, PROTEIN +KEYWDS 2 FIBRIL +EXPDTA X-RAY DIFFRACTION +AUTHOR A.B.SORIAGA,D.EISENBERG +REVDAT 2 20-JAN-16 5E5Z 1 JRNL +REVDAT 1 16-DEC-15 5E5Z 0 +JRNL AUTH A.B.SORIAGA,S.SANGWAN,R.MACDONALD,M.R.SAWAYA,D.EISENBERG +JRNL TITL CRYSTAL STRUCTURES OF IAPP AMYLOIDOGENIC SEGMENTS REVEAL A +JRNL TITL 2 NOVEL PACKING MOTIF OF OUT-OF-REGISTER BETA SHEETS. +JRNL REF J.PHYS.CHEM.B 2016 +JRNL REFN ISSN 1089-5647 +JRNL PMID 26629790 +JRNL DOI 10.1021/ACS.JPCB.5B09981 +REMARK 2 +REMARK 2 RESOLUTION. 1.66 ANGSTROMS. +REMARK 3 +REMARK 3 REFINEMENT. +REMARK 3 PROGRAM : PHENIX 1.6.4_486 +REMARK 3 AUTHORS : PAUL ADAMS,PAVEL AFONINE,VINCENT CHEN,IAN +REMARK 3 : DAVIS,KRESHNA GOPAL,RALF GROSSE-KUNSTLEVE, +REMARK 3 : LI-WEI HUNG,ROBERT IMMORMINO,TOM IOERGER, +REMARK 3 : AIRLIE MCCOY,ERIK MCKEE,NIGEL MORIARTY, +REMARK 3 : REETAL PAI,RANDY READ,JANE RICHARDSON, +REMARK 3 : DAVID RICHARDSON,TOD ROMO,JIM SACCHETTINI, +REMARK 3 : NICHOLAS SAUTER,JACOB SMITH,LAURENT +REMARK 3 : STORONI,TOM TERWILLIGER,PETER ZWART +REMARK 3 +REMARK 3 REFINEMENT TARGET : LS_WUNIT_K1 +REMARK 3 +REMARK 3 DATA USED IN REFINEMENT. +REMARK 3 RESOLUTION RANGE HIGH (ANGSTROMS) : 1.66 +REMARK 3 RESOLUTION RANGE LOW (ANGSTROMS) : 9.46 +REMARK 3 MIN(FOBS/SIGMA_FOBS) : 0.000 +REMARK 3 COMPLETENESS FOR RANGE (%) : 89.1 +REMARK 3 NUMBER OF REFLECTIONS : 391 +REMARK 3 +REMARK 3 FIT TO DATA USED IN REFINEMENT. +REMARK 3 R VALUE (WORKING + TEST SET) : 0.170 +REMARK 3 R VALUE (WORKING SET) : 0.167 +REMARK 3 FREE R VALUE : 0.198 +REMARK 3 FREE R VALUE TEST SET SIZE (%) : 4.600 +REMARK 3 FREE R VALUE TEST SET COUNT : 18 +REMARK 3 +REMARK 3 FIT TO DATA USED IN REFINEMENT (IN BINS). +REMARK 3 BIN RESOLUTION RANGE COMPL. NWORK NFREE RWORK RFREE +REMARK 3 1 9.4587 - 1.6644 0.89 373 18 0.1673 0.1983 +REMARK 3 +REMARK 3 BULK SOLVENT MODELLING. +REMARK 3 METHOD USED : FLAT BULK SOLVENT MODEL +REMARK 3 SOLVENT RADIUS : 0.00 +REMARK 3 SHRINKAGE RADIUS : 0.00 +REMARK 3 K_SOL : 0.60 +REMARK 3 B_SOL : 251.4 +REMARK 3 +REMARK 3 ERROR ESTIMATES. +REMARK 3 COORDINATE ERROR (MAXIMUM-LIKELIHOOD BASED) : 0.310 +REMARK 3 PHASE ERROR (DEGREES, MAXIMUM-LIKELIHOOD BASED) : 18.270 +REMARK 3 +REMARK 3 B VALUES. +REMARK 3 FROM WILSON PLOT (A**2) : NULL +REMARK 3 MEAN B VALUE (OVERALL, A**2) : NULL +REMARK 3 OVERALL ANISOTROPIC B VALUE. +REMARK 3 B11 (A**2) : 0.51090 +REMARK 3 B22 (A**2) : -3.44720 +REMARK 3 B33 (A**2) : -8.26450 +REMARK 3 B12 (A**2) : 0.00000 +REMARK 3 B13 (A**2) : 0.77970 +REMARK 3 B23 (A**2) : 0.00000 +REMARK 3 +REMARK 3 TWINNING INFORMATION. +REMARK 3 FRACTION: NULL +REMARK 3 OPERATOR: NULL +REMARK 3 +REMARK 3 DEVIATIONS FROM IDEAL VALUES. +REMARK 3 RMSD COUNT +REMARK 3 BOND : 0.004 46 +REMARK 3 ANGLE : 0.975 62 +REMARK 3 CHIRALITY : 0.056 8 +REMARK 3 PLANARITY : 0.004 8 +REMARK 3 DIHEDRAL : 10.740 15 +REMARK 3 +REMARK 3 TLS DETAILS +REMARK 3 NUMBER OF TLS GROUPS : 1 +REMARK 3 TLS GROUP : 1 +REMARK 3 SELECTION: ALL +REMARK 3 ORIGIN FOR THE GROUP (A): 4.5323 0.1096 3.9760 +REMARK 3 T TENSOR +REMARK 3 T11: -0.1260 T22: -0.0788 +REMARK 3 T33: -0.0487 T12: 0.0821 +REMARK 3 T13: -0.0518 T23: 0.0723 +REMARK 3 L TENSOR +REMARK 3 L11: 0.1003 L22: 0.0184 +REMARK 3 L33: 0.0647 L12: -0.0319 +REMARK 3 L13: 0.0506 L23: -0.0233 +REMARK 3 S TENSOR +REMARK 3 S11: 0.0084 S12: -0.0300 S13: -0.0565 +REMARK 3 S21: 0.0231 S22: 0.0090 S23: 0.0127 +REMARK 3 S31: -0.0046 S32: -0.0049 S33: -0.0009 +REMARK 3 +REMARK 3 NCS DETAILS +REMARK 3 NUMBER OF NCS GROUPS : NULL +REMARK 3 +REMARK 3 OTHER REFINEMENT REMARKS: NULL +REMARK 4 +REMARK 4 5E5Z COMPLIES WITH FORMAT V. 3.30, 13-JUL-11 +REMARK 100 +REMARK 100 THIS ENTRY HAS BEEN PROCESSED BY RCSB ON 09-OCT-15. +REMARK 100 THE DEPOSITION ID IS D_1000214421. +REMARK 200 +REMARK 200 EXPERIMENTAL DETAILS +REMARK 200 EXPERIMENT TYPE : X-RAY DIFFRACTION +REMARK 200 DATE OF DATA COLLECTION : 10-MAR-10 +REMARK 200 TEMPERATURE (KELVIN) : 291 +REMARK 200 PH : NULL +REMARK 200 NUMBER OF CRYSTALS USED : NULL +REMARK 200 +REMARK 200 SYNCHROTRON (Y/N) : Y +REMARK 200 RADIATION SOURCE : APS +REMARK 200 BEAMLINE : 24-ID-E +REMARK 200 X-RAY GENERATOR MODEL : NULL +REMARK 200 MONOCHROMATIC OR LAUE (M/L) : M +REMARK 200 WAVELENGTH OR RANGE (A) : 0.979 +REMARK 200 MONOCHROMATOR : NULL +REMARK 200 OPTICS : NULL +REMARK 200 +REMARK 200 DETECTOR TYPE : CCD +REMARK 200 DETECTOR MANUFACTURER : ADSC QUANTUM 315 +REMARK 200 INTENSITY-INTEGRATION SOFTWARE : DENZO +REMARK 200 DATA SCALING SOFTWARE : NULL +REMARK 200 +REMARK 200 NUMBER OF UNIQUE REFLECTIONS : 1136 +REMARK 200 RESOLUTION RANGE HIGH (A) : 1.600 +REMARK 200 RESOLUTION RANGE LOW (A) : 100.000 +REMARK 200 REJECTION CRITERIA (SIGMA(I)) : NULL +REMARK 200 +REMARK 200 OVERALL. +REMARK 200 COMPLETENESS FOR RANGE (%) : 92.9 +REMARK 200 DATA REDUNDANCY : 2.900 +REMARK 200 R MERGE (I) : 0.07600 +REMARK 200 R SYM (I) : NULL +REMARK 200 FOR THE DATA SET : 17.8600 +REMARK 200 +REMARK 200 IN THE HIGHEST RESOLUTION SHELL. +REMARK 200 HIGHEST RESOLUTION SHELL, RANGE HIGH (A) : NULL +REMARK 200 HIGHEST RESOLUTION SHELL, RANGE LOW (A) : NULL +REMARK 200 COMPLETENESS FOR SHELL (%) : NULL +REMARK 200 DATA REDUNDANCY IN SHELL : NULL +REMARK 200 R MERGE FOR SHELL (I) : NULL +REMARK 200 R SYM FOR SHELL (I) : NULL +REMARK 200 FOR SHELL : NULL +REMARK 200 +REMARK 200 DIFFRACTION PROTOCOL: SINGLE WAVELENGTH +REMARK 200 METHOD USED TO DETERMINE THE STRUCTURE: MOLECULAR REPLACEMENT +REMARK 200 SOFTWARE USED: PHASER +REMARK 200 STARTING MODEL: NULL +REMARK 200 +REMARK 200 REMARK: NULL +REMARK 280 +REMARK 280 CRYSTAL +REMARK 280 SOLVENT CONTENT, VS (%): 6.59 +REMARK 280 MATTHEWS COEFFICIENT, VM (ANGSTROMS**3/DA): 1.32 +REMARK 280 +REMARK 280 CRYSTALLIZATION CONDITIONS: 20 MG/ML IN WATER AND MIXED WITH 0.09 +REMARK 280 M HEPES PH 7.5, 1.26M TRI-SODIUM CITRATE, AND 10% GLYCEROL, +REMARK 280 VAPOR DIFFUSION, HANGING DROP, TEMPERATURE 291K +REMARK 290 +REMARK 290 CRYSTALLOGRAPHIC SYMMETRY +REMARK 290 SYMMETRY OPERATORS FOR SPACE GROUP: P 1 21 1 +REMARK 290 +REMARK 290 SYMOP SYMMETRY +REMARK 290 NNNMMM OPERATOR +REMARK 290 1555 X,Y,Z +REMARK 290 2555 -X,Y+1/2,-Z +REMARK 290 +REMARK 290 WHERE NNN -> OPERATOR NUMBER +REMARK 290 MMM -> TRANSLATION VECTOR +REMARK 290 +REMARK 290 CRYSTALLOGRAPHIC SYMMETRY TRANSFORMATIONS +REMARK 290 THE FOLLOWING TRANSFORMATIONS OPERATE ON THE ATOM/HETATM +REMARK 290 RECORDS IN THIS ENTRY TO PRODUCE CRYSTALLOGRAPHICALLY +REMARK 290 RELATED MOLECULES. +REMARK 290 SMTRY1 1 1.000000 0.000000 0.000000 0.00000 +REMARK 290 SMTRY2 1 0.000000 1.000000 0.000000 0.00000 +REMARK 290 SMTRY3 1 0.000000 0.000000 1.000000 0.00000 +REMARK 290 SMTRY1 2 -1.000000 0.000000 0.000000 0.00000 +REMARK 290 SMTRY2 2 0.000000 1.000000 0.000000 4.80450 +REMARK 290 SMTRY3 2 0.000000 0.000000 -1.000000 0.00000 +REMARK 290 +REMARK 290 REMARK: NULL +REMARK 300 +REMARK 300 BIOMOLECULE: 1 +REMARK 300 SEE REMARK 350 FOR THE AUTHOR PROVIDED AND/OR PROGRAM +REMARK 300 GENERATED ASSEMBLY INFORMATION FOR THE STRUCTURE IN +REMARK 300 THIS ENTRY. THE REMARK MAY ALSO PROVIDE INFORMATION ON +REMARK 300 BURIED SURFACE AREA. +REMARK 350 +REMARK 350 COORDINATES FOR A COMPLETE MULTIMER REPRESENTING THE KNOWN +REMARK 350 BIOLOGICALLY SIGNIFICANT OLIGOMERIZATION STATE OF THE +REMARK 350 MOLECULE CAN BE GENERATED BY APPLYING BIOMT TRANSFORMATIONS +REMARK 350 GIVEN BELOW. BOTH NON-CRYSTALLOGRAPHIC AND +REMARK 350 CRYSTALLOGRAPHIC OPERATIONS ARE GIVEN. +REMARK 350 +REMARK 350 BIOMOLECULE: 1 +REMARK 350 AUTHOR DETERMINED BIOLOGICAL UNIT: DECAMERIC +REMARK 350 APPLY THE FOLLOWING TO CHAINS: A +REMARK 350 BIOMT1 1 1.000000 0.000000 0.000000 0.00000 +REMARK 350 BIOMT2 1 0.000000 1.000000 0.000000 0.00000 +REMARK 350 BIOMT3 1 0.000000 0.000000 1.000000 0.00000 +REMARK 350 BIOMT1 2 1.000000 0.000000 0.000000 0.00000 +REMARK 350 BIOMT2 2 0.000000 1.000000 0.000000 -9.60900 +REMARK 350 BIOMT3 2 0.000000 0.000000 1.000000 0.00000 +REMARK 350 BIOMT1 3 1.000000 0.000000 0.000000 0.00000 +REMARK 350 BIOMT2 3 0.000000 1.000000 0.000000 9.60900 +REMARK 350 BIOMT3 3 0.000000 0.000000 1.000000 0.00000 +REMARK 350 BIOMT1 4 1.000000 0.000000 0.000000 9.64300 +REMARK 350 BIOMT2 4 0.000000 1.000000 0.000000 0.00000 +REMARK 350 BIOMT3 4 0.000000 0.000000 1.000000 0.00000 +REMARK 350 BIOMT1 5 1.000000 0.000000 0.000000 9.64300 +REMARK 350 BIOMT2 5 0.000000 1.000000 0.000000 -9.60900 +REMARK 350 BIOMT3 5 0.000000 0.000000 1.000000 0.00000 +REMARK 350 BIOMT1 6 1.000000 0.000000 0.000000 9.64300 +REMARK 350 BIOMT2 6 0.000000 1.000000 0.000000 9.60900 +REMARK 350 BIOMT3 6 0.000000 0.000000 1.000000 0.00000 +REMARK 350 BIOMT1 7 -1.000000 0.000000 0.000000 9.64300 +REMARK 350 BIOMT2 7 0.000000 1.000000 0.000000 -4.80450 +REMARK 350 BIOMT3 7 0.000000 0.000000 -1.000000 0.00000 +REMARK 350 BIOMT1 8 -1.000000 0.000000 0.000000 9.64300 +REMARK 350 BIOMT2 8 0.000000 1.000000 0.000000 4.80450 +REMARK 350 BIOMT3 8 0.000000 0.000000 -1.000000 0.00000 +REMARK 350 BIOMT1 9 -1.000000 0.000000 0.000000 19.28600 +REMARK 350 BIOMT2 9 0.000000 1.000000 0.000000 -4.80450 +REMARK 350 BIOMT3 9 0.000000 0.000000 -1.000000 0.00000 +REMARK 350 BIOMT1 10 -1.000000 0.000000 0.000000 19.28600 +REMARK 350 BIOMT2 10 0.000000 1.000000 0.000000 4.80450 +REMARK 350 BIOMT3 10 0.000000 0.000000 -1.000000 0.00000 +REMARK 900 +REMARK 900 RELATED ENTRIES +REMARK 900 RELATED ID: 5E5V RELATED DB: PDB +REMARK 900 RELATED ID: 5E5X RELATED DB: PDB +REMARK 900 RELATED ID: 5E61 RELATED DB: PDB +DBREF 5E5Z A 1 6 PDB 5E5Z 5E5Z 1 6 +SEQRES 1 A 6 LEU VAL HIS SER SER ASN +FORMUL 2 HOH *(H2 O) +CRYST1 9.643 9.609 19.029 90.00 101.22 90.00 P 1 21 1 2 +ORIGX1 1.000000 0.000000 0.000000 0.00000 +ORIGX2 0.000000 1.000000 0.000000 0.00000 +ORIGX3 0.000000 0.000000 1.000000 0.00000 +SCALE1 0.103702 0.000000 0.020579 0.00000 +SCALE2 0.000000 0.104069 0.000000 0.00000 +SCALE3 0.000000 0.000000 0.053576 0.00000 +ATOM 1 N LEU A 1 6.078 -0.306 -5.753 1.00 0.00 N +ANISOU 1 N LEU A 1 0 0 0 0 0 0 N +ATOM 2 CA LEU A 1 5.166 -0.026 -4.647 1.00 2.42 C +ANISOU 2 CA LEU A 1 307 307 307 0 0 0 C +ATOM 3 C LEU A 1 5.682 -0.642 -3.356 1.00 3.48 C +ANISOU 3 C LEU A 1 435 443 445 1 1 9 C +ATOM 4 O LEU A 1 6.056 -1.814 -3.322 1.00 3.52 O +ANISOU 4 O LEU A 1 436 449 454 2 2 16 O +ATOM 5 CB LEU A 1 3.755 -0.555 -4.967 1.00 1.86 C +ANISOU 5 CB LEU A 1 232 237 238 1 1 5 C +ATOM 6 CG LEU A 1 2.596 -0.354 -3.975 1.00 6.87 C +ANISOU 6 CG LEU A 1 861 873 877 2 2 14 C +ATOM 7 CD1 LEU A 1 2.753 -1.182 -2.704 1.00 11.83 C +ANISOU 7 CD1 LEU A 1 1481 1504 1512 4 4 27 C +ATOM 8 CD2 LEU A 1 2.404 1.122 -3.638 1.00 4.27 C +ANISOU 8 CD2 LEU A 1 537 543 544 1 2 7 C +ATOM 9 N VAL A 2 5.715 0.161 -2.297 1.00 0.61 N +ANISOU 9 N VAL A 2 71 80 82 2 2 11 N +ATOM 10 CA VAL A 2 5.968 -0.352 -0.960 1.00 0.12 C +ANISOU 10 CA VAL A 2 1 20 24 4 4 22 C +ATOM 11 C VAL A 2 4.976 0.281 0.000 1.00 3.40 C +ANISOU 11 C VAL A 2 413 437 440 5 5 27 C +ATOM 12 O VAL A 2 4.746 1.489 -0.046 1.00 3.22 O +ANISOU 12 O VAL A 2 395 414 414 4 5 20 O +ATOM 13 CB VAL A 2 7.400 -0.027 -0.475 1.00 3.56 C +ANISOU 13 CB VAL A 2 440 456 458 3 3 18 C +ATOM 14 CG1 VAL A 2 7.566 -0.421 0.993 1.00 7.93 C +ANISOU 14 CG1 VAL A 2 986 1012 1016 5 5 30 C +ATOM 15 CG2 VAL A 2 8.429 -0.722 -1.342 1.00 6.71 C +ANISOU 15 CG2 VAL A 2 841 853 856 2 2 14 C +ATOM 16 N HIS A 3 4.367 -0.537 0.850 1.00 0.22 N +ANISOU 16 N HIS A 3 1 38 44 7 8 41 N +ATOM 17 CA HIS A 3 3.603 -0.011 1.971 1.00 1.73 C +ANISOU 17 CA HIS A 3 189 233 237 10 10 48 C +ATOM 18 C HIS A 3 4.003 -0.675 3.280 1.00 1.84 C +ANISOU 18 C HIS A 3 194 250 255 12 12 61 C +ATOM 19 O HIS A 3 4.208 -1.889 3.338 1.00 0.73 O +ANISOU 19 O HIS A 3 47 109 120 11 12 69 O +ATOM 20 CB HIS A 3 2.095 -0.177 1.781 1.00 2.62 C +ANISOU 20 CB HIS A 3 296 346 351 11 11 54 C +ATOM 21 CG HIS A 3 1.324 0.074 3.040 1.00 2.97 C +ANISOU 21 CG HIS A 3 335 396 399 14 14 66 C +ATOM 22 ND1 HIS A 3 0.950 -0.937 3.900 1.00 4.29 N +ANISOU 22 ND1 HIS A 3 491 566 573 16 17 82 N +ATOM 23 CD2 HIS A 3 0.921 1.230 3.620 1.00 4.90 C +ANISOU 23 CD2 HIS A 3 581 642 639 16 16 64 C +ATOM 24 CE1 HIS A 3 0.321 -0.417 4.940 1.00 5.53 C +ANISOU 24 CE1 HIS A 3 644 727 729 20 20 89 C +ATOM 25 NE2 HIS A 3 0.290 0.896 4.794 1.00 6.02 N +ANISOU 25 NE2 HIS A 3 714 790 785 20 19 78 N +ATOM 26 N SER A 4 4.099 0.141 4.326 1.00 0.34 N +ANISOU 26 N SER A 4 3 63 63 14 14 62 N +ATOM 27 CA SER A 4 4.357 -0.330 5.683 1.00 1.49 C +ANISOU 27 CA SER A 4 141 213 213 16 16 75 C +ATOM 28 C SER A 4 3.814 0.686 6.681 1.00 2.14 C +ANISOU 28 C SER A 4 222 299 292 20 19 78 C +ATOM 29 O SER A 4 4.008 1.889 6.507 1.00 3.47 O +ANISOU 29 O SER A 4 397 465 454 19 18 68 O +ATOM 30 CB SER A 4 5.858 -0.513 5.905 1.00 5.61 C +ANISOU 30 CB SER A 4 665 734 734 15 15 72 C +ATOM 31 OG SER A 4 6.132 -0.771 7.272 1.00 9.89 O +ANISOU 31 OG SER A 4 1200 1280 1278 18 18 83 O +ATOM 32 N SER A 5 3.138 0.213 7.725 1.00 2.34 N +ANISOU 32 N SER A 5 239 330 322 24 23 93 N +ATOM 33 CA SER A 5 2.651 1.119 8.765 1.00 0.66 C +ANISOU 33 CA SER A 5 24 123 106 28 26 97 C +ATOM 34 C SER A 5 3.677 1.311 9.885 1.00 2.66 C +ANISOU 34 C SER A 5 275 378 356 30 27 100 C +ATOM 35 O SER A 5 3.411 2.024 10.851 1.00 2.02 O +ANISOU 35 O SER A 5 193 303 273 35 30 104 O +ATOM 36 CB SER A 5 1.318 0.639 9.350 1.00 2.68 C +ANISOU 36 CB SER A 5 269 383 365 32 29 113 C +ATOM 37 OG SER A 5 1.478 -0.544 10.117 1.00 2.49 O +ANISOU 37 OG SER A 5 236 363 349 33 31 128 O +ATOM 38 N ASN A 6 4.838 0.672 9.758 1.00 2.94 N +ANISOU 38 N ASN A 6 311 412 394 28 25 98 N +ATOM 39 CA ASN A 6 5.912 0.838 10.741 1.00 4.68 C +ANISOU 39 CA ASN A 6 530 634 613 29 26 100 C +ATOM 40 C ASN A 6 6.574 2.203 10.638 1.00 10.84 C +ANISOU 40 C ASN A 6 1320 1413 1387 28 24 87 C +ATOM 41 O ASN A 6 7.335 2.594 11.519 1.00 13.68 O +ANISOU 41 O ASN A 6 1680 1775 1745 30 26 88 O +ATOM 42 CB ASN A 6 6.986 -0.243 10.589 1.00 5.08 C +ANISOU 42 CB ASN A 6 579 682 668 27 25 102 C +ATOM 43 CG ASN A 6 6.592 -1.558 11.236 1.00 8.08 C +ANISOU 43 CG ASN A 6 948 1067 1057 28 27 120 C +ATOM 44 OD1 ASN A 6 5.576 -1.644 11.923 1.00 8.72 O +ANISOU 44 OD1 ASN A 6 1022 1152 1139 32 30 131 O +ATOM 45 ND2 ASN A 6 7.409 -2.588 11.030 1.00 9.89 N +ANISOU 45 ND2 ASN A 6 1174 1293 1290 25 25 122 N +ATOM 46 OXT ASN A 6 6.383 2.933 9.667 1.00 14.02 O +ANISOU 46 OXT ASN A 6 1730 1811 1787 25 22 75 O +TER 47 ASN A 6 +HETATM 48 O HOH A 101 8.203 1.052 -4.564 1.00 12.67 O +ANISOU 48 O HOH A 101 1605 1605 1605 0 0 0 O +MASTER 227 0 0 0 0 0 0 6 47 1 0 1 +END diff --git a/lib/galaxy/datatypes/test/drugbank_drugs.cml b/lib/galaxy/datatypes/test/drugbank_drugs.cml new file mode 100644 index 00000000000..a807bd8166c --- /dev/null +++ b/lib/galaxy/datatypes/test/drugbank_drugs.cml @@ -0,0 +1,385 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + 1 + + + + + + 1 + + + + + + + + + + 1 + + + + + 1 + + + + 1 + + + + + + 1 + + + 1 + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + 1 + + + + + + + + 1 + + + + + 1 + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/galaxy/datatypes/test/drugbank_drugs.inchi b/lib/galaxy/datatypes/test/drugbank_drugs.inchi new file mode 100644 index 00000000000..4a9224d2d3f --- /dev/null +++ b/lib/galaxy/datatypes/test/drugbank_drugs.inchi @@ -0,0 +1,2 @@ +InChI=1S/C59H84N18O14/c1-31(2)22-40(49(82)68-39(12-8-20-64-57(60)61)56(89)77-21-9-13-46(77)55(88)75-76-58(62)90)69-54(87)45(29-91-59(3,4)5)74-50(83)41(23-32-14-16-35(79)17-15-32)70-53(86)44(28-78)73-51(84)42(24-33-26-65-37-11-7-6-10-36(33)37)71-52(85)43(25-34-27-63-30-66-34)72-48(81)38-18-19-47(80)67-38/h6-7,10-11,14-17,26-27,30-31,38-46,65,78-79H,8-9,12-13,18-25,28-29H2,1-5H3,(H,63,66)(H,67,80)(H,68,82)(H,69,87)(H,70,86)(H,71,85)(H,72,81)(H,73,84)(H,74,83)(H,75,88)(H4,60,61,64)(H3,62,76,90)/t38-,39-,40-,41-,42-,43-,44-,45+,46-/m0/s1 +InChI=1S/C46H64N14O12S2/c47-35(62)15-14-29-40(67)58-32(22-36(48)63)43(70)59-33(45(72)60-18-5-9-34(60)44(71)56-28(8-4-17-52-46(50)51)39(66)53-23-37(49)64)24-74-73-19-16-38(65)54-30(21-26-10-12-27(61)13-11-26)41(68)57-31(42(69)55-29)20-25-6-2-1-3-7-25/h1-3,6-7,10-13,28-34,61H,4-5,8-9,14-24H2,(H2,47,62)(H2,48,63)(H2,49,64)(H,53,66)(H,54,65)(H,55,69)(H,56,71)(H,57,68)(H,58,67)(H,59,70)(H4,50,51,52)/t28-,29-,30-,31-,32-,33-,34-/m0/s1 diff --git a/lib/galaxy/datatypes/test/drugbank_drugs.mol2 b/lib/galaxy/datatypes/test/drugbank_drugs.mol2 new file mode 100644 index 00000000000..356242db586 --- /dev/null +++ b/lib/galaxy/datatypes/test/drugbank_drugs.mol2 @@ -0,0 +1,354 @@ +@MOLECULE +Goserelin + 91 96 0 0 0 +SMALL +GASTEIGER + +@ATOM + 1 O 12.8548 -2.6382 0.0000 O.2 4 UNK4 -0.2730 + 2 O 13.9726 -2.5226 0.0000 O.2 4 UNK4 -0.2699 + 3 O 10.1766 -3.9327 0.0000 O.2 4 UNK4 -0.2715 + 4 O 11.2019 -0.7961 0.0000 O.3 4 UNK4 -0.3562 + 5 O 8.7800 -1.3064 0.0000 O.2 4 UNK4 -0.2714 + 6 O 16.8589 -3.2421 0.0000 O.2 4 UNK4 -0.2457 + 7 O 10.3562 1.2163 0.0000 O.2 4 UNK4 -0.2715 + 8 O 3.2702 4.8341 0.0000 O.2 1 UNK1 -0.2715 + 9 O 2.3500 8.2734 0.0000 O.2 1 UNK1 -0.2733 + 10 O 3.8213 4.2201 0.0000 O.2 2 HIS2 -0.2715 + 11 O 5.2178 1.5938 0.0000 O.2 3 TRP3 -0.2715 + 12 O 7.8960 2.8883 0.0000 O.2 4 UNK4 -0.2714 + 13 O 7.1271 0.5358 0.0000 O.3 4 UNK4 -0.2179 + 14 O 12.4834 3.1249 0.0000 O.3 4 UNK4 -0.2866 + 15 N 13.1495 -4.0364 0.0000 N.am 4 UNK4 -0.2715 + 16 N 11.2402 -2.9784 0.0000 N.am 4 UNK4 -0.1964 + 17 N 15.2089 -3.2393 0.0000 N.am 4 UNK4 -0.0850 + 18 N 10.1383 -1.7503 0.0000 N.am 4 UNK4 -0.1963 + 19 N 15.6226 -2.5255 0.0000 N.am 4 UNK4 -0.0678 + 20 N 12.3806 -6.3890 0.0000 N.pl3 4 UNK4 -0.0865 + 21 N 9.2926 0.2619 0.0000 N.am 4 UNK4 -0.1937 + 22 N 3.1485 7.0391 0.0000 N.am 1 UNK1 -0.1978 + 23 N 4.3338 5.7884 0.0000 N.am 2 HIS2 -0.1959 + 24 N 16.8613 -1.8132 0.0000 N.am 4 UNK4 -0.0665 + 25 N 8.1907 1.4900 0.0000 N.am 4 UNK4 -0.1959 + 26 N 5.1795 3.7761 0.0000 N.am 3 TRP3 -0.1960 + 27 N 6.2814 2.5480 0.0000 N.am 4 UNK4 -0.1936 + 28 N 11.3170 -7.3433 0.0000 N.pl3 4 UNK4 0.1354 + 29 N 12.6753 -7.7873 0.0000 N.pl3 4 UNK4 0.1354 + 30 NE1 3.8596 0.7098 0.0000 N.ar 3 TRP3 -0.2442 + 31 ND1 6.7335 6.3823 0.0000 N.ar 2 HIS2 -0.2267 + 32 NE2 5.9507 7.4636 0.0000 N.ar 2 HIS2 -0.2212 + 33 C 13.9701 -3.9516 0.0000 C.3 4 UNK4 0.1552 + 34 C 14.3043 -4.7058 0.0000 C.3 4 UNK4 0.0311 + 35 C 13.6903 -5.2569 0.0000 C.3 4 UNK4 0.0237 + 36 C 12.9766 -4.8431 0.0000 C.3 4 UNK4 0.0939 + 37 C 12.5984 -3.4224 0.0000 C.2 4 UNK4 0.2458 + 38 C 11.7912 -3.5925 0.0000 C.3 4 UNK4 0.1714 + 39 C 14.3838 -3.2378 0.0000 C.2 4 UNK4 0.2788 + 40 C 11.5349 -4.3767 0.0000 C.3 4 UNK4 0.0347 + 41 C 12.0859 -4.9907 0.0000 C.3 4 UNK4 0.0492 + 42 C 9.8819 -2.5345 0.0000 C.3 4 UNK4 0.1728 + 43 C 10.4330 -3.1486 0.0000 C.2 4 UNK4 0.2616 + 44 C 9.0747 -2.7046 0.0000 C.3 4 UNK4 0.0311 + 45 C 8.8184 -3.4889 0.0000 C.3 4 UNK4 0.0022 + 46 C 11.8295 -5.7750 0.0000 C.3 4 UNK4 0.2205 + 47 C 8.0112 -3.6590 0.0000 C.3 4 UNK4 0.0001 + 48 C 9.3694 -4.1029 0.0000 C.3 4 UNK4 0.0001 + 49 C 9.5873 -1.1363 0.0000 C.2 4 UNK4 0.2642 + 50 C 9.8436 -0.3521 0.0000 C.3 4 UNK4 0.2021 + 51 C 10.6509 -0.1820 0.0000 C.3 4 UNK4 0.1729 + 52 C 16.4476 -2.5269 0.0000 C.2 4 UNK4 0.3786 + 53 C 2.9756 6.2324 0.0000 C.3 1 UNK1 0.1732 + 54 C 12.0091 -0.6259 0.0000 C.3 4 UNK4 0.0931 + 55 C 8.9979 1.6602 0.0000 C.3 4 UNK4 0.1771 + 56 C 9.5489 1.0461 0.0000 C.2 4 UNK4 0.2620 + 57 C 12.1242 -7.1732 0.0000 C.cat 4 UNK4 0.5346 + 58 C 2.1549 6.1475 0.0000 C.3 1 UNK1 0.0407 + 59 CA 4.8848 5.1744 0.0000 C.3 2 HIS2 0.1787 + 60 CA 4.9232 2.9920 0.0000 C.3 3 TRP3 0.1771 + 61 C 1.8207 6.9019 0.0000 C.3 1 UNK1 0.0891 + 62 C 9.2542 2.4444 0.0000 C.3 4 UNK4 0.0574 + 63 CB 4.1159 2.8219 0.0000 C.3 3 TRP3 0.0590 + 64 C 3.5266 5.6183 0.0000 C.2 1 UNK1 0.2616 + 65 C 2.4348 7.4528 0.0000 C.2 1 UNK1 0.2418 + 66 CB 5.6921 5.3445 0.0000 C.3 2 HIS2 0.0785 + 67 C 6.8324 1.9340 0.0000 C.3 4 UNK4 0.2055 + 68 C 4.6285 4.3902 0.0000 C.2 2 HIS2 0.2620 + 69 C 12.1793 -1.4332 0.0000 C.3 4 UNK4 0.0296 + 70 C 12.8164 -0.4557 0.0000 C.3 4 UNK4 0.0296 + 71 C 11.8389 0.1814 0.0000 C.3 4 UNK4 0.0296 + 72 CG 3.8596 2.0376 0.0000 C.ar 3 TRP3 0.0006 + 73 C 5.4742 2.3779 0.0000 C.2 3 TRP3 0.2620 + 74 C 7.6397 2.1041 0.0000 C.2 4 UNK4 0.2643 + 75 C 10.0615 2.6145 0.0000 C.ar 4 UNK4 -0.0198 + 76 CD2 3.0790 1.7862 0.0000 C.ar 3 TRP3 0.0152 + 77 CG 5.9484 6.1287 0.0000 C.ar 2 HIS2 0.0821 + 78 CD1 4.3411 1.3737 0.0000 C.ar 3 TRP3 0.0946 + 79 CE2 3.0790 0.9612 0.0000 C.ar 3 TRP3 0.0810 + 80 C 6.5761 1.1498 0.0000 C.3 4 UNK4 0.2130 + 81 CE3 2.3645 2.1987 0.0000 C.ar 3 TRP3 0.0012 + 82 C 10.3178 3.3987 0.0000 C.ar 4 UNK4 -0.0009 + 83 C 10.6125 2.0005 0.0000 C.ar 4 UNK4 -0.0009 + 84 CZ2 2.3645 0.5487 0.0000 C.ar 3 TRP3 0.0191 + 85 CD2 5.4646 6.7970 0.0000 C.ar 2 HIS2 0.1154 + 86 CZ3 1.6500 1.7862 0.0000 C.ar 3 TRP3 0.0001 + 87 CH2 1.6500 0.9612 0.0000 C.ar 3 TRP3 0.0015 + 88 C 11.1251 3.5688 0.0000 C.ar 4 UNK4 0.0417 + 89 C 11.4198 2.1706 0.0000 C.ar 4 UNK4 0.0417 + 90 CE1 6.7349 7.2073 0.0000 C.ar 2 HIS2 0.1986 + 91 C 11.6761 2.9548 0.0000 C.ar 4 UNK4 0.1957 +@BOND + 1 1 37 2 + 2 2 39 2 + 3 3 43 2 + 4 4 51 1 + 5 4 54 1 + 6 5 49 2 + 7 6 52 2 + 8 7 56 2 + 9 8 64 2 + 10 9 65 2 + 11 10 68 2 + 12 11 73 2 + 13 12 74 2 + 14 13 80 1 + 15 14 91 1 + 16 15 33 1 + 17 15 36 1 + 18 15 37 am + 19 38 16 1 + 20 16 43 am + 21 17 19 1 + 22 17 39 am + 23 42 18 1 + 24 18 49 am + 25 19 52 am + 26 20 46 1 + 27 20 57 2 + 28 50 21 1 + 29 21 56 am + 30 22 53 1 + 31 22 65 am + 32 59 23 1 + 33 23 64 am + 34 24 52 am + 35 55 25 1 + 36 25 74 am + 37 60 26 1 + 38 26 68 am + 39 67 27 1 + 40 27 73 am + 41 28 57 1 + 42 29 57 1 + 43 30 78 ar + 44 30 79 ar + 45 31 77 ar + 46 31 90 ar + 47 32 85 ar + 48 32 90 ar + 49 33 34 1 + 50 33 39 1 + 51 34 35 1 + 52 35 36 1 + 53 37 38 1 + 54 38 40 1 + 55 40 41 1 + 56 41 46 1 + 57 42 43 1 + 58 42 44 1 + 59 44 45 1 + 60 45 47 1 + 61 45 48 1 + 62 49 50 1 + 63 50 51 1 + 64 53 58 1 + 65 53 64 1 + 66 54 69 1 + 67 54 70 1 + 68 54 71 1 + 69 55 56 1 + 70 55 62 1 + 71 58 61 1 + 72 59 66 1 + 73 59 68 1 + 74 60 63 1 + 75 60 73 1 + 76 61 65 1 + 77 62 75 1 + 78 63 72 1 + 79 66 77 1 + 80 67 74 1 + 81 67 80 1 + 82 72 76 ar + 83 72 78 ar + 84 75 82 ar + 85 75 83 ar + 86 76 79 ar + 87 76 81 ar + 88 77 85 ar + 89 79 84 ar + 90 81 86 ar + 91 82 88 ar + 92 83 89 ar + 93 84 87 ar + 94 86 87 ar + 95 88 91 ar + 96 89 91 ar +@MOLECULE +Desmopressin + 74 77 0 0 0 +SMALL +GASTEIGER + +@ATOM + 1 N 0.0000 -7.8646 0.0000 N.am 1 LIG1 -0.0862 + 2 C 0.6741 -7.4601 0.0000 C.2 1 LIG1 0.2828 + 3 C 1.3932 -7.8646 0.0000 C.3 1 LIG1 0.2031 + 4 N 2.1122 -7.4601 0.0000 N.am 1 LIG1 -0.1939 + 5 C 2.8313 -7.8646 0.0000 C.2 1 LIG1 0.2617 + 6 C 3.5503 -7.4601 0.0000 C.3 1 LIG1 0.1729 + 7 N 4.2693 -7.8646 0.0000 N.am 1 LIG1 -0.1964 + 8 C 4.9435 -7.4601 0.0000 C.2 1 LIG1 0.2598 + 9 O 5.6625 -7.8646 0.0000 O.2 1 LIG1 -0.2715 + 10 O 0.6741 -6.6512 0.0000 O.2 1 LIG1 -0.2697 + 11 O 2.8313 -8.7184 0.0000 O.2 1 LIG1 -0.2715 + 12 C 3.5503 -6.6512 0.0000 C.3 1 LIG1 0.0348 + 13 C 2.8313 -6.2467 0.0000 C.3 1 LIG1 0.0492 + 14 C 2.8313 -5.4378 0.0000 C.3 1 LIG1 0.2205 + 15 N 2.1122 -5.0333 0.0000 N.pl3 1 LIG1 -0.0865 + 16 C 4.9435 -6.6512 0.0000 C.3 1 LIG1 0.1536 + 17 C 4.3143 -6.1568 0.0000 C.3 1 LIG1 0.0310 + 18 N 5.6176 -6.1568 0.0000 N.am 1 LIG1 -0.2715 + 19 C 4.5390 -5.3929 0.0000 C.3 1 LIG1 0.0237 + 20 C 5.3479 -5.3929 0.0000 C.3 1 LIG1 0.0939 + 21 C 6.3366 -6.5613 0.0000 C.2 1 LIG1 0.2467 + 22 C 7.0557 -6.1568 0.0000 C.3 1 LIG1 0.1828 + 23 N 7.7747 -6.5613 0.0000 N.am 1 LIG1 -0.1954 + 24 C 8.4488 -6.1568 0.0000 C.2 1 LIG1 0.2621 + 25 C 9.1678 -6.5613 0.0000 C.3 1 LIG1 0.1819 + 26 N 9.8869 -6.1568 0.0000 N.am 1 LIG1 -0.1958 + 27 O 6.3366 -7.4152 0.0000 O.2 1 LIG1 -0.2730 + 28 C 7.0557 -5.3479 0.0000 C.3 1 LIG1 0.0996 + 29 S 6.3366 -4.9435 0.0000 S.3 1 LIG1 -0.0798 + 30 S 6.3366 -4.1345 0.0000 S.3 1 LIG1 -0.0816 + 31 O 8.4488 -5.3479 0.0000 O.2 1 LIG1 -0.2715 + 32 C 9.1678 -7.4152 0.0000 C.3 1 LIG1 0.1195 + 33 C 9.8869 -7.8197 0.0000 C.2 1 LIG1 0.2630 + 34 O 9.8869 -8.6286 0.0000 O.2 1 LIG1 -0.2716 + 35 N 10.6060 -7.4152 0.0000 N.am 1 LIG1 -0.0877 + 36 C 9.8869 -5.3479 0.0000 C.2 1 LIG1 0.2616 + 37 C 10.6060 -4.9435 0.0000 C.3 1 LIG1 0.1733 + 38 O 9.1678 -4.9435 0.0000 O.2 1 LIG1 -0.2715 + 39 C 11.3250 -5.3479 0.0000 C.3 1 LIG1 0.0408 + 40 C 12.0441 -4.9435 0.0000 C.3 1 LIG1 0.0908 + 41 C 12.7631 -5.3479 0.0000 C.2 1 LIG1 0.2608 + 42 N 13.4822 -4.9435 0.0000 N.am 1 LIG1 -0.0878 + 43 O 12.7631 -6.2018 0.0000 O.2 1 LIG1 -0.2717 + 44 N 10.6060 -4.1345 0.0000 N.am 1 LIG1 -0.1963 + 45 C 11.3250 -2.8762 0.0000 C.ar 1 LIG1 -0.0200 + 46 C 11.3250 -3.7300 0.0000 C.ar 1 LIG1 -0.0042 + 47 C 10.6060 -2.4717 0.0000 C.3 1 LIG1 0.0574 + 48 C 9.8869 -2.8762 0.0000 C.3 1 LIG1 0.1771 + 49 C 9.8869 -3.7300 0.0000 C.2 1 LIG1 0.2619 + 50 C 12.7631 -2.8762 0.0000 C.ar 1 LIG1 -0.0003 + 51 C 12.7631 -3.7300 0.0000 C.ar 1 LIG1 -0.0000 + 52 C 12.0441 -2.4717 0.0000 C.ar 1 LIG1 -0.0042 + 53 C 12.0441 -4.1345 0.0000 C.ar 1 LIG1 -0.0003 + 54 N 7.0557 -2.8762 0.0000 N.am 1 LIG1 -0.1974 + 55 C 6.3366 -2.4717 0.0000 C.2 1 LIG1 0.2427 + 56 C 5.6176 -2.8762 0.0000 C.3 1 LIG1 0.0993 + 57 C 5.6176 -3.7300 0.0000 C.3 1 LIG1 0.0783 + 58 C 8.4488 -2.8762 0.0000 C.2 1 LIG1 0.2620 + 59 O 8.4488 -3.7300 0.0000 O.2 1 LIG1 -0.2715 + 60 C 7.7747 -2.4717 0.0000 C.3 1 LIG1 0.1770 + 61 N 9.1678 -2.4717 0.0000 N.am 1 LIG1 -0.1960 + 62 O 9.1678 -4.1345 0.0000 O.2 1 LIG1 -0.2715 + 63 C 7.7747 -1.6628 0.0000 C.3 1 LIG1 0.0574 + 64 C 9.1678 -1.6628 0.0000 C.ar 1 LIG1 -0.0009 + 65 C 8.4488 -1.2583 0.0000 C.ar 1 LIG1 -0.0198 + 66 C 9.8869 -1.2583 0.0000 C.ar 1 LIG1 0.0417 + 67 C 9.8869 -0.4045 0.0000 C.ar 1 LIG1 0.1957 + 68 C 8.4488 -0.4045 0.0000 C.ar 1 LIG1 -0.0009 + 69 C 9.1678 0.0000 0.0000 C.ar 1 LIG1 0.0417 + 70 O 6.3366 -1.6628 0.0000 O.2 1 LIG1 -0.2733 + 71 O 10.6060 0.0000 0.0000 O.3 1 LIG1 -0.2866 + 72 C 1.3932 -5.4378 0.0000 C.cat 1 LIG1 0.5346 + 73 N 1.3932 -6.2467 0.0000 N.pl3 1 LIG1 0.1354 + 74 N 0.6741 -5.0333 0.0000 N.pl3 1 LIG1 0.1354 +@BOND + 1 1 2 am + 2 2 3 1 + 3 2 10 2 + 4 3 4 1 + 5 4 5 am + 6 5 6 1 + 7 5 11 2 + 8 6 7 1 + 9 6 12 1 + 10 7 8 am + 11 8 9 2 + 12 16 8 1 + 13 12 13 1 + 14 13 14 1 + 15 14 15 1 + 16 15 72 1 + 17 16 17 1 + 18 16 18 1 + 19 17 19 1 + 20 18 20 1 + 21 18 21 am + 22 19 20 1 + 23 22 21 1 + 24 21 27 2 + 25 22 23 1 + 26 22 28 1 + 27 23 24 am + 28 24 25 1 + 29 24 31 2 + 30 25 26 1 + 31 25 32 1 + 32 26 36 am + 33 28 29 1 + 34 29 30 1 + 35 30 57 1 + 36 32 33 1 + 37 33 34 2 + 38 33 35 am + 39 36 37 1 + 40 36 38 2 + 41 37 39 1 + 42 37 44 1 + 43 39 40 1 + 44 40 41 1 + 45 41 42 am + 46 41 43 2 + 47 44 49 am + 48 45 47 1 + 49 45 52 ar + 50 45 46 ar + 51 46 53 ar + 52 48 47 1 + 53 48 61 1 + 54 48 49 1 + 55 49 62 2 + 56 50 51 ar + 57 50 52 ar + 58 51 53 ar + 59 54 55 am + 60 54 60 1 + 61 55 56 1 + 62 55 70 2 + 63 56 57 1 + 64 58 59 2 + 65 58 60 1 + 66 58 61 am + 67 60 63 1 + 68 63 65 1 + 69 64 66 ar + 70 64 65 ar + 71 65 68 ar + 72 66 67 ar + 73 67 69 ar + 74 67 71 1 + 75 68 69 ar + 76 72 73 2 + 77 72 74 1 diff --git a/lib/galaxy/datatypes/test/drugbank_drugs.sdf b/lib/galaxy/datatypes/test/drugbank_drugs.sdf new file mode 100644 index 00000000000..b03703e0ddc --- /dev/null +++ b/lib/galaxy/datatypes/test/drugbank_drugs.sdf @@ -0,0 +1,491 @@ +Goserelin + Mrv0541 04221219462D + + 91 96 0 0 1 0 999 V2000 + 12.8548 -2.6382 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 13.9726 -2.5226 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 10.1766 -3.9327 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 11.2019 -0.7961 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 8.7800 -1.3064 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 16.8589 -3.2421 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 10.3562 1.2163 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.2702 4.8341 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3500 8.2734 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.8213 4.2201 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 5.2178 1.5938 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 7.8960 2.8883 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 7.1271 0.5358 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 12.4834 3.1249 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 13.1495 -4.0364 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 11.2402 -2.9784 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 15.2089 -3.2393 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 10.1383 -1.7503 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 15.6226 -2.5255 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 12.3806 -6.3890 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 9.2926 0.2619 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.1485 7.0391 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 4.3338 5.7884 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 16.8613 -1.8132 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 8.1907 1.4900 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 5.1795 3.7761 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 6.2814 2.5480 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 11.3170 -7.3433 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 12.6753 -7.7873 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.8596 0.7098 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 6.7335 6.3823 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9507 7.4636 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 13.9701 -3.9516 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0 + 14.3043 -4.7058 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 13.6903 -5.2569 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 12.9766 -4.8431 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 12.5984 -3.4224 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.7912 -3.5925 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0 + 14.3838 -3.2378 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.5349 -4.3767 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 12.0859 -4.9907 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.8819 -2.5345 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0 + 10.4330 -3.1486 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.0747 -2.7046 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.8184 -3.4889 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.8295 -5.7750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0112 -3.6590 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.3694 -4.1029 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.5873 -1.1363 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.8436 -0.3521 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0 + 10.6509 -0.1820 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 16.4476 -2.5269 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.9756 6.2324 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0 + 12.0091 -0.6259 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.9979 1.6602 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0 + 9.5489 1.0461 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 12.1242 -7.1732 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.1549 6.1475 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.8848 5.1744 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0 + 4.9232 2.9920 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0 + 1.8207 6.9019 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.2542 2.4444 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.1159 2.8219 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.5266 5.6183 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.4348 7.4528 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.6921 5.3445 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.8324 1.9340 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0 + 4.6285 4.3902 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 12.1793 -1.4332 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 12.8164 -0.4557 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.8389 0.1814 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.8596 2.0376 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.4742 2.3779 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.6397 2.1041 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.0615 2.6145 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.0790 1.7862 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9484 6.1287 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.3411 1.3737 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.0790 0.9612 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.5761 1.1498 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3645 2.1987 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.3178 3.3987 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.6125 2.0005 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3645 0.5487 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.4646 6.7970 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.6500 1.7862 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.6500 0.9612 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.1251 3.5688 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.4198 2.1706 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.7349 7.2073 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.6761 2.9548 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 37 2 0 0 0 0 + 2 39 2 0 0 0 0 + 3 43 2 0 0 0 0 + 4 51 1 0 0 0 0 + 4 54 1 0 0 0 0 + 5 49 2 0 0 0 0 + 6 52 2 0 0 0 0 + 7 56 2 0 0 0 0 + 8 64 2 0 0 0 0 + 9 65 2 0 0 0 0 + 10 68 2 0 0 0 0 + 11 73 2 0 0 0 0 + 12 74 2 0 0 0 0 + 13 80 1 0 0 0 0 + 14 91 1 0 0 0 0 + 15 33 1 0 0 0 0 + 15 36 1 0 0 0 0 + 15 37 1 0 0 0 0 + 38 16 1 6 0 0 0 + 16 43 1 0 0 0 0 + 17 19 1 0 0 0 0 + 17 39 1 0 0 0 0 + 42 18 1 6 0 0 0 + 18 49 1 0 0 0 0 + 19 52 1 0 0 0 0 + 20 46 1 0 0 0 0 + 20 57 2 0 0 0 0 + 50 21 1 6 0 0 0 + 21 56 1 0 0 0 0 + 22 53 1 0 0 0 0 + 22 65 1 0 0 0 0 + 59 23 1 1 0 0 0 + 23 64 1 0 0 0 0 + 24 52 1 0 0 0 0 + 55 25 1 1 0 0 0 + 25 74 1 0 0 0 0 + 60 26 1 6 0 0 0 + 26 68 1 0 0 0 0 + 67 27 1 6 0 0 0 + 27 73 1 0 0 0 0 + 28 57 1 0 0 0 0 + 29 57 1 0 0 0 0 + 30 78 1 0 0 0 0 + 30 79 1 0 0 0 0 + 31 77 1 0 0 0 0 + 31 90 1 0 0 0 0 + 32 85 1 0 0 0 0 + 32 90 2 0 0 0 0 + 33 34 1 0 0 0 0 + 33 39 1 6 0 0 0 + 34 35 1 0 0 0 0 + 35 36 1 0 0 0 0 + 37 38 1 0 0 0 0 + 38 40 1 0 0 0 0 + 40 41 1 0 0 0 0 + 41 46 1 0 0 0 0 + 42 43 1 0 0 0 0 + 42 44 1 0 0 0 0 + 44 45 1 0 0 0 0 + 45 47 1 0 0 0 0 + 45 48 1 0 0 0 0 + 49 50 1 0 0 0 0 + 50 51 1 0 0 0 0 + 53 58 1 0 0 0 0 + 53 64 1 6 0 0 0 + 54 69 1 0 0 0 0 + 54 70 1 0 0 0 0 + 54 71 1 0 0 0 0 + 55 56 1 0 0 0 0 + 55 62 1 0 0 0 0 + 58 61 1 0 0 0 0 + 59 66 1 0 0 0 0 + 59 68 1 0 0 0 0 + 60 63 1 0 0 0 0 + 60 73 1 0 0 0 0 + 61 65 1 0 0 0 0 + 62 75 1 0 0 0 0 + 63 72 1 0 0 0 0 + 66 77 1 0 0 0 0 + 67 74 1 0 0 0 0 + 67 80 1 0 0 0 0 + 72 76 1 0 0 0 0 + 72 78 2 0 0 0 0 + 75 82 2 0 0 0 0 + 75 83 1 0 0 0 0 + 76 79 1 0 0 0 0 + 76 81 2 0 0 0 0 + 77 85 2 0 0 0 0 + 79 84 2 0 0 0 0 + 81 86 1 0 0 0 0 + 82 88 1 0 0 0 0 + 83 89 2 0 0 0 0 + 84 87 1 0 0 0 0 + 86 87 2 0 0 0 0 + 88 91 2 0 0 0 0 + 89 91 1 0 0 0 0 +M END +> +DB00014 + +> +approved + +> +Goserelin + +> +Goserelin acetate + +> +Zoladex + +> +C59H84N18O14 + +> +1269.4105 + +> +1268.641439486 + +> +(2S)-1-[(2S)-2-[(2S)-2-[(2R)-3-(tert-butoxy)-2-[(2S)-2-[(2S)-3-hydroxy-2-[(2S)-2-[(2S)-3-(1H-imidazol-5-yl)-2-{[(2S)-5-oxopyrrolidin-2-yl]formamido}propanamido]-3-(1H-indol-3-yl)propanamido]propanamido]-3-(4-hydroxyphenyl)propanamido]propanamido]-4-methylpentanamido]-5-[(diaminomethylidene)amino]pentanoyl]-N-(carbamoylamino)pyrrolidine-2-carboxamide + +> +InChI=1S/C59H84N18O14/c1-31(2)22-40(49(82)68-39(12-8-20-64-57(60)61)56(89)77-21-9-13-46(77)55(88)75-76-58(62)90)69-54(87)45(29-91-59(3,4)5)74-50(83)41(23-32-14-16-35(79)17-15-32)70-53(86)44(28-78)73-51(84)42(24-33-26-65-37-11-7-6-10-36(33)37)71-52(85)43(25-34-27-63-30-66-34)72-48(81)38-18-19-47(80)67-38/h6-7,10-11,14-17,26-27,30-31,38-46,65,78-79H,8-9,12-13,18-25,28-29H2,1-5H3,(H,63,66)(H,67,80)(H,68,82)(H,69,87)(H,70,86)(H,71,85)(H,72,81)(H,73,84)(H,74,83)(H,75,88)(H4,60,61,64)(H3,62,76,90)/t38-,39-,40-,41-,42-,43-,44-,45+,46-/m0/s1 + +> +InChIKey=BLCLNMBMMGCOAS-URPVMXJPSA-N + +> +CC(C)C[C@H](NC(=O)[C@@H](COC(C)(C)C)NC(=O)[C@H](CC1=CC=C(O)C=C1)NC(=O)[C@H](CO)NC(=O)[C@H](CC1=CNC2=CC=CC=C12)NC(=O)[C@H](CC1=CN=CN1)NC(=O)[C@@H]1CCC(=O)N1)C(=O)N[C@@H](CCCN=C(N)N)C(=O)N1CCC[C@H]1C(=O)NNC(N)=O + +> +18 + +> +17 + +> +9.82 + +> +0.3 + +> +-5.2 + +> +-4.7 + +> +131.22 + +> +495.89 + +> +325.84 + +> +33 + +> +2.83e-02 g/l + +$$$$ +Desmopressin + Mrv0541 04221221522D + + 74 77 0 0 1 0 999 V2000 + 0.0000 -7.8646 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6741 -7.4601 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3932 -7.8646 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.1122 -7.4601 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 2.8313 -7.8646 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.5503 -7.4601 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0 + 4.2693 -7.8646 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 4.9435 -7.4601 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.6625 -7.8646 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6741 -6.6512 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 2.8313 -8.7184 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.5503 -6.6512 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.8313 -6.2467 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.8313 -5.4378 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.1122 -5.0333 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 4.9435 -6.6512 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0 + 4.3143 -6.1568 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.6176 -6.1568 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 4.5390 -5.3929 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.3479 -5.3929 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.3366 -6.5613 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.0557 -6.1568 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0 + 7.7747 -6.5613 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 8.4488 -6.1568 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.1678 -6.5613 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0 + 9.8869 -6.1568 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 6.3366 -7.4152 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 7.0557 -5.3479 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.3366 -4.9435 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0 + 6.3366 -4.1345 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0 + 8.4488 -5.3479 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 9.1678 -7.4152 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.8869 -7.8197 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.8869 -8.6286 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 10.6060 -7.4152 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 9.8869 -5.3479 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.6060 -4.9435 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0 + 9.1678 -4.9435 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 11.3250 -5.3479 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 12.0441 -4.9435 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 12.7631 -5.3479 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 13.4822 -4.9435 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 12.7631 -6.2018 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 10.6060 -4.1345 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 11.3250 -2.8762 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.3250 -3.7300 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.6060 -2.4717 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.8869 -2.8762 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0 + 9.8869 -3.7300 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 12.7631 -2.8762 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 12.7631 -3.7300 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 12.0441 -2.4717 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 12.0441 -4.1345 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.0557 -2.8762 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 6.3366 -2.4717 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.6176 -2.8762 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.6176 -3.7300 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.4488 -2.8762 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.4488 -3.7300 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 7.7747 -2.4717 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0 + 9.1678 -2.4717 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 9.1678 -4.1345 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 7.7747 -1.6628 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.1678 -1.6628 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.4488 -1.2583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.8869 -1.2583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.8869 -0.4045 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.4488 -0.4045 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.1678 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.3366 -1.6628 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 10.6060 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3932 -5.4378 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3932 -6.2467 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6741 -5.0333 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 2 10 2 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 1 0 0 0 0 + 5 11 2 0 0 0 0 + 6 7 1 0 0 0 0 + 6 12 1 6 0 0 0 + 7 8 1 0 0 0 0 + 8 9 2 0 0 0 0 + 16 8 1 6 0 0 0 + 12 13 1 0 0 0 0 + 13 14 1 0 0 0 0 + 14 15 1 0 0 0 0 + 15 72 1 0 0 0 0 + 16 17 1 0 0 0 0 + 16 18 1 0 0 0 0 + 17 19 1 0 0 0 0 + 18 20 1 0 0 0 0 + 18 21 1 0 0 0 0 + 19 20 1 0 0 0 0 + 22 21 1 6 0 0 0 + 21 27 2 0 0 0 0 + 22 23 1 0 0 0 0 + 22 28 1 0 0 0 0 + 23 24 1 0 0 0 0 + 24 25 1 0 0 0 0 + 24 31 2 0 0 0 0 + 25 26 1 0 0 0 0 + 25 32 1 1 0 0 0 + 26 36 1 0 0 0 0 + 28 29 1 0 0 0 0 + 29 30 1 0 0 0 0 + 30 57 1 0 0 0 0 + 32 33 1 0 0 0 0 + 33 34 2 0 0 0 0 + 33 35 1 0 0 0 0 + 36 37 1 0 0 0 0 + 36 38 2 0 0 0 0 + 37 39 1 1 0 0 0 + 37 44 1 0 0 0 0 + 39 40 1 0 0 0 0 + 40 41 1 0 0 0 0 + 41 42 1 0 0 0 0 + 41 43 2 0 0 0 0 + 44 49 1 0 0 0 0 + 45 47 1 0 0 0 0 + 45 52 1 0 0 0 0 + 45 46 2 0 0 0 0 + 46 53 1 0 0 0 0 + 48 47 1 1 0 0 0 + 48 61 1 0 0 0 0 + 48 49 1 0 0 0 0 + 49 62 2 0 0 0 0 + 50 51 1 0 0 0 0 + 50 52 2 0 0 0 0 + 51 53 2 0 0 0 0 + 54 55 1 0 0 0 0 + 54 60 1 0 0 0 0 + 55 56 1 0 0 0 0 + 55 70 2 0 0 0 0 + 56 57 1 0 0 0 0 + 58 59 2 0 0 0 0 + 58 60 1 0 0 0 0 + 58 61 1 0 0 0 0 + 60 63 1 1 0 0 0 + 63 65 1 0 0 0 0 + 64 66 2 0 0 0 0 + 64 65 1 0 0 0 0 + 65 68 2 0 0 0 0 + 66 67 1 0 0 0 0 + 67 69 2 0 0 0 0 + 67 71 1 0 0 0 0 + 68 69 1 0 0 0 0 + 72 73 2 3 0 0 0 + 72 74 1 0 0 0 0 +M END +> +DB00035 + +> +approved + +> +Desmopressin + +> +1-Desamino-8-D-arginine vasopressin; Desmopresina [INN-Spanish]; Desmopressine [INN-French]; Desmopressinum [INN-Latin] + +> +Desmopressin acetate + +> +Adiuretin; Concentraid; DDAVP; Minirin; Stimate + +> +C46H64N14O12S2 + +> +1069.217 + +> +1068.426954962 + +> +(2S)-2-{[(2S)-1-{[(4R,7S,10S,13S,16S)-13-benzyl-10-(2-carbamoylethyl)-7-(carbamoylmethyl)-16-[(4-hydroxyphenyl)methyl]-6,9,12,15,18-pentaoxo-1,2-dithia-5,8,11,14,17-pentaazacycloicosan-4-yl]carbonyl}pyrrolidin-2-yl]formamido}-5-carbamimidamido-N-(carbamoylmethyl)pentanamide + +> +InChI=1S/C46H64N14O12S2/c47-35(62)15-14-29-40(67)58-32(22-36(48)63)43(70)59-33(45(72)60-18-5-9-34(60)44(71)56-28(8-4-17-52-46(50)51)39(66)53-23-37(49)64)24-74-73-19-16-38(65)54-30(21-26-10-12-27(61)13-11-26)41(68)57-31(42(69)55-29)20-25-6-2-1-3-7-25/h1-3,6-7,10-13,28-34,61H,4-5,8-9,14-24H2,(H2,47,62)(H2,48,63)(H2,49,64)(H,53,66)(H,54,65)(H,55,69)(H,56,71)(H,57,68)(H,58,67)(H,59,70)(H4,50,51,52)/t28-,29-,30-,31-,32-,33-,34-/m0/s1 + +> +InChIKey=NFLWUMRGJYTJIN-NXBWRCJVSA-N + +> +NC(=O)CC[C@@H]1NC(=O)[C@H](CC2=CC=CC=C2)NC(=O)[C@H](CC2=CC=C(O)C=C2)NC(=O)CCSSC[C@H](NC(=O)[C@H](CC(N)=O)NC1=O)C(=O)N1CCC[C@H]1C(=O)N[C@@H](CCCNC(N)=N)C(=O)NCC(N)=O + +> +15 + +> +14 + +> +11.34 + +> +-1 + +> +-6.1 + +> +-4 + +> +106.19 + +> +435.41 + +> +279.78 + +> +19 + +> +1.10e-01 g/l + +$$$$ diff --git a/lib/galaxy/datatypes/test/drugbank_drugs.smi b/lib/galaxy/datatypes/test/drugbank_drugs.smi new file mode 100644 index 00000000000..02a68671884 --- /dev/null +++ b/lib/galaxy/datatypes/test/drugbank_drugs.smi @@ -0,0 +1,2 @@ +O=C(N1[C@@H](CCC1)C(=O)NNC(=O)N)[C@@H](NC(=O)[C@@H](NC(=O)[C@H](NC(=O)[C@@H](NC(=O)[C@@H](NC(=O)[C@@H](NC(=O)[C@@H](NC(=O)[C@H]1NC(=O)CC1)Cc1[nH]cnc1)Cc1c2c([nH]c1)cccc2)CO)Cc1ccc(O)cc1)COC(C)(C)C)CC(C)C)CCCN=C(N)N Goserelin +NC(=O)CNC(=O)[C@@H](NC(=O)[C@@H]1CCCN1C(=O)[C@H]1NC(=O)[C@@H](NC(=O)[C@H](CCC(=O)N)NC(=O)[C@H](Cc2ccccc2)NC(=O)[C@@H](NC(=O)CCSSC1)Cc1ccc(cc1)O)CC(=O)N)CCCNC(=N)N Desmopressin diff --git a/lib/galaxy/datatypes/test/q.fps b/lib/galaxy/datatypes/test/q.fps new file mode 100644 index 00000000000..d6499c223a8 --- /dev/null +++ b/lib/galaxy/datatypes/test/q.fps @@ -0,0 +1,7 @@ +#FPS1 +#num_bits=881 +#type=CACTVS-E_SCREEN/1.0 extended=2 +#software=CACTVS/unknown +#source=CID_28434379.sdf +#date=2012-02-03T13:08:39 +07ce04000000000000000000000000000080060000000c060000000000001a800f0000780008100000101487e9608c0bed3248000580644626204101b4844805901b041c2e19511e45039b8b2924101609401b13e40800000000000100200000040080000010000002000000000000 28434379 From c8cb4280c18a6a2dcbc3c86395d19a8e511c7a60 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Mon, 21 Mar 2016 09:53:21 +0000 Subject: [PATCH 2/2] Fix datatype sniff test to use sample and revert molecule registry hacks. --- lib/galaxy/datatypes/registry.py | 7 ------- lib/galaxy/datatypes/sniff.py | 3 ++- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/lib/galaxy/datatypes/registry.py b/lib/galaxy/datatypes/registry.py index 0669df313e1..56425fe12d7 100644 --- a/lib/galaxy/datatypes/registry.py +++ b/lib/galaxy/datatypes/registry.py @@ -11,7 +11,6 @@ from . import data from . import tabular from . import interval from . import images -from . import molecules from . import sequence from . import qualityscore from . import xml @@ -739,7 +738,6 @@ class Registry( object ): binary.MzSQlite(), binary.IdpDB(), binary.SQlite(), - molecules.CML(), xml.GenericXml(), sequence.Maf(), sequence.Lav(), @@ -760,11 +758,6 @@ class Registry( object ): interval.Interval(), tabular.Sam(), tabular.Eland(), - molecules.SDF(), - molecules.FPS(), - molecules.InChI(), - molecules.MOL2(), - molecules.PDB(), tabular.CSV() ] diff --git a/lib/galaxy/datatypes/sniff.py b/lib/galaxy/datatypes/sniff.py index 241962a8015..ff9584d8b47 100644 --- a/lib/galaxy/datatypes/sniff.py +++ b/lib/galaxy/datatypes/sniff.py @@ -263,8 +263,9 @@ def guess_ext( fname, sniff_order, is_multi_byte=False ): >>> fname = get_test_fname('megablast_xml_parser_test1.blastxml') >>> from galaxy.datatypes import registry + >>> sample_conf = os.path.join(util.galaxy_directory(), "config", "datatypes_conf.xml.sample") >>> datatypes_registry = registry.Registry() - >>> datatypes_registry.load_datatypes() + >>> datatypes_registry.load_datatypes(root_dir=util.galaxy_directory(), config=sample_conf) >>> sniff_order = datatypes_registry.sniff_order >>> guess_ext(fname, sniff_order) 'xml'