changeset 0:933eb20bef51 draft

"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/chemicaltoolbox/openbabel commit 6c84abdd07f292048bf2194073e2e938e94158c4"
author bgruening
date Wed, 25 Mar 2020 20:37:36 +0000
parents
children 91233e629612
files change_title_to_metadata_value.py cheminfolib.py distance_finder.py distance_finder.xml macros.xml multi_obgrep.py ob_addh.py ob_filter.py ob_genProp.py ob_remIons.py ob_spectrophore_search.py remove_protonation_state.py subsearch.py test-data/2_mol.dat test-data/2_mol.smi test-data/3_mol.smi test-data/8_mol.smi test-data/CID2244_with_spectrophore.sdf test-data/CID_2244.can test-data/CID_2244.inchi test-data/CID_2244.sdf test-data/CID_2244.smi test-data/CID_2244_FP2.fps test-data/CID_2244_FP3.fps test-data/CID_2244_FP4.fps test-data/CID_2244_addh.can test-data/CID_2244_maccs.fps test-data/CID_3033.sdf test-data/CO.smarts test-data/change_title_on_CID_3033.sdf test-data/filterd_by_name.sdf test-data/lib.tabular test-data/ligands.sdf test-data/ligands_with_title.sdf test-data/molecule.fs test-data/molecule.sdf test-data/name_file.txt test-data/ob_convert_on_CID2244.can test-data/ob_convert_on_CID2244.cml test-data/ob_convert_on_CID2244.inchi test-data/ob_convert_on_CID2244.pdb test-data/ob_convert_on_CID2244.sdf test-data/ob_convert_on_CID2244.smi test-data/ob_convert_on_CID2244_obfs.txt test-data/ob_depiction_svg_on_8_mol.svg test-data/ob_filter_on_CID2244.sdf test-data/ob_filter_on_CID2244.smi test-data/ob_filter_on_CID2244_2.smi test-data/ob_genprop_on_CID2244.sdf test-data/ob_genprop_on_CID2244.tabular test-data/ob_multi_obgrep.smi test-data/ob_prepare_ligands.sdf test-data/ob_prepare_ligands1.mol2 test-data/ob_prepare_ligands1.pdbqt test-data/ob_prepare_ligands2.mol2 test-data/ob_prepare_ligands2.pdbqt test-data/ob_remDuplicates_on_2_mol.smi test-data/ob_remove_protonation_state.sdf test-data/ob_spectrophore_search.tabular test-data/ob_subsearch_with_CID2244.tabular test-data/obgrep_on_8_mol.smi test-data/obremsmall_on_3_mol.smi test-data/obrmions_on_2_mol.smi test-data/pattern.smarts test-data/split1.pdbqt test-data/split2.pdbqt test-data/transfs.sdf test-data/transfs_changed_name.sdf
diffstat 66 files changed, 6392 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/change_title_to_metadata_value.py	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+# -*- coding: UTF-8 -*-
+
+"""
+    Change the title from a molecule file to metadata
+    value of a given-id of the same molecule file.
+"""
+
+import os
+import sys
+import argparse
+import openbabel
+openbabel.obErrorLog.StopLogging()
+import pybel
+import random
+import string
+
+
+def main():
+    parser = argparse.ArgumentParser(
+        description="Change the title from a molecule file to metadata \
+value of a given-id of the same molecule file.",
+    )
+    parser.add_argument('--infile', '-i', 
+        required=True, help="path to the input file")
+    parser.add_argument('--outfile', '-o', 
+        required=True, help="path to the output file")
+    parser.add_argument('--key', '-k',
+        required=True, help="the metadata key from the sdf file which should inlcude the new title")
+    parser.add_argument('--random', '-r',
+        action="store_true", help="Add random suffix to the title.")
+
+    args = parser.parse_args()
+
+    output = pybel.Outputfile("sdf", args.outfile, overwrite=True)
+    for mol in pybel.readfile("sdf", args.infile):
+        if args.key in mol.data:
+            mol.title = mol.data[args.key]
+            if args.random:
+                suffix = ''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(13))
+                mol.title += '__%s' % suffix
+        output.write( mol )
+
+    output.close()
+
+
+if __name__ == "__main__":
+    main()
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cheminfolib.py	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,264 @@
+#!/usr/bin/env python
+"""
+    Small library with cheminformatic functions based on openbabel and pgchem.
+    Copyright 2012, Bjoern Gruening and Xavier Lucas
+"""
+
+import os, sys
+
+try:
+    from galaxy import eggs
+    eggs.require('psycopg2')
+except:
+    print('psycopg2 is not available. It is currently used in the pgchem wrappers, that are not shipped with default CTB')
+
+try:
+    import pybel
+    import openbabel
+except:
+    print('OpenBabel could not be found. A few functions are not available without OpenBabel.')
+
+from multiprocessing import Pool
+import glob, tempfile, re
+import subprocess
+
+def CountLines( path ):
+    out = subprocess.Popen(['wc', '-l', path],
+                         stdout=subprocess.PIPE,
+                         stderr=subprocess.STDOUT
+                         ).communicate()[0]
+    return int(out.partition(b' ')[0])
+
+def grep(pattern, file_obj):
+    grepper = re.compile(pattern)
+    for line in file_obj:
+        if grepper.search(line):
+            return True
+    return False
+
+def check_filetype(filepath):
+    mol = False
+    possible_inchi = True
+    for line_counter, line in enumerate(open(filepath)):
+        if line_counter > 10000:
+            break
+        if line.find('$$$$') != -1:
+            return 'sdf'
+        elif line.find('@<TRIPOS>MOLECULE') != -1:
+            return 'mol2'
+        elif line.find('ligand id') != -1:
+            return 'drf'
+        elif possible_inchi and re.findall('^InChI=', line):
+            return 'inchi'
+        elif re.findall('^M\s+END', line):
+            mol = True
+        # first line is not an InChI, so it can't be an InChI file
+        possible_inchi = False
+
+    if mol:
+        # END can occures before $$$$, so and SDF file will 
+        # be recognised as mol, if you not using this hack'
+        return 'mol'
+    return 'smi'
+
+def db_connect(args):
+    try:
+        db_conn = psycopg2.connect("dbname=%s user=%s host=%s password=%s" % (args.dbname, args.dbuser, args.dbhost, args.dbpasswd));
+        return db_conn
+    except:
+        sys.exit('Unable to connect to the db')
+
+ColumnNames = {
+    'can_smiles' : 'Canonical SMILES',
+    'can' : 'Canonical SMILES',
+    'inchi' : 'InChI',
+    'inchi_key' : 'InChI key',
+    'inchi_key_first' : 'InChI key first',
+    'inchi_key_last' : 'InChI key last',
+    'molwt' : 'Molecular weight',
+    'hbd' : 'Hydrogen-bond donors',
+    'donors' : 'Hydrogen-bond donors',
+    'hba' : 'Hydrogen-bond acceptors',
+    'acceptors' : 'Hydrogen-bond acceptors',
+    'rotbonds' : 'Rotatable bonds',
+    'logp' : 'logP',
+    'psa' : 'Polar surface area',
+    'mr' : 'Molecular refractivity',
+    'atoms' : 'Number of heavy atoms',
+    'rings' : 'Number of rings',
+    'set_bits' : 'FP2 bits',
+    'id' : 'Internal identifier',
+    'tani' : 'Tanimoto coefficient',
+    'spectrophore' : 'Spectrophores(TM)',
+    'dist_spectrophore' : 'Spectrophores(TM) distance to target',
+    'synonym' : 'Entry id',
+}
+
+OBDescriptor = {
+    'atoms': ["atoms","Number of atoms"],
+    'hatoms': ["hatoms","Number of heavy atoms"], # self defined tag hatoms in plugindefines.txt
+    'can_smiles' : ["cansmi","Canonical SMILES"],
+    'can_smilesNS' : ["cansmiNS","Canonical SMILES without isotopes or stereo"],
+    #["abonds","Number of aromatic bonds"],
+    #["bonds","Number of bonds"],
+    #["dbonds","Number of double bonds"],
+    #["formula","Chemical formula"],
+    'hba': ["HBA1","Number of Hydrogen Bond Acceptors 1 (JoelLib)"],
+    'hba2': ["HBA2","Number of Hydrogen Bond Acceptors 2 (JoelLib)"],
+    'hbd': ["HBD","Number of Hydrogen Bond Donors (JoelLib)"],
+    'inchi': ["InChI","IUPAC InChI identifier"],
+    'inchi_key': ["InChIKey","InChIKey"],
+    #["L5","Lipinski Rule of Five"],
+    'logp': ["logP","octanol/water partition coefficient"],
+    'mr': ["MR","molar refractivity"],
+    'molwt': ["MW","Molecular Weight filter"],
+    #["nF","Number of Fluorine Atoms"],
+    #["s","SMARTS filter"],
+    #["sbonds","Number of single bonds"],
+    #["smarts","SMARTS filter"],
+    #["tbonds","Number of triple bonds"],
+    #["title","For comparing a molecule's title"],
+    'psa': ["TPSA","topological polar surface area"],
+    'rotbonds' : ['ROTATABLE_BOND', 'rotatable bonds'],
+}
+
+
+def print_output(args, rows):
+    if args.oformat == 'table':
+        outfile = open(args.output, 'w')
+        requested_fields = (filter(lambda x: x not in ["[", "]", "'"], args.fetch)).split(', ')
+        if args.header:
+            outfile.write( 'Identifier\t' + '\t'.join( [ColumnNames[key] for key in requested_fields] ) + '\n' )
+        for row in rows:
+            outfile.write( row['synonym'] + '\t' + '\t'.join( [str(row[key]) for key in requested_fields] ) + '\n' )
+
+    elif args.oformat in ['sdf', 'mol2']:
+        outfile = pybel.Outputfile(args.oformat, args.output, overwrite=True)
+        for row in rows:
+            try:
+                mol = pybel.readstring('sdf', row['mol'])
+                if args.oformat == 'sdf':
+                    keys = filter(lambda x: x not in ["[", "]", "'"], args.fetch).split(', ')
+                    mol.data.update( { ColumnNames['synonym'] : row['synonym'] } )
+                    if 'inchi_key' in keys:
+                        keys = (', '.join(keys).replace( "inchi_key", "inchi_key_first, inchi_key_last" )).split(', ')
+                    [ mol.data.update( { ColumnNames[key] : row[key] } ) for key in keys if key]
+                outfile.write(mol)
+            except:
+                pass
+    else:
+        outfile = open(args.output, 'w')
+        outfile.write( '\n'.join( [ '%s\t%s' % (row[args.oformat], row['synonym'] ) for row in rows ] ) )
+    outfile.close()
+
+def pybel_stop_logging():
+    openbabel.obErrorLog.StopLogging()
+
+def get_properties_ext(mol):
+
+    HBD = pybel.Smarts("[!#6;!H0]")
+    HBA = pybel.Smarts("[$([$([#8,#16]);!$(*=N~O);" +
+                       "!$(*~N=O);X1,X2]),$([#7;v3;" +
+                       "!$([nH]);!$(*(-a)-a)])]"
+                      )
+    calc_desc_dict = mol.calcdesc()
+
+    try:
+        logp = calc_desc_dict['logP']
+    except:
+        logp = calc_desc_dict['LogP']
+
+    return {"molwt": mol.molwt,
+            "logp": logp,
+            "donors": len(HBD.findall(mol)),
+            "acceptors": len(HBA.findall(mol)), 
+            "psa": calc_desc_dict['TPSA'],
+            "mr": calc_desc_dict['MR'],
+            "rotbonds": mol.OBMol.NumRotors(),
+            "can": mol.write("can").split()[0].strip(), ### tthis one works fine for both zinc and chembl (no ZINC code added after can descriptor string)
+            "inchi": mol.write("inchi").strip(),
+            "inchi_key": get_inchikey(mol).strip(),
+            "rings": len(mol.sssr),
+            "atoms": mol.OBMol.NumHvyAtoms(),
+            "spectrophore" : OBspectrophore(mol),
+           }
+
+def get_inchikey(mol):
+    conv = openbabel.OBConversion()
+    conv.SetInAndOutFormats("mol", "inchi")
+    conv.SetOptions("K", conv.OUTOPTIONS)
+    inchikey = conv.WriteString( mol.OBMol )
+    return inchikey
+
+def OBspectrophore(mol):
+    spectrophore = pybel.ob.OBSpectrophore()
+    # Parameters: rotation angle = 20, normalization for mean and sd, accuracy = 3.0 A and non-stereospecific cages.
+    spectrophore.SetNormalization( spectrophore.NormalizationTowardsZeroMeanAndUnitStd )
+    return ', '.join( [ "%.3f" % value for value in spectrophore.GetSpectrophore( mol.OBMol ) ] )
+
+def squared_euclidean_distance(a, b):
+    try:
+        return ((np.asarray( a ) - np.asarray( b ))**2).sum()
+    except ValueError:
+        return 0
+
+def split_library( lib_path, lib_format = 'sdf', package_size = None ):
+    """
+        Split a library of compounds. Usage: split_library( lib_path, lib_format, package_size )
+        IT currently ONLY WORKS FOR SD-Files
+    """
+    pack = 1
+    mol_counter = 0
+
+    outfile = open('/%s/%s_pack_%i.%s' % ( '/'.join(lib_path.split('/')[:-1]), lib_path.split('/')[-1].split('.')[0], pack, 'sdf'), 'w' )
+
+    for line in open(lib_path, 'r'):
+        outfile.write( line )
+        if line.strip() == '$$$$':
+            mol_counter += 1
+            if mol_counter % package_size == 0:
+                outfile.close()
+                pack += 1
+                outfile = open('/%s/%s_pack_%i.%s' % ( '/'.join(lib_path.split('/')[:-1]), lib_path.split('/')[-1].split('.')[0], pack, 'sdf'), 'w' )
+                if mol_counter*10 % package_size == 0:
+                    print('%i molecules parsed, starting pack nr. %i' % ( mol_counter, pack - 1 ))
+    outfile.close()
+
+    return True
+
+def split_smi_library( smiles_file, structures_in_one_file ):
+    """
+        Split a file with SMILES to several files for multiprocessing usage. 
+        Usage: split_smi_library( smiles_file, 10 )
+    """
+    output_files = []
+    tfile = tempfile.NamedTemporaryFile(delete=False)
+
+    smiles_handle = open(smiles_file, 'r')
+    for count, line in enumerate( smiles_handle ):
+        if count % structures_in_one_file == 0 and count != 0:
+            tfile.close()
+            output_files.append(tfile.name)
+            tfile = tempfile.NamedTemporaryFile(delete=False)
+        tfile.write(line)
+    tfile.close()
+    output_files.append(tfile.name)
+    smiles_handle.close()
+    return output_files
+
+
+def mp_run(input_path, regex, PROCESSES, function_to_call ):
+    paths = []
+    [ paths.append(compound_file) for compound_file in glob.glob(str(input_path) + str(regex)) ]
+    paths.sort()
+
+    pool = Pool(processes=PROCESSES)
+    print('Process initialized with', PROCESSES, 'processors')
+    result = pool.map_async(function_to_call, paths)
+    result.get()
+
+    return paths
+
+if __name__ == '__main__':
+    print(check_filetype(sys.argv[1]))
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/distance_finder.py	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,109 @@
+# Reports distances of ligands to reference points. An example input for the points is:
+#
+# 5.655   1.497  18.223
+# 1.494  -8.367  18.574
+# 13.034   6.306  25.232
+#
+# Data can be space or tab separated but must contain 3 and only 3 numbers for the x, y and z coordinates
+#
+# That would encode 3 points.
+# Each record in the SDF input is read and the closest heavy atom to each of the reference points is recorded as
+# a property named distance1 where the numeric part is the index (starting from 1) of the points (in that example
+# there would be properties for distance1, distance2 and distance3.
+
+import argparse, os, sys, math
+from openbabel import pybel
+
+
+
+def log(*args, **kwargs):
+    """Log output to STDERR
+    """
+    print(*args, file=sys.stderr, ** kwargs)
+
+
+def execute(ligands_sdf, points_file, outfile):
+    """
+    :param ligands_sdf: A SDF with the 3D molecules to test
+    :param points_file: A file with the points to consider.
+    :param outfile: The name of the file for the SDF output
+    :return:
+    """
+
+
+    points = []
+
+    # read the points
+    with open(points_file, 'r') as f:
+        for line in f.readlines():
+            line.strip()
+            if line:
+                p = line.split()
+                if len(p) == 3:
+                    points.append((float(p[0]), float(p[1]), float(p[2])))
+                    log("Read points",p)
+                    continue
+            log("Failed to read line:", line)
+    log('Found', len(points), 'atom points')
+
+    sdf_writer = pybel.Outputfile("sdf", outfile, overwrite=True)
+
+    count = 0
+    for mol in pybel.readfile("sdf", ligands_sdf):
+        count += 1
+        if count % 50000 == 0:
+            log('Processed', count)
+
+        try:
+            # print("Processing mol", mol.title)
+
+            clone = pybel.Molecule(mol)
+            clone.removeh()
+
+            coords = []
+            for atom in clone.atoms:
+                coords.append(atom.coords)
+
+            p = 0
+            for point in points:
+                p += 1
+                distances = []
+                for i in coords:
+                    # calculates distance based on cartesian coordinates
+                    distance = math.sqrt((point[0] - i[0])**2 + (point[1] - i[1])**2 + (point[2] - i[2])**2)
+                    distances.append(distance)
+                    # log("distance:", distance)
+                min_distance = min(distances)
+                # log('Min:', min_distance)
+                # log(count, p, min_distance)
+
+                mol.data['distance' + str(p)] = min_distance
+
+            sdf_writer.write(mol)
+
+        except Exception as e:
+            log('Failed to handle molecule: '+ str(e))
+            continue
+
+    sdf_writer.close()
+    log('Wrote', count, 'molecules')
+
+
+def main():
+    global work_dir
+
+    parser = argparse.ArgumentParser(description='XChem distances - measure distances to particular points')
+
+    parser.add_argument('-i', '--input', help="SDF containing the 3D molecules to score)")
+    parser.add_argument('-p', '--points', help="PDB format file with atoms")
+    parser.add_argument('-o', '--outfile', default='output.sdf', help="File name for results")
+
+
+    args = parser.parse_args()
+    log("XChem distances args: ", args)
+
+    execute(args.input, args.points, args.outfile)
+
+
+if __name__ == "__main__":
+    main()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/distance_finder.xml	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,83 @@
+<tool id="openbabel_structure_distance_finder" name="Determine distance to defined points" version="0.1.0">
+    <description>- determine the minimum distances between a molecule and a set of 3D points</description>
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+    <requirements>
+        <!-- does not run with obabel 2.4.1 -->
+        <requirement type="package" version="3.0.0">openbabel</requirement>
+    </requirements>
+    <command detect_errors="exit_code"><![CDATA[
+        python '$__tool_directory__/distance_finder.py'
+            -i '$input'
+            -p $points_file
+            -o '$output'
+    ]]></command>
+
+    <configfiles>
+        <configfile name="points_file">$points</configfile>
+    </configfiles>
+
+    <inputs>
+        <param type="data" name="input" format="sdf" label="Ligands to be analysed" help="Input in SDF format" />
+        <param type="text" name="points" area="true" label="3D points to consider" help="Points as X, Y, Z coordinates, one point per line">
+            <sanitizer invalid_char="">
+                <valid initial="string.printable">
+                    <remove value="&apos;" />
+                </valid>
+            </sanitizer>
+        </param>
+    </inputs>
+    <outputs>
+        <data format="sdf" name="output" label="The measured ligands"/>
+    </outputs>
+    <tests>
+        <test>
+            <param name="input" ftype="sdf" value="ligands.sdf"/>
+            <!-- TODO - work out how to specify multi-line text -->
+            <param name="points" value="5.655   1.497  18.223" />
+            <output name="output" ftype="sdf">
+                <assert_contents>
+                    <has_text text="distance1" />
+                </assert_contents>
+            </output>
+        </test>
+    </tests>
+    <help><![CDATA[
+.. class:: infomark
+
+**What it does**
+
+This tool reports distances of ligands to reference points provided as atoms in a PDB file.
+It is useful for finding out to what extent a ligand occupies an active site.
+
+.. class:: infomark
+
+**Input**
+
+An SD-file containing 3D molecules.
+
+The points parameter contains the points to compare to as X, Y and Z coordinates, one point per line.
+An example  is:
+
+5.655   1.497  18.223
+1.494  -8.367  18.574
+13.034   6.306  25.232
+
+This would encode 3 points.
+
+Each record in the SDF input is read and the closest heavy atom to each of the points is recorded as
+properties in the output SDF.
+
+.. class:: infomark
+
+**Output**
+
+The same SD file as the input but with a series of "distance?" properties added where ? is the index of the points
+being compared to. In the example there would be properties for distance1, distance2 and distance3.
+
+
+    ]]></help>
+    <expand macro="citations"/>
+</tool>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,40 @@
+<macros>
+    <token name="@VERSION@">2.4.2.1</token>
+
+    <xml name="requirements">
+        <requirements>
+            <requirement type="package" version="2.4.1">openbabel</requirement>
+            <requirement type="package" version="3">python</requirement>
+            <yield />
+        </requirements>
+    </xml>
+
+    <xml name="output_like_input">
+        <data name="outfile" format_source="infile" />
+    </xml>
+
+    <xml name="infile_all_types">
+        <param name="infile" format="sdf,mol,mol2,cml,inchi,smi,pdb" type="data" label="Molecular input file"
+        help="Valid file types are: SDF, MOL, MOL2, CML, InChI, SMILES, and PDB"/>
+    </xml>
+
+    <xml name="2D_3D_opts">
+        <param name="gen2d" type="boolean" truevalue="--gen2d" falsevalue="" checked="false"
+            label="Generate 2D coordinates" help="(--gen2d)" />
+        <param name="gen3d" type="boolean" truevalue="--gen3d" falsevalue="" checked="false"
+            label="Generate 3D coordinates" help="(--gen3d)" />
+    </xml>
+
+    <xml name="stdio">
+        <stdio>
+            <exit_code range="1:" level="fatal" description="Error occurred. Please check Tool Standard Error" />
+        </stdio>
+    </xml>
+
+    <xml name="citations">
+        <citations>
+            <citation type="doi">10.1186/1758-2946-3-33</citation>
+            <yield />
+        </citations>
+    </xml>
+</macros>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/multi_obgrep.py	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,101 @@
+#!/usr/bin/env python
+"""
+    Input: Molecules in SDF, SMILES ...
+    Output: Molecule file filtered with obgrep.
+    Copyright 2013, Bjoern Gruening and Xavier Lucas
+"""
+import sys, os
+import argparse
+import openbabel
+openbabel.obErrorLog.StopLogging()
+import pybel
+import multiprocessing
+import tempfile
+import subprocess
+import shutil
+import shlex
+
+def parse_command_line():
+    parser = argparse.ArgumentParser()
+    parser.add_argument('-i', '--infile', required=True, help='Molecule file.')
+    parser.add_argument('-q', '--query',  required=True, help='Query file, containing different SMARTS in each line.')
+    parser.add_argument('-o', '--outfile', required=True, help='Path to the output file.')
+    parser.add_argument("--iformat", help="Input format, like smi, sdf, inchi")
+    parser.add_argument("--n-times", dest="n_times", type=int,
+                    default=0, help="Print a molecule only if the pattern occurs # times inside the molecule.")
+    parser.add_argument('-p', '--processors', type=int, default=multiprocessing.cpu_count())
+    parser.add_argument("--invert-matches", dest="invert_matches", action="store_true",
+                    default=False, help="Invert the matching, print non-matching molecules.")
+    parser.add_argument("--only-name", dest="only_name", action="store_true",
+                    default=False, help="Only print the name of the molecules.")
+    parser.add_argument("--full-match", dest="full_match", action="store_true",
+                    default=False, help="Full match, print matching-molecules only when the number of heavy atoms is also equal to the number of atoms in the SMARTS pattern.")
+    parser.add_argument("--number-of-matches", dest="number_of_matches", action="store_true",
+                    default=False, help="Print the number of matches.")
+    return parser.parse_args()
+
+results = list()
+def mp_callback(res):
+    results.append(res)
+
+def mp_helper( query, args ):
+    """
+        Helper function for multiprocessing.
+        That function is a wrapper around obgrep.
+    """
+
+    cmd_list = []
+    if args.invert_matches:
+        cmd_list.append('-v')
+    if args.only_name:
+        cmd_list.append('-n')
+    if args.full_match:
+        cmd_list.append('-f')
+    if args.number_of_matches:
+        cmd_list.append('-c')
+    if args.n_times:
+        cmd_list.append('-t %s' % str(args.n_times))
+
+    tmp = tempfile.NamedTemporaryFile(delete=False)
+    cmd = 'obgrep %s "%s" %s' % (' '.join(cmd_list), query, args.infile)
+    child = subprocess.Popen(shlex.split(cmd),
+        stdout=open(tmp.name, 'w+'), stderr=subprocess.PIPE)
+
+    stdout, stderr = child.communicate()
+    return (tmp.name, query)
+
+
+def obgrep( args ):
+
+    temp_file = tempfile.NamedTemporaryFile()
+    temp_link = "%s.%s" % (temp_file.name, args.iformat)
+    temp_file.close()
+    os.symlink(args.infile, temp_link)
+    args.infile = temp_link
+
+    pool = multiprocessing.Pool( args.processors )
+    for query in open( args.query ):
+        pool.apply_async(mp_helper, args=(query.strip(), args), callback=mp_callback)
+        #mp_callback( mp_helper(query.strip(), args) )
+    pool.close()
+    pool.join()
+
+    out_handle = open( args.outfile, 'wb' )
+    for result_file, query in results:
+        res_handle = open(result_file,'rb')
+        shutil.copyfileobj( res_handle, out_handle )
+        res_handle.close()
+        os.remove( result_file )
+    out_handle.close()
+
+    os.remove( temp_link )
+
+def __main__():
+    """
+        Multiprocessing obgrep search.
+    """
+    args = parse_command_line()
+    obgrep( args )
+
+if __name__ == "__main__" :
+    __main__()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ob_addh.py	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,38 @@
+#!/usr/bin/env python
+"""
+    Input:  Molecule file
+    Output: Molecule file with hydrogen atoms added at the target pH.
+"""
+import sys, os
+import argparse
+import openbabel
+openbabel.obErrorLog.StopLogging()
+import pybel
+
+def parse_command_line(argv):
+    parser = argparse.ArgumentParser()
+    parser.add_argument('--iformat', type=str, default='sdf' , help='input file format')
+    parser.add_argument('-i', '--input', type=str, required=True, help='input file name')
+    parser.add_argument('-o', '--output', type=str, required=True, help='output file name')
+    parser.add_argument('--polar', action="store_true", default=False, help='Add hydrogen atoms only to polar atoms')
+    parser.add_argument('--pH', type=float, default="7.4", help='Specify target pH value')
+    return parser.parse_args()
+
+def addh(args):
+    outfile = pybel.Outputfile(args.iformat, args.output, overwrite=True)
+    for mol in pybel.readfile(args.iformat, args.input):
+        if mol.OBMol.NumHvyAtoms() > 5:
+            mol.removeh()
+            mol.OBMol.AddHydrogens(args.polar, True, args.pH)
+            outfile.write(mol)
+    outfile.close()
+
+def __main__():
+    """
+        Add hydrogen atoms at a certain pH value
+    """
+    args = parse_command_line(sys.argv)
+    addh(args)
+
+if __name__ == "__main__" :
+    __main__()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ob_filter.py	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,128 @@
+#!/usr/bin/env python
+"""
+    Input: set of molecules with pre-calculated physico-chemical properties
+    Output: set of molecules that pass all the filters
+    Copyright 2012, Bjoern Gruening and Xavier Lucas
+
+    TODO: AND/OR conditions?
+"""
+import sys, os
+import argparse
+import cheminfolib
+import json
+import pybel
+import shlex, subprocess
+
+cheminfolib.pybel_stop_logging()
+
+def parse_command_line():
+    parser = argparse.ArgumentParser()
+    parser.add_argument('-i', '--input', help='Input file name')
+    parser.add_argument('-iformat', help='Input file format')
+    parser.add_argument('-oformat', 
+        default='smi',
+        help='Output file format')
+    parser.add_argument('-o', '--output', 
+        help='Output file name',
+        required=True)
+    parser.add_argument('--filters', 
+        help="Specify the filters to apply",
+        required=True,
+        )
+    parser.add_argument('--list_of_names', 
+        help="A file with list of molecule names to extract. Every name is in one line.",
+        required=False,
+        )
+    return parser.parse_args()
+
+def filter_precalculated_compounds(args, filters):
+    outfile = pybel.Outputfile(args.oformat, args.output, overwrite=True)
+    for mol in pybel.readfile('sdf', args.input):
+        for key, elem in filters.items():
+            # map the short description to the larger metadata names stored in the sdf file
+            property = cheminfolib.ColumnNames[key]
+            min = elem[0]
+            max = elem[1]
+            if float(mol.data[property]) >= float(min) and float(mol.data[property]) <= float(max):
+                pass
+            else:
+                # leave the filter loop, because one filter constrained are not satisfied
+                break
+        else:
+            # if the filter loop terminates in a normal way (no break) all filter rules are satisfied, so save the compound
+            outfile.write(mol)
+    outfile.close()
+
+def filter_new_compounds(args, filters):
+
+    if args.iformat == args.oformat:
+        # use the -ocopy option from openbabel to speed up the filtering, additionally no conversion is carried out
+        # http://openbabel.org/docs/dev/FileFormats/Copy_raw_text.html#copy-raw-text
+        cmd = 'obabel -i%s %s -ocopy -O %s --filter' % (args.iformat, args.input, args.output)
+    else:
+        cmd = 'obabel -i%s %s -o%s -O %s --filter' % (args.iformat, args.input, args.oformat, args.output)
+    filter_cmd = ''
+    # OBDescriptor stores a mapping from our desc shortcut to the OB name [0] and a long description [1]
+    for key, elem in filters.items():
+        ob_descriptor_name = cheminfolib.OBDescriptor[key][0]
+        min = elem[0]
+        max = elem[1]
+        filter_cmd += ' %s>=%s %s<=%s ' % (ob_descriptor_name, min, ob_descriptor_name, max)
+
+    args = shlex.split('%s "%s"' % (cmd, filter_cmd))
+    #print '%s "%s"' % (cmd, filter_cmd)
+    # calling openbabel with subprocess and pipe potential errors occuring in openbabel to stdout
+    child = subprocess.Popen(args,
+        stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+
+    stdout, stderr = child.communicate()
+    return_code = child.returncode
+
+    if return_code:
+        sys.stdout.write(stdout.decode('utf-8'))
+        sys.stderr.write(stderr.decode('utf-8'))
+        sys.stderr.write("Return error code %i from command:\n" % return_code)
+        sys.stderr.write("%s\n" % cmd)
+    else:
+        sys.stdout.write(stdout.decode('utf-8'))
+        sys.stdout.write(stderr.decode('utf-8'))
+
+def filter_by_name(args):
+    outfile = pybel.Outputfile(args.oformat, args.output, overwrite=True)
+    for mol in pybel.readfile('sdf', args.input):
+        for name in open(args.list_of_names):
+            if mol.title.strip() == name.strip():
+                outfile.write(mol)
+    outfile.close()
+
+def __main__():
+    """
+        Select compounds with certain properties from a small library
+    """
+    args = parse_command_line()
+    
+    if args.filters == '__filter_by_name__':
+        filter_by_name(args)
+        return
+    
+    # Its a small trick to get the parameters in an easy way from the xml file.
+    # To keep it readable in the xml file, many white-spaces are included in that string it needs to be removed.
+    # Also the last loop creates a ',{' that is not an valid jason expression.
+    filters = json.loads((args.filters).replace(' ', '').replace(',}', '}'))
+    if args.iformat == 'sdf':
+        # Check if the sdf file contains all of the required metadata to invoke the precalculation filtering
+        mol = next(pybel.readfile('sdf', args.input))
+        for key, elem in filters.items():
+            property = cheminfolib.ColumnNames[key]
+            if not property in mol.data:
+                break
+        else:
+            # if the for loop finishes in a normal way, we should habe all properties at least in the first molecule
+            # assume it is the same for all other molecules and start the precalculated filtering
+            filter_precalculated_compounds(args, filters)
+            return True
+    filter_new_compounds(args, filters)
+
+
+if __name__ == "__main__" :
+    __main__()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ob_genProp.py	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,52 @@
+#!/usr/bin/env python
+"""
+    Input: Molecular input file.
+    Output: Physico-chemical properties are computed and stored as metadata in the sdf output file.
+    Copyright 2012, Bjoern Gruening and Xavier Lucas
+"""
+import sys, os
+import argparse
+import openbabel
+openbabel.obErrorLog.StopLogging()
+import pybel
+import cheminfolib
+
+
+def parse_command_line(argv):
+    parser = argparse.ArgumentParser()
+    parser.add_argument('--iformat', default='sdf' , help='input file format')
+    parser.add_argument('-i', '--input', required=True, help='input file name')
+    parser.add_argument('--oformat', default='sdf', choices = ['sdf', 'table'] , help='output file format')
+    parser.add_argument('--header', type=bool, help='Include the header as the first line of the output table')
+    parser.add_argument('-o', '--output', required=True, help='output file name')
+    return parser.parse_args()
+
+def compute_properties(args):
+    if args.oformat == 'sdf':
+        outfile = pybel.Outputfile(args.oformat, args.output, overwrite=True)
+    else:
+        outfile = open(args.output, 'w')
+        if args.header:
+            mol = next(pybel.readfile(args.iformat, args.input))
+            metadata = cheminfolib.get_properties_ext(mol)
+            outfile.write( '%s\n' % '\t'.join( [ cheminfolib.ColumnNames[key] for key in metadata ] ) )
+
+    for mol in pybel.readfile(args.iformat, args.input):
+        if mol.OBMol.NumHvyAtoms() > 5:
+            metadata = cheminfolib.get_properties_ext(mol)
+            if args.oformat == 'sdf':
+                [ mol.data.update( { cheminfolib.ColumnNames[key] : metadata[key] } ) for key in metadata ]
+                outfile.write(mol)
+            else:
+                outfile.write( '%s\n' % ('\t'.join( [ str(metadata[key]) for key in metadata ] ) ) )
+    outfile.close()
+
+def __main__():
+    """
+        Physico-chemical properties are computed and stored as metadata in the sdf output file
+    """
+    args = parse_command_line(sys.argv)
+    compute_properties(args)
+
+if __name__ == "__main__" :
+    __main__()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ob_remIons.py	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,38 @@
+#!/usr/bin/env python
+"""
+    Input: molecular input file.
+    Output: Molecule file with removed ions and fragments.
+    Copyright 2012, Bjoern Gruening and Xavier Lucas
+"""
+import sys, os
+import argparse
+import openbabel
+openbabel.obErrorLog.StopLogging()
+import pybel
+
+def parse_command_line():
+    parser = argparse.ArgumentParser()
+    parser.add_argument('-iformat', default='sdf' , help='input file format')
+    parser.add_argument('-i', '--input', required=True, help='input file name')
+    parser.add_argument('-o', '--output', required=True, help='output file name')
+    return parser.parse_args()
+
+def remove_ions(args):
+    outfile = pybel.Outputfile(args.iformat, args.output, overwrite=True)
+    for mol in pybel.readfile(args.iformat, args.input):
+        if mol.OBMol.NumHvyAtoms() > 5:
+            mol.OBMol.StripSalts(0)
+            # Check if new small fragments have been created and remove them
+            if mol.OBMol.NumHvyAtoms() > 5:
+                outfile.write(mol)
+    outfile.close()
+
+def __main__():
+    """
+        Remove any counterion and delete any fragment but the largest one for each molecule.
+    """
+    args = parse_command_line()
+    remove_ions(args)
+
+if __name__ == "__main__" :
+    __main__()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ob_spectrophore_search.py	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,66 @@
+#!/usr/bin/env python
+"""
+    Input: tabular format file with one column storing the unique id for the compounds and any other with the Spectrophores(TM) descriptors.
+    Output: parse the target file using the same protocol used to generate the databases in our servers. Physico-chemical properties are computed and stored as metadata in the sdf output file.
+    Copyright 2012, Bjoern Gruening and Xavier Lucas
+"""
+import sys, os
+import argparse
+import openbabel
+openbabel.obErrorLog.StopLogging()
+import pybel
+import math
+import numpy as np
+
+#TODO get rid of eval()
+
+global spectrophore
+spectrophore = pybel.ob.OBSpectrophore()
+
+def parse_command_line():
+    parser = argparse.ArgumentParser()
+    parser.add_argument('--target', required=True, help='target file name in sdf format with Spectrophores(TM) descriptors stored as meta-data')
+    parser.add_argument('--library', required=True, help='library of compounds with pre-computed physico-chemical properties, including Spectrophores(TM) in tabular format')
+    parser.add_argument('-c', '--column', required=True, type=int, help='#column containing the Spectrophores(TM) descriptors in the library file')
+    parser.add_argument('-o', '--output', required=True, help='output file name')
+    parser.add_argument('-n', '--normalization', default="ZeroMeanAndUnitStd", choices=['No', 'ZeroMean', 'UnitStd', 'ZeroMeanAndUnitStd'], help='Normalization method')
+    parser.add_argument('-a', '--accuracy', default="20", choices=['1', '2', '5', '10', '15', '20', '30', '36', '45', '60'], help='Accuracy expressed as angular stepsize')
+    parser.add_argument('-s', '--stereo', default="No", choices=['No', 'Unique', 'Mirror', 'All'], help='Stereospecificity of the cage')
+    parser.add_argument('-r', '--resolution', type=float, default="3.0", help='Resolution')
+    return parser.parse_args()
+
+def set_parameters(args):
+    if args.normalization == 'No':
+        spectrophore.SetNormalization( spectrophore.NoNormalization )
+    else:
+        spectrophore.SetNormalization( eval('spectrophore.NormalizationTowards' + args.normalization) )
+    spectrophore.SetAccuracy( eval('spectrophore.AngStepSize' + args.accuracy) )
+    spectrophore.SetStereo( eval('spectrophore.' + args.stereo + 'StereoSpecificProbes') )
+    spectrophore.SetResolution( args.resolution )
+    return True
+
+def Compute_Spectrophores_distance(target_spectrophore, args):
+    outfile = open(args.output, 'w')
+    for mol in open(args.library, 'r'):
+        try:
+            distance = ( ( np.asarray( target_spectrophore, dtype=float ) - np.asarray( mol.split('\t')[ args.column - 1 ].strip().split(', '), dtype=float) )**2).sum()
+        except ValueError:
+            distance = 0
+        outfile.write( '%s\t%f\n' % (mol.strip(), distance ) )
+    outfile.close()
+
+def __main__():
+    """
+        Computation of Spectrophores(TM) distances to a target molecule.
+    """
+    args = parse_command_line()
+    # This sets up the parameters for the Spectrophore generation. Parameters are set to fit those of our standard parsing tool
+    set_parameters(args)
+
+    mol = next(pybel.readfile('sdf', args.target))
+    target_spectrophore = mol.data["Spectrophores(TM)"].strip().split(', ')
+    # Compute the paired-distance between every molecule in the library and the target
+    distances = Compute_Spectrophores_distance(target_spectrophore, args)
+
+if __name__ == "__main__" :
+    __main__()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/remove_protonation_state.py	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,35 @@
+#!/usr/bin/env python
+"""
+    Input: molecular input file.
+    Output: Molecule file with removed ions and fragments.
+    Copyright 2013, Bjoern Gruening and Xavier Lucas
+"""
+import sys, os
+import argparse
+import openbabel
+openbabel.obErrorLog.StopLogging()
+import pybel
+
+def parse_command_line():
+    parser = argparse.ArgumentParser()
+    parser.add_argument('--iformat', default='sdf' , help='input file format')
+    parser.add_argument('-i', '--input', required=True, help='input file name')
+    parser.add_argument('-o', '--output', required=True, help='output file name')
+    return parser.parse_args()
+
+def remove_protonation( args ):
+    outfile = pybel.Outputfile(args.iformat, args.output, overwrite=True)
+    for mol in pybel.readfile(args.iformat, args.input):
+        [atom.OBAtom.SetFormalCharge(0) for atom in mol.atoms]
+        outfile.write( mol )
+    outfile.close()
+
+def __main__():
+    """
+        Remove any protonation state from each atom in each molecule.
+    """
+    args = parse_command_line()
+    remove_protonation( args )
+
+if __name__ == "__main__" :
+    __main__()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/subsearch.py	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,116 @@
+#!/usr/bin/env python
+"""
+    Input: Molecules in SDF, SMILES ...
+    Output: Moleculs filtered with specified substructures.
+    Copyright 2013, Bjoern Gruening and Xavier Lucas
+"""
+import sys, os
+import argparse
+import openbabel
+openbabel.obErrorLog.StopLogging()
+import pybel
+import multiprocessing
+import tempfile
+import subprocess
+import shutil
+
+def parse_command_line():
+    parser = argparse.ArgumentParser()
+    parser.add_argument('-i', '--infile', required=True, help='Molecule file.')
+    parser.add_argument('--iformat', help='Input format.')
+    parser.add_argument('--fastsearch-index', dest="fastsearch_index", 
+        required=True, help='Path to the openbabel fastsearch index.')
+    parser.add_argument('-o', '--outfile', required=True, help='Path to the output file.')
+    parser.add_argument('--oformat', 
+        default='smi', help='Output file format')
+    parser.add_argument("--max-candidates", dest="max_candidates", type=int,
+                    default=4000, help="The maximum number of candidates.")
+    parser.add_argument('-p', '--processors', type=int, 
+        default=multiprocessing.cpu_count())
+    return parser.parse_args()
+
+results = list()
+def mp_callback(res):
+    results.append(res)
+
+def mp_helper( query, args ):
+    """
+        Helper function for multiprocessing.
+        That function is a wrapper around the following command:
+        obabel file.fs -s"smarts" -Ooutfile.smi -al 999999999
+    """
+
+    if args.oformat == 'names':
+        opts = '-osmi -xt'
+    else:
+        opts = '-o%s' % args.oformat
+
+    tmp = tempfile.NamedTemporaryFile(delete=False)
+    cmd = 'obabel -ifs %s -O %s %s -s%s -al %s' % (args.fastsearch_index, tmp.name, opts, query, args.max_candidates)
+
+    child = subprocess.Popen(cmd.split(),
+        stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+
+    stdout, stderr = child.communicate()
+    return_code = child.returncode
+
+    if return_code:
+        sys.stdout.write(stdout)
+        sys.stderr.write(stderr)
+        sys.stderr.write("Return error code %i from command:\n" % return_code)
+        sys.stderr.write("%s\n" % cmd)
+    else:
+        sys.stdout.write(stdout)
+        sys.stdout.write(stderr)
+    return (tmp.name, query)
+
+
+def get_smiles_or_smarts( args ):
+    """
+    Wrapper to retrieve a striped SMILES or SMARTS string from different input formats.
+    """
+    if args.iformat in ['smi', 'text', 'tabular']:
+        with open( args.infile ) as text_file:
+            for line in text_file:
+                yield line.split('\t')[0].strip()
+    else:
+        # inchi or sdf files
+        for mol in pybel.readfile( args.iformat, args.infile ):
+            yield mol.write('smiles').split('\t')[0]
+
+def substructure_search( args ):
+
+    pool = multiprocessing.Pool( args.processors )
+    for query in get_smiles_or_smarts( args ):
+        pool.apply_async(mp_helper, args=(query, args), callback=mp_callback)
+        #mp_callback( mp_helper(query, args) )
+    pool.close()
+    pool.join()
+
+    if args.oformat == 'names':
+        out_handle = open( args.outfile, 'w' )
+        for result_file, query in results:
+            with open(result_file) as res_handle:
+                for line in res_handle:
+                    out_handle.write('%s\t%s\n' % ( line.strip(), query ))
+            os.remove( result_file )
+        out_handle.close()
+    else:
+        out_handle = open( args.outfile, 'wb' )
+        for result_file, query in results:
+            res_handle = open(result_file,'rb')
+            shutil.copyfileobj( res_handle, out_handle )
+            res_handle.close()
+            os.remove( result_file )
+        out_handle.close()
+
+
+def __main__():
+    """
+        Multiprocessing Open Babel Substructure Search.
+    """
+    args = parse_command_line()
+    substructure_search( args )
+
+if __name__ == "__main__" :
+    __main__()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/2_mol.dat	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,2 @@
+CC(=O)OC1=CC=CC=C1C(=O)[O-]
+CC(=O)OC1=CC=CC=C1C(=O)[O-]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/2_mol.smi	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,2 @@
+CC(=O)OC1=CC=CC=C1C(=O)[O-]
+CC(=O)OC1=CC=CC=C1C(=O)[O-]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/3_mol.smi	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,3 @@
+CC(=O)OC1=CC=CC=C1C(=O)[O-]
+CC(=O)OC1=CC=CC=C1C(=O)[O-]
+C
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/8_mol.smi	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,8 @@
+C1NC2=CC(=C(C=C2S(=O)(=O)N1)S(=O)(=O)N)Cl
+C1=COC(=C1)CNC2=CC(=C(C=C2C(=O)O)S(=O)(=O)N)Cl
+CO[C@H]1[C@@H](C[C@@H]2CN3CCC4=C([C@H]3C[C@@H]2[C@@H]1C(=O)OC)NC5=C4C=CC(=C5)OC)OC(=O)C6=CC(=C(C(=C6)OC)OC)OC
+CO[C@H]1[C@@H](C[C@@H]2CN3CCC4=C([C@H]3C[C@@H]2[C@@H]1C(=O)OC)NC5=C4C=CC(=C5)OC)OC(=O)C6=CC(=C(C(=C6)OC)OC)OC.C1NC2=CC(=C(C=C2S(=O)(=O)N1)S(=O)(=O)N)Cl
+CCC1(N=C2C=C3C(=NC4=CC=CC=C4N3C5=CC=CC=C5)C=C2N1C6=CC=CC=C6)CC
+CCC1(N=C2C=C3C(=NC4=CC=CC=C4N3C5=CC=CC=C5)C=C2N1C6=CC=CC=C6)C
+CC(=O)OC1=CC=CC=C1C(=O)[O-]
+CC(=O)OC1=CC=CC=C1C(=O)[O-]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/CID2244_with_spectrophore.sdf	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,193 @@
+2244
+ OpenBabel07101216402D
+
+ 21 21  0  0  0  0  0  0  0  0999 V2000
+    3.7320   -0.0600    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301    1.4400    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981    1.4400    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    2.8660   -1.5600    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -0.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981   -1.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -2.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301   -1.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641    0.9400    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.8660   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.0000   -0.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    4.0611   -1.8700    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.8671   -0.2500    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -2.6800    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.8671   -1.8700    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    2.3100    0.4769    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    1.4631    0.2500    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    1.6900   -0.5969    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301    2.0600    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+  1  5  1  0  0  0  0
+  1 12  1  0  0  0  0
+  2 11  1  0  0  0  0
+  2 21  1  0  0  0  0
+  3 11  2  0  0  0  0
+  4 12  2  0  0  0  0
+  5  6  1  0  0  0  0
+  5  7  2  0  0  0  0
+  6  8  2  0  0  0  0
+  6 11  1  0  0  0  0
+  7  9  1  0  0  0  0
+  7 14  1  0  0  0  0
+  8 10  1  0  0  0  0
+  8 15  1  0  0  0  0
+  9 10  2  0  0  0  0
+  9 16  1  0  0  0  0
+ 10 17  1  0  0  0  0
+ 12 13  1  0  0  0  0
+ 13 18  1  0  0  0  0
+ 13 19  1  0  0  0  0
+ 13 20  1  0  0  0  0
+M  END
+>  <PUBCHEM_COMPOUND_CID>
+2244
+
+>  <PUBCHEM_COMPOUND_CANONICALIZED>
+1
+
+>  <PUBCHEM_CACTVS_COMPLEXITY>
+212
+
+>  <PUBCHEM_CACTVS_HBOND_ACCEPTOR>
+4
+
+>  <PUBCHEM_CACTVS_HBOND_DONOR>
+1
+
+>  <PUBCHEM_CACTVS_ROTATABLE_BOND>
+3
+
+>  <PUBCHEM_CACTVS_SUBSKEYS>
+AAADccBwOAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAABAAAAGgAACAAADASAmAAyDoAABgCIAiDSCAACCAAkIAAIiAEGCMgMJzaENRqCe2Cl4BEIuYeIyCCOAAAAAAAIAAAAAAAAABAAAAAAAAAAAA==
+
+>  <PUBCHEM_IUPAC_OPENEYE_NAME>
+2-acetoxybenzoic acid
+
+>  <PUBCHEM_IUPAC_CAS_NAME>
+2-acetyloxybenzoic acid
+
+>  <PUBCHEM_IUPAC_NAME>
+2-acetyloxybenzoic acid
+
+>  <PUBCHEM_IUPAC_SYSTEMATIC_NAME>
+2-acetyloxybenzoic acid
+
+>  <PUBCHEM_IUPAC_TRADITIONAL_NAME>
+2-acetoxybenzoic acid
+
+>  <PUBCHEM_IUPAC_INCHI>
+InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2-5H,1H3,(H,11,12)
+
+>  <PUBCHEM_IUPAC_INCHIKEY>
+BSYNRYMUTXBXSQ-UHFFFAOYSA-N
+
+>  <PUBCHEM_XLOGP3>
+1.2
+
+>  <PUBCHEM_EXACT_MASS>
+180.042259
+
+>  <PUBCHEM_MOLECULAR_FORMULA>
+C9H8O4
+
+>  <PUBCHEM_MOLECULAR_WEIGHT>
+180.15742
+
+>  <PUBCHEM_OPENEYE_CAN_SMILES>
+CC(=O)OC1=CC=CC=C1C(=O)O
+
+>  <PUBCHEM_OPENEYE_ISO_SMILES>
+CC(=O)OC1=CC=CC=C1C(=O)O
+
+>  <PUBCHEM_CACTVS_TPSA>
+63.6
+
+>  <PUBCHEM_MONOISOTOPIC_WEIGHT>
+180.042259
+
+>  <PUBCHEM_TOTAL_CHARGE>
+0
+
+>  <PUBCHEM_HEAVY_ATOM_COUNT>
+13
+
+>  <PUBCHEM_ATOM_DEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_ATOM_UDEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_BOND_DEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_BOND_UDEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_ISOTOPIC_ATOM_COUNT>
+0
+
+>  <PUBCHEM_COMPONENT_COUNT>
+1
+
+>  <PUBCHEM_CACTVS_TAUTO_COUNT>
+1
+
+>  <PUBCHEM_COORDINATE_TYPE>
+1
+5
+255
+
+>  <PUBCHEM_BONDANNOTATIONS>
+5  6  8
+5  7  8
+6  8  8
+7  9  8
+8  10  8
+9  10  8
+
+>  <Hydrogen-bond donors>
+1
+
+>  <InChI key>
+BSYNRYMUTXBXSQ-UHFFFAOYSA-N
+
+>  <logP>
+1.3101
+
+>  <Polar surface area>
+63.6
+
+>  <Number of heavy atoms>
+13
+
+>  <Molecular weight>
+180.15742
+
+>  <InChI>
+InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2-5H,1H3,(H,11,12)
+
+>  <Spectrophores(TM)>
+-1.454, -1.106, -1.162, 0.285, 0.369, 1.008, 0.144, -0.956, 0.133, 0.883, 1.828, 0.029, -1.312, -1.424, -1.287, -0.644, 0.59, 0.746, -0.127, 0.535, 0.368, 0.93, 1.721, -0.097, -1.591, -0.888, -1.332, 0.013, 0.889, 0.249, -0.343, -0.346, -0.047, 1.471, 1.595, 0.329, -1.101, -1.186, 0.953, 0.953, -0.644, -0.653, -1.136, 1.547, 0.533, -0.262, -0.274, 1.27
+
+>  <Number of rings>
+1
+
+>  <Canonical SMILES>
+CC(=O)Oc1ccccc1C(=O)O
+
+>  <Molecular refractivity>
+44.9003
+
+>  <Hydrogen-bond acceptors>
+4
+
+>  <Rotatable bonds>
+3
+
+$$$$
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/CID_2244.can	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,1 @@
+CC(=O)Oc1ccccc1C(=O)O	2244
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/CID_2244.inchi	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,1 @@
+InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2-5H,1H3,(H,11,12)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/CID_2244.sdf	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,155 @@
+2244
+  -OEChem-05151212332D
+
+ 21 21  0     0  0  0  0  0  0999 V2000
+    3.7320   -0.0600    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301    1.4400    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981    1.4400    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    2.8660   -1.5600    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -0.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981   -1.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -2.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301   -1.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641    0.9400    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.8660   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.0000   -0.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    4.0611   -1.8700    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.8671   -0.2500    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -2.6800    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.8671   -1.8700    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    2.3100    0.4769    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    1.4631    0.2500    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    1.6900   -0.5969    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301    2.0600    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+  1  5  1  0  0  0  0
+  1 12  1  0  0  0  0
+  2 11  1  0  0  0  0
+  2 21  1  0  0  0  0
+  3 11  2  0  0  0  0
+  4 12  2  0  0  0  0
+  5  6  1  0  0  0  0
+  5  7  2  0  0  0  0
+  6  8  2  0  0  0  0
+  6 11  1  0  0  0  0
+  7  9  1  0  0  0  0
+  7 14  1  0  0  0  0
+  8 10  1  0  0  0  0
+  8 15  1  0  0  0  0
+  9 10  2  0  0  0  0
+  9 16  1  0  0  0  0
+ 10 17  1  0  0  0  0
+ 12 13  1  0  0  0  0
+ 13 18  1  0  0  0  0
+ 13 19  1  0  0  0  0
+ 13 20  1  0  0  0  0
+M  END
+> <PUBCHEM_COMPOUND_CID>
+2244
+
+> <PUBCHEM_COMPOUND_CANONICALIZED>
+1
+
+> <PUBCHEM_CACTVS_COMPLEXITY>
+212
+
+> <PUBCHEM_CACTVS_HBOND_ACCEPTOR>
+4
+
+> <PUBCHEM_CACTVS_HBOND_DONOR>
+1
+
+> <PUBCHEM_CACTVS_ROTATABLE_BOND>
+3
+
+> <PUBCHEM_CACTVS_SUBSKEYS>
+AAADccBwOAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAABAAAAGgAACAAADASAmAAyDoAABgCIAiDSCAACCAAkIAAIiAEGCMgMJzaENRqCe2Cl4BEIuYeIyCCOAAAAAAAIAAAAAAAAABAAAAAAAAAAAA==
+
+> <PUBCHEM_IUPAC_OPENEYE_NAME>
+2-acetoxybenzoic acid
+
+> <PUBCHEM_IUPAC_CAS_NAME>
+2-acetyloxybenzoic acid
+
+> <PUBCHEM_IUPAC_NAME>
+2-acetyloxybenzoic acid
+
+> <PUBCHEM_IUPAC_SYSTEMATIC_NAME>
+2-acetyloxybenzoic acid
+
+> <PUBCHEM_IUPAC_TRADITIONAL_NAME>
+2-acetoxybenzoic acid
+
+> <PUBCHEM_IUPAC_INCHI>
+InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2-5H,1H3,(H,11,12)
+
+> <PUBCHEM_IUPAC_INCHIKEY>
+BSYNRYMUTXBXSQ-UHFFFAOYSA-N
+
+> <PUBCHEM_XLOGP3>
+1.2
+
+> <PUBCHEM_EXACT_MASS>
+180.042259
+
+> <PUBCHEM_MOLECULAR_FORMULA>
+C9H8O4
+
+> <PUBCHEM_MOLECULAR_WEIGHT>
+180.15742
+
+> <PUBCHEM_OPENEYE_CAN_SMILES>
+CC(=O)OC1=CC=CC=C1C(=O)O
+
+> <PUBCHEM_OPENEYE_ISO_SMILES>
+CC(=O)OC1=CC=CC=C1C(=O)O
+
+> <PUBCHEM_CACTVS_TPSA>
+63.6
+
+> <PUBCHEM_MONOISOTOPIC_WEIGHT>
+180.042259
+
+> <PUBCHEM_TOTAL_CHARGE>
+0
+
+> <PUBCHEM_HEAVY_ATOM_COUNT>
+13
+
+> <PUBCHEM_ATOM_DEF_STEREO_COUNT>
+0
+
+> <PUBCHEM_ATOM_UDEF_STEREO_COUNT>
+0
+
+> <PUBCHEM_BOND_DEF_STEREO_COUNT>
+0
+
+> <PUBCHEM_BOND_UDEF_STEREO_COUNT>
+0
+
+> <PUBCHEM_ISOTOPIC_ATOM_COUNT>
+0
+
+> <PUBCHEM_COMPONENT_COUNT>
+1
+
+> <PUBCHEM_CACTVS_TAUTO_COUNT>
+1
+
+> <PUBCHEM_COORDINATE_TYPE>
+1
+5
+255
+
+> <PUBCHEM_BONDANNOTATIONS>
+5  6  8
+5  7  8
+6  8  8
+7  9  8
+8  10  8
+9  10  8
+
+$$$$
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/CID_2244.smi	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,1 @@
+O(c1c(cccc1)C(=O)O)C(=O)C	2244
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/CID_2244_FP2.fps	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,7 @@
+#FPS1
+#num_bits=1021
+#type=OpenBabel-FP2/1
+#software=OpenBabel/2.3.1
+#source=CID_2244.sdf
+#date=2012-05-15T16:40:38
+00000010004000c00000020000030000010000000008000000000080000000000400400000000010200a020800000000000042000000000000800002000002000c200800010001010000000002808002208000400000000040080000000100000008000000000002004002000010000000020100080100200808000000000004	2244
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/CID_2244_FP3.fps	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,7 @@
+#FPS1
+#num_bits=55
+#type=OpenBabel-FP3/1
+#software=OpenBabel/2.3.1
+#source=CID_2244.sdf
+#date=2012-05-15T16:59:15
+0400000c50b007	2244
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/CID_2244_FP4.fps	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,7 @@
+#FPS1
+#num_bits=307
+#type=OpenBabel-FP4/1
+#software=OpenBabel/2.3.1
+#source=CID_2244.sdf
+#date=2012-05-15T16:59:22
+010000000000000000009800000000004001000000000000000000000000000000000240402801	2244
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/CID_2244_addh.can	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,1 @@
+CC(=O)Oc1ccccc1C(=O)[O-]	2244
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/CID_2244_maccs.fps	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,7 @@
+#FPS1
+#num_bits=166
+#type=OpenBabel-MACCS/2
+#software=OpenBabel/2.3.1
+#source=CID_2244.sdf
+#date=2012-05-15T17:00:39
+0000000000000000000000010000016480cca2d21e	2244
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/CID_3033.sdf	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,271 @@
+3033
+  -OEChem-08231107463D
+
+ 30 31  0     0  0  0  0  0  0999 V2000
+    1.9541    1.1500   -2.5078 Cl  0  0  0  0  0  0  0  0  0  0  0  0
+    1.1377   -1.6392    2.1136 Cl  0  0  0  0  0  0  0  0  0  0  0  0
+   -3.2620   -2.9284   -1.0647 O   0  0  0  0  0  0  0  0  0  0  0  0
+   -2.7906   -1.9108    0.9092 O   0  0  0  0  0  0  0  0  0  0  0  0
+    0.2679   -0.2051   -0.3990 N   0  0  0  0  0  0  0  0  0  0  0  0
+   -2.0640    0.5139   -0.3769 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -0.7313    0.7178   -0.0192 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -2.4761   -0.6830   -1.1703 C   0  0  0  0  0  0  0  0  0  0  0  0
+    1.6571   -0.2482   -0.1795 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -3.0382    1.4350    0.0081 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -0.3728    1.8429    0.7234 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -2.6797    2.5600    0.7506 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -1.3470    2.7640    1.1083 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.5353    0.3477   -1.0918 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.1740   -0.8865    0.9534 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -2.8480   -1.8749   -0.3123 C   0  0  0  0  0  0  0  0  0  0  0  0
+    3.9124    0.3058   -0.8739 C   0  0  0  0  0  0  0  0  0  0  0  0
+    3.5511   -0.9285    1.1713 C   0  0  0  0  0  0  0  0  0  0  0  0
+    4.4203   -0.3324    0.2576 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -1.7086   -0.9792   -1.8930 H   0  0  0  0  0  0  0  0  0  0  0  0
+   -3.3614   -0.4266   -1.7676 H   0  0  0  0  0  0  0  0  0  0  0  0
+   -0.0861   -1.1146   -0.6780 H   0  0  0  0  0  0  0  0  0  0  0  0
+   -4.0812    1.2885   -0.2604 H   0  0  0  0  0  0  0  0  0  0  0  0
+    0.6569    2.0278    1.0167 H   0  0  0  0  0  0  0  0  0  0  0  0
+   -3.4382    3.2769    1.0511 H   0  0  0  0  0  0  0  0  0  0  0  0
+   -1.0683    3.6399    1.6868 H   0  0  0  0  0  0  0  0  0  0  0  0
+    4.6037    0.7654   -1.5758 H   0  0  0  0  0  0  0  0  0  0  0  0
+    3.9635   -1.4215    2.0480 H   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4925   -0.3651    0.4274 H   0  0  0  0  0  0  0  0  0  0  0  0
+   -3.5025   -3.7011   -0.5102 H   0  0  0  0  0  0  0  0  0  0  0  0
+  1 14  1  0  0  0  0
+  2 15  1  0  0  0  0
+  3 16  1  0  0  0  0
+  3 30  1  0  0  0  0
+  4 16  2  0  0  0  0
+  5  7  1  0  0  0  0
+  5  9  1  0  0  0  0
+  5 22  1  0  0  0  0
+  6  7  1  0  0  0  0
+  6  8  1  0  0  0  0
+  6 10  2  0  0  0  0
+  7 11  2  0  0  0  0
+  8 16  1  0  0  0  0
+  8 20  1  0  0  0  0
+  8 21  1  0  0  0  0
+  9 14  2  0  0  0  0
+  9 15  1  0  0  0  0
+ 10 12  1  0  0  0  0
+ 10 23  1  0  0  0  0
+ 11 13  1  0  0  0  0
+ 11 24  1  0  0  0  0
+ 12 13  2  0  0  0  0
+ 12 25  1  0  0  0  0
+ 13 26  1  0  0  0  0
+ 14 17  1  0  0  0  0
+ 15 18  2  0  0  0  0
+ 17 19  2  0  0  0  0
+ 17 27  1  0  0  0  0
+ 18 19  1  0  0  0  0
+ 18 28  1  0  0  0  0
+ 19 29  1  0  0  0  0
+M  END
+> <PUBCHEM_COMPOUND_CID>
+3033
+
+> <PUBCHEM_CONFORMER_RMSD>
+0.6
+
+> <PUBCHEM_CONFORMER_DIVERSEORDER>
+1
+20
+18
+39
+29
+42
+38
+35
+30
+25
+33
+28
+32
+36
+26
+24
+40
+11
+27
+37
+7
+41
+10
+19
+43
+8
+6
+16
+44
+23
+34
+14
+15
+31
+9
+13
+17
+21
+22
+5
+12
+2
+3
+4
+
+> <PUBCHEM_MMFF94_PARTIAL_CHARGES>
+28
+1 -0.18
+10 -0.15
+11 -0.15
+12 -0.15
+13 -0.15
+14 0.18
+15 0.18
+16 0.66
+17 -0.15
+18 -0.15
+19 -0.15
+2 -0.18
+22 0.4
+23 0.15
+24 0.15
+25 0.15
+26 0.15
+27 0.15
+28 0.15
+29 0.15
+3 -0.65
+30 0.5
+4 -0.57
+5 -0.6
+6 -0.14
+7 0.1
+8 0.2
+9 0.1
+
+> <PUBCHEM_EFFECTIVE_ROTOR_COUNT>
+4
+
+> <PUBCHEM_PHARMACOPHORE_FEATURES>
+7
+1 3 acceptor
+1 4 acceptor
+1 5 cation
+1 5 donor
+3 3 4 16 anion
+6 6 7 10 11 12 13 rings
+6 9 14 15 17 18 19 rings
+
+> <PUBCHEM_HEAVY_ATOM_COUNT>
+19
+
+> <PUBCHEM_ATOM_DEF_STEREO_COUNT>
+0
+
+> <PUBCHEM_ATOM_UDEF_STEREO_COUNT>
+0
+
+> <PUBCHEM_BOND_DEF_STEREO_COUNT>
+0
+
+> <PUBCHEM_BOND_UDEF_STEREO_COUNT>
+0
+
+> <PUBCHEM_ISOTOPIC_ATOM_COUNT>
+0
+
+> <PUBCHEM_COMPONENT_COUNT>
+1
+
+> <PUBCHEM_CACTVS_TAUTO_COUNT>
+1
+
+> <PUBCHEM_CONFORMER_ID>
+00000BD900000001
+
+> <PUBCHEM_MMFF94_ENERGY>
+65.6362
+
+> <PUBCHEM_FEATURE_SELFOVERLAP>
+35.578
+
+> <PUBCHEM_SHAPE_FINGERPRINT>
+10366900 7 17386020514759110480
+114674 6 16903282898360328323
+11578080 2 17913245089295617604
+11582403 64 14544541357940910356
+11640471 11 18127963303313961600
+12236239 1 18272088352834916308
+12363563 72 18042978579496277287
+12553582 1 18190740839094073615
+12596599 1 18201439237582433270
+12788726 201 18410285909464206003
+13032168 30 18201440238019390274
+13140716 1 18187086113919468457
+13538477 17 18339642338307470464
+13583140 156 17241914119188522922
+13764800 53 17895191172601517065
+13965767 371 17259888045752176376
+14115302 16 18342181093776810149
+14787075 74 17907866106787333628
+15279307 12 18198622322777022915
+15375462 189 18270674264943931347
+15669948 3 18336550511731321249
+16752209 62 18336841852664817743
+16945 1 18188484791351783177
+19433438 48 18059583550169763352
+200 152 18130792217719576158
+20645476 183 18270115859187436189
+20905425 154 17970632883131290416
+21452121 199 18046637711133085653
+21639500 275 16988270998321974524
+22112679 90 18342446063036096292
+23419403 2 17835564502519425292
+23493267 7 18115023138028600728
+23526113 38 16660924516543134566
+23557571 272 17821721762863303772
+23559900 14 17896315990920094510
+23598288 3 18411412925846384519
+23598291 2 18059009613384180254
+238 59 16343141308025475526
+4340502 62 17273677940604857177
+6049 1 17240202131864233360
+6992083 37 18058168521433072460
+7615 1 18201433675414973908
+77492 1 18272651289913926852
+81228 2 17968373550240022809
+9709674 26 17896035610527288590
+
+> <PUBCHEM_SHAPE_MULTIPOLES>
+378.03
+7.01
+2.75
+1.77
+0.78
+1.58
+0.3
+0.41
+1.94
+-1.08
+1.9
+-8.69
+11.04
+2.58
+
+> <PUBCHEM_SHAPE_SELFOVERLAP>
+790.335
+
+> <PUBCHEM_SHAPE_VOLUME>
+214.7
+
+> <PUBCHEM_COORDINATE_TYPE>
+2
+5
+255
+
+$$$$
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/CO.smarts	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,1 @@
+CO
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/change_title_on_CID_3033.sdf	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,270 @@
+214.7
+ OpenBabel06291213403D
+
+ 30 31  0  0  0  0  0  0  0  0999 V2000
+    1.9541    1.1500   -2.5078 Cl  0  0  0  0  0  0  0  0  0  0  0  0
+    1.1377   -1.6392    2.1136 Cl  0  0  0  0  0  0  0  0  0  0  0  0
+   -3.2620   -2.9284   -1.0647 O   0  0  0  0  0  0  0  0  0  0  0  0
+   -2.7906   -1.9108    0.9092 O   0  0  0  0  0  0  0  0  0  0  0  0
+    0.2679   -0.2051   -0.3990 N   0  0  0  0  0  0  0  0  0  0  0  0
+   -2.0640    0.5139   -0.3769 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -0.7313    0.7178   -0.0192 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -2.4761   -0.6830   -1.1703 C   0  0  0  0  0  0  0  0  0  0  0  0
+    1.6571   -0.2482   -0.1795 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -3.0382    1.4350    0.0081 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -0.3728    1.8429    0.7234 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -2.6797    2.5600    0.7506 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -1.3470    2.7640    1.1083 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.5353    0.3477   -1.0918 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.1740   -0.8865    0.9534 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -2.8480   -1.8749   -0.3123 C   0  0  0  0  0  0  0  0  0  0  0  0
+    3.9124    0.3058   -0.8739 C   0  0  0  0  0  0  0  0  0  0  0  0
+    3.5511   -0.9285    1.1713 C   0  0  0  0  0  0  0  0  0  0  0  0
+    4.4203   -0.3324    0.2576 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -1.7086   -0.9792   -1.8930 H   0  0  0  0  0  0  0  0  0  0  0  0
+   -3.3614   -0.4266   -1.7676 H   0  0  0  0  0  0  0  0  0  0  0  0
+   -0.0861   -1.1146   -0.6780 H   0  0  0  0  0  0  0  0  0  0  0  0
+   -4.0812    1.2885   -0.2604 H   0  0  0  0  0  0  0  0  0  0  0  0
+    0.6569    2.0278    1.0167 H   0  0  0  0  0  0  0  0  0  0  0  0
+   -3.4382    3.2769    1.0511 H   0  0  0  0  0  0  0  0  0  0  0  0
+   -1.0683    3.6399    1.6868 H   0  0  0  0  0  0  0  0  0  0  0  0
+    4.6037    0.7654   -1.5758 H   0  0  0  0  0  0  0  0  0  0  0  0
+    3.9635   -1.4215    2.0480 H   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4925   -0.3651    0.4274 H   0  0  0  0  0  0  0  0  0  0  0  0
+   -3.5025   -3.7011   -0.5102 H   0  0  0  0  0  0  0  0  0  0  0  0
+  1 14  1  0  0  0  0
+  2 15  1  0  0  0  0
+  3 16  1  0  0  0  0
+  3 30  1  0  0  0  0
+  4 16  2  0  0  0  0
+  5  7  1  0  0  0  0
+  5  9  1  0  0  0  0
+  5 22  1  0  0  0  0
+  6  7  1  0  0  0  0
+  6  8  1  0  0  0  0
+  6 10  2  0  0  0  0
+  7 11  2  0  0  0  0
+  8 16  1  0  0  0  0
+  8 20  1  0  0  0  0
+  8 21  1  0  0  0  0
+  9 14  2  0  0  0  0
+  9 15  1  0  0  0  0
+ 10 12  1  0  0  0  0
+ 10 23  1  0  0  0  0
+ 11 13  1  0  0  0  0
+ 11 24  1  0  0  0  0
+ 12 13  2  0  0  0  0
+ 12 25  1  0  0  0  0
+ 13 26  1  0  0  0  0
+ 14 17  1  0  0  0  0
+ 15 18  2  0  0  0  0
+ 17 19  2  0  0  0  0
+ 17 27  1  0  0  0  0
+ 18 19  1  0  0  0  0
+ 18 28  1  0  0  0  0
+ 19 29  1  0  0  0  0
+M  END
+>  <PUBCHEM_COMPOUND_CID>
+3033
+
+>  <PUBCHEM_CONFORMER_RMSD>
+0.6
+
+>  <PUBCHEM_CONFORMER_DIVERSEORDER>
+1
+20
+18
+39
+29
+42
+38
+35
+30
+25
+33
+28
+32
+36
+26
+24
+40
+11
+27
+37
+7
+41
+10
+19
+43
+8
+6
+16
+44
+23
+34
+14
+15
+31
+9
+13
+17
+21
+22
+5
+12
+2
+3
+4
+
+>  <PUBCHEM_MMFF94_PARTIAL_CHARGES>
+28
+1 -0.18
+10 -0.15
+11 -0.15
+12 -0.15
+13 -0.15
+14 0.18
+15 0.18
+16 0.66
+17 -0.15
+18 -0.15
+19 -0.15
+2 -0.18
+22 0.4
+23 0.15
+24 0.15
+25 0.15
+26 0.15
+27 0.15
+28 0.15
+29 0.15
+3 -0.65
+30 0.5
+4 -0.57
+5 -0.6
+6 -0.14
+7 0.1
+8 0.2
+9 0.1
+
+>  <PUBCHEM_EFFECTIVE_ROTOR_COUNT>
+4
+
+>  <PUBCHEM_PHARMACOPHORE_FEATURES>
+7
+1 3 acceptor
+1 4 acceptor
+1 5 cation
+1 5 donor
+3 3 4 16 anion
+6 6 7 10 11 12 13 rings
+6 9 14 15 17 18 19 rings
+
+>  <PUBCHEM_HEAVY_ATOM_COUNT>
+19
+
+>  <PUBCHEM_ATOM_DEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_ATOM_UDEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_BOND_DEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_BOND_UDEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_ISOTOPIC_ATOM_COUNT>
+0
+
+>  <PUBCHEM_COMPONENT_COUNT>
+1
+
+>  <PUBCHEM_CACTVS_TAUTO_COUNT>
+1
+
+>  <PUBCHEM_CONFORMER_ID>
+00000BD900000001
+
+>  <PUBCHEM_MMFF94_ENERGY>
+65.6362
+
+>  <PUBCHEM_FEATURE_SELFOVERLAP>
+35.578
+
+>  <PUBCHEM_SHAPE_FINGERPRINT>
+10366900 7 17386020514759110480
+114674 6 16903282898360328323
+11578080 2 17913245089295617604
+11582403 64 14544541357940910356
+11640471 11 18127963303313961600
+12236239 1 18272088352834916308
+12363563 72 18042978579496277287
+12553582 1 18190740839094073615
+12596599 1 18201439237582433270
+12788726 201 18410285909464206003
+13032168 30 18201440238019390274
+13140716 1 18187086113919468457
+13538477 17 18339642338307470464
+13583140 156 17241914119188522922
+13764800 53 17895191172601517065
+13965767 371 17259888045752176376
+14115302 16 18342181093776810149
+14787075 74 17907866106787333628
+15279307 12 18198622322777022915
+15375462 189 18270674264943931347
+15669948 3 18336550511731321249
+16752209 62 18336841852664817743
+16945 1 18188484791351783177
+19433438 48 18059583550169763352
+200 152 18130792217719576158
+20645476 183 18270115859187436189
+20905425 154 17970632883131290416
+21452121 199 18046637711133085653
+21639500 275 16988270998321974524
+22112679 90 18342446063036096292
+23419403 2 17835564502519425292
+23493267 7 18115023138028600728
+23526113 38 16660924516543134566
+23557571 272 17821721762863303772
+23559900 14 17896315990920094510
+23598288 3 18411412925846384519
+23598291 2 18059009613384180254
+238 59 16343141308025475526
+4340502 62 17273677940604857177
+6049 1 17240202131864233360
+6992083 37 18058168521433072460
+7615 1 18201433675414973908
+77492 1 18272651289913926852
+81228 2 17968373550240022809
+9709674 26 17896035610527288590
+
+>  <PUBCHEM_SHAPE_MULTIPOLES>
+378.03
+7.01
+2.75
+1.77
+0.78
+1.58
+0.3
+0.41
+1.94
+-1.08
+1.9
+-8.69
+11.04
+2.58
+
+>  <PUBCHEM_SHAPE_SELFOVERLAP>
+790.335
+
+>  <PUBCHEM_SHAPE_VOLUME>
+214.7
+
+>  <PUBCHEM_COORDINATE_TYPE>
+2
+5
+255
+
+$$$$
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/filterd_by_name.sdf	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,147 @@
+abc_one
+ OpenBabel03212013422D
+
+ 26 30  0  0  0  0  0  0  0  0999 V2000
+   -8.6396    0.9568    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+   -7.6023    1.5602    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -7.6071    3.0602    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -6.3104    3.8143    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -5.0090    3.0685    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -5.0040    1.5682    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -6.3008    0.8143    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -3.7006    0.8244    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -3.7006   -0.6045    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0
+   -2.4915   -1.3190    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -2.5059   -2.8197    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0
+   -1.2156   -3.5847    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -1.2329   -5.0846    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -2.5404   -5.8196    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+   -3.8308   -5.0547    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -3.8135   -3.5548    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -1.2274   -0.6045    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    0.0000   -1.3190    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    1.2274   -0.6045    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.4732   -1.3190    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0
+    3.7372   -0.6045    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    3.7372    0.8244    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.4732    1.5389    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    1.2274    0.8244    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -1.2274    0.8244    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -2.4915    1.5389    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  7  2  0  0  0  0
+  3  4  2  0  0  0  0
+  4  5  1  0  0  0  0
+  5  6  2  0  0  0  0
+  6  7  1  0  0  0  0
+  6  8  1  0  0  0  0
+  8  9  1  0  0  0  0
+  8 26  2  0  0  0  0
+  9 10  2  0  0  0  0
+ 10 11  1  0  0  0  0
+ 10 17  1  0  0  0  0
+ 11 12  1  0  0  0  0
+ 11 16  1  0  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 16  1  0  0  0  0
+ 17 18  1  0  0  0  0
+ 17 25  2  0  0  0  0
+ 18 19  1  0  0  0  0
+ 19 20  2  0  0  0  0
+ 19 24  1  0  0  0  0
+ 20 21  1  0  0  0  0
+ 21 22  2  0  0  0  0
+ 22 23  1  0  0  0  0
+ 23 24  2  0  0  0  0
+ 24 25  1  0  0  0  0
+ 25 26  1  0  0  0  0
+M  END
+>  <mr_id>
+4358263
+
+>  <SMI>
+Oc1cccc(c1)c2nc(N3CCOCC3)c4oc5ncccc5c4n2
+
+$$$$
+abc_eleven
+ OpenBabel03212013422D
+
+ 32 35  0  0  1  0  0  0  0  0999 V2000
+    7.1381   -2.1568    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    6.0456   -2.6531    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    4.7409   -1.9129    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0
+    3.6552   -2.9294    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.1855   -2.6254    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    1.7138   -1.2033    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.5889    0.0182    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    3.7889    0.0269    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    1.7138    1.2033    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0
+    0.2917    0.7475    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -1.0028    1.5132    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -2.3155    0.7475    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -2.3155   -0.7475    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   -3.3560   -1.3452    0.0000 F   0  0  0  0  0  0  0  0  0  0  0  0
+   -1.0028   -1.5132    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    0.2917   -0.7475    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    4.2542   -4.2907    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    3.6559   -5.3308    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.7448   -4.1226    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    6.7580   -5.2264    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3978   -6.3710    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    8.2231   -4.9012    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0
+    9.2380   -6.0068    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   10.7032   -5.6816    0.0000 C   0  0  2  0  0  0  0  0  0  0  0  0
+   11.0634   -4.5369    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+   11.7181   -6.7872    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   13.1833   -6.4620    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0
+   14.1993   -7.5656    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   15.6630   -7.2376    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   16.1108   -5.8060    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+   15.0949   -4.7024    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+   13.6312   -5.0304    0.0000 C   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 19  2  0  0  0  0
+  3  4  1  0  0  0  0
+  4  5  1  0  0  0  0
+  4 17  2  0  0  0  0
+  5  6  2  0  0  0  0
+  6  7  1  0  0  0  0
+  6 16  1  0  0  0  0
+  7  8  2  0  0  0  0
+  7  9  1  0  0  0  0
+  9 10  1  0  0  0  0
+ 10 11  1  0  0  0  0
+ 10 16  2  0  0  0  0
+ 11 12  2  0  0  0  0
+ 12 13  1  0  0  0  0
+ 13 14  1  0  0  0  0
+ 13 15  2  0  0  0  0
+ 15 16  1  0  0  0  0
+ 17 18  1  0  0  0  0
+ 17 19  1  0  0  0  0
+ 19 20  1  0  0  0  0
+ 20 21  2  0  0  0  0
+ 20 22  1  0  0  0  0
+ 22 23  1  0  0  0  0
+ 23 24  1  0  0  0  0
+ 24 25  1  6  0  0  0
+ 24 26  1  0  0  0  0
+ 26 27  1  0  0  0  0
+ 27 28  1  0  0  0  0
+ 27 32  1  0  0  0  0
+ 28 29  1  0  0  0  0
+ 29 30  1  0  0  0  0
+ 30 31  1  0  0  0  0
+ 31 32  1  0  0  0  0
+M  END
+>  <mr_id>
+4362206
+
+>  <SMI>
+Cc1[nH]c(/C=C/2\C(=O)Nc3ccc(F)cc23)c(C)c1C(=O)NC[C@H](O)CN4CCOCC4
+
+$$$$
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/lib.tabular	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,9 @@
+Hydrogen-bond donors	InChI key	logP	Polar surface area	Number of heavy atoms	Molecular weight	InChI	Spectrophores(TM)	Number of rings	Canonical SMILES	Molecular refractivity	Hydrogen-bond acceptors	Rotatable bonds
+3	JZUFKLXOESDKRF-UHFFFAOYSA-N	2.9774	135.12	17	297.73912	InChI=1S/C7H8ClN3O4S2/c8-4-1-5-7(2-6(4)16(9,12)13)17(14,15)11-3-10-5/h1-2,10-11H,3H2,(H2,9,12,13)	nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, -1.245, -1.245, -0.178, -0.178, -0.178, -0.178, -0.178, -0.178, -0.178, 1.956, 1.956, -0.178, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan	2	Clc1cc2NCNS(=O)(=O)c2cc1S(=O)(=O)N	67.5768	7	1
+3	ZZUFCTLCJUWOSV-UHFFFAOYSA-N	3.7448	131.01	21	330.74414	InChI=1S/C12H11ClN2O5S/c13-9-5-10(15-6-7-2-1-3-20-7)8(12(16)17)4-11(9)21(14,18)19/h1-5,15H,6H2,(H,16,17)(H2,14,18,19)	nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, -2.141, -2.141, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan	2	OC(=O)c1cc(c(cc1NCc1ccco1)Cl)S(=O)(=O)N	75.4644	7	5
+1	QEVHRUUCFGRFIF-MDEJGZGSSA-N	4.109	117.78	44	608.6787	InChI=1S/C33H40N2O9/c1-38-19-7-8-20-21-9-10-35-16-18-13-27(44-32(36)17-11-25(39-2)30(41-4)26(12-17)40-3)31(42-5)28(33(37)43-6)22(18)15-24(35)29(21)34-23(20)14-19/h7-8,11-12,14,18,22,24,27-28,31,34H,9-10,13,15-16H2,1-6H3/t18-,22+,24-,27-,28+,31+/m1/s1	nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan	6	COc1ccc2c(c1)[nH]c1c2CCN2[C@@H]1C[C@H]1[C@@H](C2)C[C@H]([C@@H]([C@H]1C(=O)OC)OC)OC(=O)c1cc(OC)c(c(c1)OC)OC	165.5222	10	10
+4	NJKRHQRIYAWMRO-BQTSRIDJSA-N	7.0864	252.9	61	906.41782	InChI=1S/C33H40N2O9.C7H8ClN3O4S2/c1-38-19-7-8-20-21-9-10-35-16-18-13-27(44-32(36)17-11-25(39-2)30(41-4)26(12-17)40-3)31(42-5)28(33(37)43-6)22(18)15-24(35)29(21)34-23(20)14-19;8-4-1-5-7(2-6(4)16(9,12)13)17(14,15)11-3-10-5/h7-8,11-12,14,18,22,24,27-28,31,34H,9-10,13,15-16H2,1-6H3;1-2,10-11H,3H2,(H2,9,12,13)/t18-,22+,24-,27-,28+,31+;/m1./s1	nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan	8	Clc1cc2NCNS(=O)(=O)c2cc1S(=O)(=O)N.COc1ccc2c(c1)[nH]c1c2CCN2[C@@H]1C[C@H]1[C@@H](C2)C[C@H]([C@@H]([C@H]1C(=O)OC)OC)OC(=O)c1cc(OC)c(c(c1)OC)OC	233.099	17	11
+0	UOOUPHIKFMZJEA-UHFFFAOYSA-N	6.248	33.42	33	430.54354	InChI=1S/C29H26N4/c1-3-29(4-2)31-25-20-27-24(19-28(25)33(29)22-15-9-6-10-16-22)30-23-17-11-12-18-26(23)32(27)21-13-7-5-8-14-21/h5-20H,3-4H2,1-2H3	nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, -2.141, -2.141, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan	6	CCC1(CC)N=c2c(N1c1ccccc1)cc1c(c2)n(c2ccccc2)c2c(n1)cccc2	143.054	3	4
+0	YQCDIJPZZOKCLA-UHFFFAOYSA-N	5.8579	33.42	32	416.51696	InChI=1S/C28H24N4/c1-3-28(2)30-24-19-26-23(18-27(24)32(28)21-14-8-5-9-15-21)29-22-16-10-11-17-25(22)31(26)20-12-6-4-7-13-20/h4-19H,3H2,1-2H3	nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan	6	CCC1(C)N=c2c(N1c1ccccc1)cc1c(c2)n(c2ccccc2)c2c(n1)cccc2	138.247	3	3
+0	BSYNRYMUTXBXSQ-UHFFFAOYSA-M	-0.0246	66.43	13	179.14948	InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2-5H,1H3,(H,11,12)/p-1	nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 2.141, 2.141, -0.428, -0.428, -0.428, -0.428, -0.428, -0.428, -0.428, -0.428, -0.428, -0.428, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan	1	CC(=O)Oc1ccccc1C(=O)[O-]	42.958	4	3
+0	BSYNRYMUTXBXSQ-UHFFFAOYSA-M	-0.0246	66.43	13	179.14948	InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2-5H,1H3,(H,11,12)/p-1	nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 2.141, 2.141, -0.428, -0.428, -0.428, -0.428, -0.428, -0.428, -0.428, -0.428, -0.428, -0.428, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan	1	CC(=O)Oc1ccccc1C(=O)[O-]	42.958	4	3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ligands.sdf	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,348 @@
+C[C@H](NS(C)(=O)=O)c1ccccn1
+  rDOCK(R)          3D
+libRbt.so/2013.1/901 2013/11/27
+ 13 13  0  0  0  0  0  0  0  0999 V2000
+   13.1106    0.7550   23.2143 C   0  0  0  0  0  0
+   12.0087    1.7547   22.8361 C   0  0  0  0  0  0
+   11.4071    1.4261   21.5334 N   0  0  0  0  0  0
+    9.9388    0.8337   21.6338 S   0  0  0  0  0  0
+    9.0411    2.3499   21.9038 C   0  0  0  0  0  0
+    9.3678    0.3273   20.3892 O   0  0  0  0  0  0
+    9.6367    0.0497   22.8298 O   0  0  0  0  0  0
+   12.5588    3.1798   22.7273 C   0  0  0  0  0  0
+   12.8091    3.9103   23.8920 C   0  0  0  0  0  0
+   13.2507    5.2279   23.7909 C   0  0  0  0  0  0
+   13.4398    5.7854   22.5337 C   0  0  0  0  0  0
+   13.1881    4.9943   21.4282 C   0  0  0  0  0  0
+   12.7627    3.7170   21.4945 N   0  0  0  0  0  0
+  2  8  1  0  0  0
+  2  3  1  0  0  0
+  2  1  1  0  0  0
+  3  4  1  0  0  0
+  4  5  1  0  0  0
+  4  6  2  0  0  0
+  4  7  2  0  0  0
+  8  9  2  0  0  0
+  8 13  1  0  0  0
+  9 10  1  0  0  0
+ 10 11  2  0  0  0
+ 11 12  1  0  0  0
+ 12 13  2  0  0  0
+M  END
+$$$$
+C[C@@H](NS(C)(=O)=O)c1ccccn1
+  rDOCK(R)          3D
+libRbt.so/2013.1/901 2013/11/27
+ 13 13  0  0  0  0  0  0  0  0999 V2000
+    6.8559    1.7506   21.3142 C   0  0  0  0  0  0
+    7.4019    0.6872   20.3547 C   0  0  0  0  0  0
+    7.4689    1.2291   18.9518 N   0  0  0  0  0  0
+    6.4062    0.5634   17.8113 S   0  0  0  0  0  0
+    4.8453    0.8765   18.6009 C   0  0  0  0  0  0
+    6.4632    1.4005   16.6345 O   0  0  0  0  0  0
+    6.5887   -0.8668   17.7602 O   0  0  0  0  0  0
+    8.6586   -0.0013   20.8698 C   0  0  0  0  0  0
+    9.8290    0.7331   21.0631 C   0  0  0  0  0  0
+   10.9643    0.0817   21.5388 C   0  0  0  0  0  0
+   10.9072   -1.2804   21.8047 C   0  0  0  0  0  0
+    9.7156   -1.9413   21.5709 C   0  0  0  0  0  0
+    8.6053   -1.3390   21.0982 N   0  0  0  0  0  0
+  2  1  1  0  0  0
+  2  3  1  0  0  0
+  2  8  1  0  0  0
+  3  4  1  0  0  0
+  4  5  1  0  0  0
+  4  6  2  0  0  0
+  4  7  2  0  0  0
+  8  9  2  0  0  0
+  8 13  1  0  0  0
+  9 10  1  0  0  0
+ 10 11  2  0  0  0
+ 11 12  1  0  0  0
+ 12 13  2  0  0  0
+M  END
+$$$$
+FC(F)(F)c1ccccc1
+  rDOCK(R)          3D
+libRbt.so/2013.1/901 2013/11/27
+ 10 10  0  0  0  0  0  0  0  0999 V2000
+    9.6749    1.3998   21.0525 F   0  0  0  0  0  0
+   10.4122    1.5718   22.1856 C   0  0  0  0  0  0
+   10.7385    2.8940   22.2189 F   0  0  0  0  0  0
+    9.5494    1.3747   23.2216 F   0  0  0  0  0  0
+   11.6206    0.6719   22.2638 C   0  0  0  0  0  0
+   12.7782    1.0724   22.9480 C   0  0  0  0  0  0
+   13.8994    0.2427   22.9901 C   0  0  0  0  0  0
+   13.8750   -0.9970   22.3527 C   0  0  0  0  0  0
+   12.7278   -1.4119   21.6796 C   0  0  0  0  0  0
+   11.6049   -0.5838   21.6354 C   0  0  0  0  0  0
+  1  2  1  0  0  0
+  2  3  1  0  0  0
+  2  4  1  0  0  0
+  2  5  1  0  0  0
+  5  6  2  0  0  0
+  5 10  1  0  0  0
+  6  7  1  0  0  0
+  7  8  2  0  0  0
+  8  9  1  0  0  0
+  9 10  2  0  0  0
+M  END
+$$$$
+O=[SH](=O)c1ccccc1
+  rDOCK(R)          3D
+libRbt.so/2013.1/901 2013/11/27
+  9  9  0  0  0  0  0  0  0  0999 V2000
+   13.5834    1.0389   23.2971 O   0  0  0  0  0  0
+   12.4089    1.7539   22.8402 S   0  0  0  0  0  0
+   11.1134    1.5953   23.4682 O   0  0  0  0  0  0
+   12.7957    3.4745   22.8588 C   0  0  0  0  0  0
+   13.0347    4.1328   21.6517 C   0  0  0  0  0  0
+   13.3512    5.4908   21.6741 C   0  0  0  0  0  0
+   13.4284    6.1723   22.8914 C   0  0  0  0  0  0
+   13.1905    5.5006   24.0928 C   0  0  0  0  0  0
+   12.8736    4.1434   24.0815 C   0  0  0  0  0  0
+  1  2  2  0  0  0
+  2  3  2  0  0  0
+  2  4  1  0  0  0
+  4  5  2  0  0  0
+  4  9  1  0  0  0
+  5  6  1  0  0  0
+  6  7  2  0  0  0
+  7  8  1  0  0  0
+  8  9  2  0  0  0
+M  END
+$$$$
+CSCCNC(=O)c1ccccc1
+  rDOCK(R)          3D
+libRbt.so/2013.1/901 2013/11/27
+ 13 13  0  0  0  0  0  0  0  0999 V2000
+    5.5458   -1.4150   18.8612 C   0  0  0  0  0  0
+    5.7667    0.2529   18.1959 S   0  0  0  0  0  0
+    7.4715    0.5847   18.7876 C   0  0  0  0  0  0
+    7.5534    0.7884   20.3036 C   0  0  0  0  0  0
+    8.9454    1.0042   20.7146 N   0  0  0  0  0  0
+    9.6402   -0.1322   20.8514 C   0  0  0  0  0  0
+    9.3233   -1.2490   20.4452 O   0  0  0  0  0  0
+   10.9406   -0.0002   21.5911 C   0  0  0  0  0  0
+   11.2868    1.2512   22.1206 C   0  0  0  0  0  0
+   12.4999    1.4280   22.7900 C   0  0  0  0  0  0
+   13.3773    0.3543   22.9381 C   0  0  0  0  0  0
+   13.0426   -0.8964   22.4196 C   0  0  0  0  0  0
+   11.8294   -1.0724   21.7499 C   0  0  0  0  0  0
+  1  2  1  0  0  0
+  2  3  1  0  0  0
+  3  4  1  0  0  0
+  4  5  1  0  0  0
+  5  6  1  0  0  0
+  6  7  2  0  0  0
+  6  8  1  0  0  0
+  8  9  2  0  0  0
+  8 13  1  0  0  0
+  9 10  1  0  0  0
+ 10 11  2  0  0  0
+ 11 12  1  0  0  0
+ 12 13  2  0  0  0
+M  END
+$$$$
+CCNS(=O)(=O)Cc1cccnc1
+  rDOCK(R)          3D
+libRbt.so/2013.1/901 2013/11/27
+ 13 13  0  0  0  0  0  0  0  0999 V2000
+   13.3598   -1.5609   21.7877 C   0  0  0  0  0  0
+   13.7113   -0.3498   22.6305 C   0  0  0  0  0  0
+   12.7714    0.7692   22.3361 N   0  0  0  0  0  0
+   11.8062    1.1577   23.6906 S   0  0  0  0  0  0
+   10.8599    0.0665   23.8065 O   0  0  0  0  0  0
+   12.7113    1.5035   24.7620 O   0  0  0  0  0  0
+   10.9309    2.6284   23.1295 C   0  0  0  0  0  0
+   11.9375    3.7368   22.9987 C   0  0  0  0  0  0
+   12.7555    3.8614   21.8705 C   0  0  0  0  0  0
+   13.6216    4.9464   21.7613 C   0  0  0  0  0  0
+   13.6489    5.8696   22.7918 C   0  0  0  0  0  0
+   12.8858    5.7762   23.9008 N   0  0  0  0  0  0
+   12.0407    4.7242   23.9742 C   0  0  0  0  0  0
+  1  2  1  0  0  0
+  2  3  1  0  0  0
+  3  4  1  0  0  0
+  4  5  2  0  0  0
+  4  6  2  0  0  0
+  4  7  1  0  0  0
+  7  8  1  0  0  0
+  8  9  2  0  0  0
+  8 13  1  0  0  0
+  9 10  1  0  0  0
+ 10 11  2  0  0  0
+ 11 12  1  0  0  0
+ 12 13  2  0  0  0
+M  END
+$$$$
+CCc1ccccc1
+  rDOCK(R)          3D
+libRbt.so/2013.1/901 2013/11/27
+  8  8  0  0  0  0  0  0  0  0999 V2000
+    9.3165   -1.3968   21.4474 C   0  0  0  0  0  0
+   10.1701   -1.9537   22.5759 C   0  0  0  0  0  0
+   11.4727   -1.2108   22.7284 C   0  0  0  0  0  0
+   11.5710   -0.1198   23.6025 C   0  0  0  0  0  0
+   12.7795    0.5633   23.7497 C   0  0  0  0  0  0
+   13.8989    0.1675   23.0199 C   0  0  0  0  0  0
+   13.8083   -0.9074   22.1374 C   0  0  0  0  0  0
+   12.6006   -1.5917   21.9895 C   0  0  0  0  0  0
+  1  2  1  0  0  0
+  2  3  1  0  0  0
+  3  4  2  0  0  0
+  3  8  1  0  0  0
+  4  5  1  0  0  0
+  5  6  2  0  0  0
+  6  7  1  0  0  0
+  7  8  2  0  0  0
+M  END
+$$$$
+CS(=O)(=O)NCCN1CCCC1
+  rDOCK(R)          3D
+libRbt.so/2013.1/901 2013/11/27
+ 12 12  0  0  0  0  0  0  0  0999 V2000
+    6.8490    0.5139   18.2625 C   0  0  0  0  0  0
+    7.3129    0.1623   19.9428 S   0  0  0  0  0  0
+    7.4343    1.3973   20.6804 O   0  0  0  0  0  0
+    6.5548   -0.9612   20.4458 O   0  0  0  0  0  0
+    8.9263   -0.3881   19.7641 N   0  0  0  0  0  0
+    9.5060   -0.7657   21.0831 C   0  0  0  0  0  0
+   10.8140   -0.0093   21.3638 C   0  0  0  0  0  0
+   11.5742   -0.6154   22.5359 N   0  0  0  0  0  0
+   11.4738    0.2167   23.7970 C   0  0  0  0  0  0
+   12.6714    1.1335   23.7058 C   0  0  0  0  0  0
+   13.7645    0.2387   23.1560 C   0  0  0  0  0  0
+   13.0648   -0.8014   22.2945 C   0  0  0  0  0  0
+  1  2  1  0  0  0
+  2  3  2  0  0  0
+  2  4  2  0  0  0
+  2  5  1  0  0  0
+  5  6  1  0  0  0
+  6  7  1  0  0  0
+  7  8  1  0  0  0
+  8  9  1  0  0  0
+  8 12  1  0  0  0
+  9 10  1  0  0  0
+ 10 11  1  0  0  0
+ 11 12  1  0  0  0
+M  END
+$$$$
+C=Cc1ccccc1
+  rDOCK(R)          3D
+libRbt.so/2013.1/901 2013/11/27
+  8  8  0  0  0  0  0  0  0  0999 V2000
+    3.0012    2.5994   19.2746 C   0  0  0  0  0  0
+    3.4784    1.3846   19.5760 C   0  0  0  0  0  0
+    4.7459    0.8376   19.0724 C   0  0  0  0  0  0
+    5.0977   -0.4790   19.4008 C   0  0  0  0  0  0
+    6.2949   -1.0353   18.9390 C   0  0  0  0  0  0
+    7.1469   -0.2825   18.1324 C   0  0  0  0  0  0
+    6.7985    1.0178   17.7793 C   0  0  0  0  0  0
+    5.6004    1.5702   18.2385 C   0  0  0  0  0  0
+  1  2  2  0  0  0
+  2  3  1  0  0  0
+  3  4  2  0  0  0
+  3  8  1  0  0  0
+  4  5  1  0  0  0
+  5  6  2  0  0  0
+  6  7  1  0  0  0
+  7  8  2  0  0  0
+M  END
+$$$$
+CC(C)(C)c1ccccc1
+  rDOCK(R)          3D
+libRbt.so/2013.1/901 2013/11/27
+ 10 10  0  0  0  0  0  0  0  0999 V2000
+   13.4848    4.7599   24.0453 C   0  0  0  0  0  0
+   12.5126    4.3820   22.9047 C   0  0  0  0  0  0
+   11.1564    5.0474   23.2199 C   0  0  0  0  0  0
+   13.0811    4.9891   21.6031 C   0  0  0  0  0  0
+   12.3310    2.8640   22.7263 C   0  0  0  0  0  0
+   13.0824    1.9208   23.4483 C   0  0  0  0  0  0
+   12.9272    0.5461   23.2348 C   0  0  0  0  0  0
+   12.0121    0.0832   22.2967 C   0  0  0  0  0  0
+   11.2426    0.9922   21.5790 C   0  0  0  0  0  0
+   11.3986    2.3657   21.7948 C   0  0  0  0  0  0
+  1  2  1  0  0  0
+  2  3  1  0  0  0
+  2  4  1  0  0  0
+  2  5  1  0  0  0
+  5  6  2  0  0  0
+  5 10  1  0  0  0
+  6  7  1  0  0  0
+  7  8  2  0  0  0
+  8  9  1  0  0  0
+  9 10  2  0  0  0
+M  END
+$$$$
+CCN(C)C(=O)c1ccccc1
+  rDOCK(R)          3D
+libRbt.so/2013.1/901 2013/11/27
+ 12 12  0  0  0  0  0  0  0  0999 V2000
+   10.6306   -0.4318   24.2468 C   0  0  0  0  0  0
+   11.2738   -0.2591   22.8777 C   0  0  0  0  0  0
+   11.5027    1.1477   22.5523 N   0  0  0  0  0  0
+   10.6408    1.7231   21.5282 C   0  0  0  0  0  0
+   12.6021    1.7847   23.1411 C   0  0  0  0  0  0
+   13.4087    1.1762   23.8483 O   0  0  0  0  0  0
+   12.8518    3.2389   22.9240 C   0  0  0  0  0  0
+   12.7404    3.8481   21.6696 C   0  0  0  0  0  0
+   12.9990    5.2139   21.5196 C   0  0  0  0  0  0
+   13.3123    5.9914   22.6330 C   0  0  0  0  0  0
+   13.3606    5.4074   23.8976 C   0  0  0  0  0  0
+   13.1331    4.0370   24.0436 C   0  0  0  0  0  0
+  1  2  1  0  0  0
+  2  3  1  0  0  0
+  3  4  1  0  0  0
+  3  5  1  0  0  0
+  5  6  2  0  0  0
+  5  7  1  0  0  0
+  7  8  2  0  0  0
+  7 12  1  0  0  0
+  8  9  1  0  0  0
+  9 10  2  0  0  0
+ 10 11  1  0  0  0
+ 11 12  2  0  0  0
+M  END
+$$$$
+CNC(=O)c1cccc(CCNS(C)(=O)=O)c1
+  rDOCK(R)          3D
+libRbt.so/2013.1/901 2013/11/27
+ 17 17  0  0  0  0  0  0  0  0999 V2000
+   10.0019    1.6672   21.8593 C   0  0  0  0  0  0
+    8.7487    1.5971   21.1244 N   0  0  0  0  0  0
+    8.6290    0.5212   20.3389 C   0  0  0  0  0  0
+    9.4567   -0.3639   20.1329 O   0  0  0  0  0  0
+    7.3235    0.4378   19.6088 C   0  0  0  0  0  0
+    7.1514   -0.5242   18.6092 C   0  0  0  0  0  0
+    5.9627   -0.5677   17.8790 C   0  0  0  0  0  0
+    4.9453    0.3559   18.1379 C   0  0  0  0  0  0
+    5.0962    1.3237   19.1419 C   0  0  0  0  0  0
+    3.9963    2.3284   19.4060 C   0  0  0  0  0  0
+    3.7241    2.6438   20.8872 C   0  0  0  0  0  0
+    2.6087    3.6063   21.0810 N   0  0  0  0  0  0
+    1.3263    3.1043   22.0447 S   0  0  0  0  0  0
+    0.5403    1.9194   20.9788 C   0  0  0  0  0  0
+    1.8577    2.3935   23.1858 O   0  0  0  0  0  0
+    0.4357    4.2308   22.2210 O   0  0  0  0  0  0
+    6.2789    1.3264   19.8924 C   0  0  0  0  0  0
+  1  2  1  0  0  0
+  2  3  1  0  0  0
+  3  4  2  0  0  0
+  3  5  1  0  0  0
+  5  6  2  0  0  0
+  5 17  1  0  0  0
+  6  7  1  0  0  0
+  7  8  2  0  0  0
+  8  9  1  0  0  0
+  9 10  1  0  0  0
+  9 17  2  0  0  0
+ 10 11  1  0  0  0
+ 11 12  1  0  0  0
+ 12 13  1  0  0  0
+ 13 14  1  0  0  0
+ 13 15  2  0  0  0
+ 13 16  2  0  0  0
+M  END
+$$$$
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ligands_with_title.sdf	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,759 @@
+abc_one
+
+
+ 26 30  0  0  0  0            999 V2000
+   -8.6396    0.9568    0.0000 O   0  0
+   -7.6023    1.5602    0.0000 C   0  0
+   -7.6071    3.0602    0.0000 C   0  0
+   -6.3104    3.8143    0.0000 C   0  0
+   -5.0090    3.0685    0.0000 C   0  0
+   -5.0040    1.5682    0.0000 C   0  0
+   -6.3008    0.8143    0.0000 C   0  0
+   -3.7006    0.8244    0.0000 C   0  0
+   -3.7006   -0.6045    0.0000 N   0  0
+   -2.4915   -1.3190    0.0000 C   0  0
+   -2.5059   -2.8197    0.0000 N   0  0
+   -1.2156   -3.5847    0.0000 C   0  0
+   -1.2329   -5.0846    0.0000 C   0  0
+   -2.5404   -5.8196    0.0000 O   0  0
+   -3.8308   -5.0547    0.0000 C   0  0
+   -3.8135   -3.5548    0.0000 C   0  0
+   -1.2274   -0.6045    0.0000 C   0  0
+    0.0000   -1.3190    0.0000 O   0  0
+    1.2274   -0.6045    0.0000 C   0  0
+    2.4732   -1.3190    0.0000 N   0  0
+    3.7372   -0.6045    0.0000 C   0  0
+    3.7372    0.8244    0.0000 C   0  0
+    2.4732    1.5389    0.0000 C   0  0
+    1.2274    0.8244    0.0000 C   0  0
+   -1.2274    0.8244    0.0000 C   0  0
+   -2.4915    1.5389    0.0000 N   0  0
+  1  2  1  0
+  2  3  1  0
+  3  4  2  0
+  4  5  1  0
+  5  6  2  0
+  6  7  1  0
+  2  7  2  0
+  6  8  1  0
+  8  9  1  0
+  9 10  2  0
+ 10 11  1  0
+ 11 12  1  0
+ 12 13  1  0
+ 13 14  1  0
+ 14 15  1  0
+ 15 16  1  0
+ 11 16  1  0
+ 10 17  1  0
+ 17 18  1  0
+ 18 19  1  0
+ 19 20  2  0
+ 20 21  1  0
+ 21 22  2  0
+ 22 23  1  0
+ 23 24  2  0
+ 19 24  1  0
+ 24 25  1  0
+ 17 25  2  0
+ 25 26  1  0
+  8 26  2  0
+M  END
+> <mr_id>
+4358263
+
+> <SMI>
+Oc1cccc(c1)c2nc(N3CCOCC3)c4oc5ncccc5c4n2
+
+$$$$
+abc_two
+
+
+ 43 51  0  0  1  0            999 V2000
+   -4.7204    3.3431    0.0000 C   0  0
+   -4.1471    2.2890    0.0000 O   0  0
+   -2.6500    2.2500    0.0000 C   0  0  2  0  0  0
+   -1.8100    3.5000    0.0000 C   0  0  1  0  0  0
+   -0.2400    3.5200    0.0000 C   0  0
+    0.5000    2.1800    0.0000 C   0  0  1  0  0  0
+   -1.0600    2.1800    0.0000 O   0  0
+   -1.8300    0.9300    0.0000 C   0  0  1  0  0  0
+   -3.0300    0.9300    0.0000 C   0  0
+   -0.9800   -0.7800    0.0000 N   0  0
+   -2.1300   -1.4600    0.0000 C   0  0
+   -3.3200   -0.7600    0.0000 C   0  0
+   -4.5500   -1.4800    0.0000 C   0  0
+   -4.5800   -2.7700    0.0000 C   0  0
+   -3.3400   -3.4700    0.0000 C   0  0
+   -2.1300   -2.7900    0.0000 C   0  0
+    0.2400   -2.7700    0.0000 C   0  0
+    1.4300   -3.4700    0.0000 C   0  0
+    1.7600   -4.9700    0.0000 C   0  0
+    3.2600   -5.0800    0.0000 N   0  0
+    3.8500   -3.6300    0.0000 C   0  0
+    4.9971   -3.2777    0.0000 O   0  0
+    2.6600   -2.7500    0.0000 C   0  0
+    2.6800   -1.4600    0.0000 C   0  0
+    3.7900    0.5600    0.0000 C   0  0
+    4.9600    1.2800    0.0000 C   0  0
+    4.9600    2.6300    0.0000 C   0  0
+    3.8100    3.2900    0.0000 C   0  0
+    2.6400    2.5900    0.0000 C   0  0
+    2.6400    1.2400    0.0000 C   0  0
+    1.4900    0.5400    0.0000 N   0  0
+    1.4500   -0.7600    0.0000 C   0  0
+    0.2400   -1.4400    0.0000 C   0  0
+   -2.5511    4.8030    0.0000 N   0  0
+   -1.9442    5.8382    0.0000 C   0  0
+   -4.0519    4.8135    0.0000 C   0  0
+   -4.6588    3.7783    0.0000 O   0  0
+   -4.7941    6.1180    0.0000 C   0  0
+   -6.2940    6.1306    0.0000 C   0  0
+   -7.0331    7.4359    0.0000 C   0  0
+   -6.2722    8.7286    0.0000 C   0  0
+   -4.7723    8.7160    0.0000 C   0  0
+   -4.0332    7.4108    0.0000 C   0  0
+  1  2  1  0
+  3  2  1  6
+  3  4  1  0
+  4  5  1  0
+  6  5  1  6
+  6  7  1  0
+  7  8  1  0
+  3  8  1  0
+  8  9  1  1
+  8 10  1  0
+ 10 11  1  0
+ 11 12  1  0
+ 12 13  2  0
+ 13 14  1  0
+ 14 15  2  0
+ 15 16  1  0
+ 11 16  2  0
+ 16 17  1  0
+ 17 18  1  0
+ 18 19  1  0
+ 19 20  1  0
+ 20 21  1  0
+ 21 22  2  0
+ 21 23  1  0
+ 18 23  2  0
+ 23 24  1  0
+ 24 25  1  0
+ 25 26  1  0
+ 26 27  2  0
+ 27 28  1  0
+ 28 29  2  0
+ 29 30  1  0
+ 25 30  2  0
+ 30 31  1  0
+  6 31  1  0
+ 31 32  1  0
+ 24 32  2  0
+ 32 33  1  0
+ 10 33  1  0
+ 17 33  2  0
+  4 34  1  6
+ 34 35  1  0
+ 34 36  1  0
+ 36 37  2  0
+ 36 38  1  0
+ 38 39  1  0
+ 39 40  2  0
+ 40 41  1  0
+ 41 42  2  0
+ 42 43  1  0
+ 38 43  2  0
+M  END
+> <mr_id>
+8573
+
+> <SMI>
+CO[C@@H]1[C@@H](C[C@H]2O[C@]1(C)n3c4ccccc4c5c6CNC(=O)c6c7c8ccccc8n2c7c35)N(C)C(=O)c9ccccc9
+
+$$$$
+abc_three
+
+
+ 25 28  0  0  0  0            999 V2000
+   -6.2193    5.8633    0.0000 Cl  0  0
+   -5.1815    5.2608    0.0000 C   0  0
+   -3.8807    6.0076    0.0000 C   0  0
+   -2.5835    5.2544    0.0000 C   0  0
+   -2.5870    3.7544    0.0000 C   0  0
+   -1.2907    2.9981    0.0000 N   0  0
+   -1.2964    1.4973    0.0000 C   0  0
+   -2.6111    0.7486    0.0000 N   0  0
+   -2.6111   -0.7486    0.0000 N   0  0
+   -1.2964   -1.4973    0.0000 C   0  0
+   -1.2907   -2.9981    0.0000 C   0  0
+   -2.5870   -3.7544    0.0000 C   0  0
+   -2.5835   -5.2544    0.0000 C   0  0
+   -3.8807   -6.0076    0.0000 C   0  0
+   -5.1815   -5.2608    0.0000 N   0  0
+   -5.1852   -3.7608    0.0000 C   0  0
+   -3.8880   -3.0076    0.0000 C   0  0
+    0.0000   -0.7486    0.0000 C   0  0
+    1.2964   -1.4973    0.0000 C   0  0
+    2.5929   -0.7486    0.0000 C   0  0
+    2.5929    0.7486    0.0000 C   0  0
+    1.2964    1.4973    0.0000 C   0  0
+    0.0000    0.7486    0.0000 C   0  0
+   -3.8880    3.0076    0.0000 C   0  0
+   -5.1852    3.7608    0.0000 C   0  0
+  1  2  1  0
+  2  3  1  0
+  3  4  2  0
+  4  5  1  0
+  5  6  1  0
+  6  7  1  0
+  7  8  1  0
+  8  9  2  0
+  9 10  1  0
+ 10 11  1  0
+ 11 12  1  0
+ 12 13  1  0
+ 13 14  2  0
+ 14 15  1  0
+ 15 16  2  0
+ 16 17  1  0
+ 12 17  2  0
+ 10 18  2  0
+ 18 19  1  0
+ 19 20  2  0
+ 20 21  1  0
+ 21 22  2  0
+ 22 23  1  0
+  7 23  2  0
+ 18 23  1  0
+  5 24  2  0
+ 24 25  1  0
+  2 25  2  0
+M  END
+> <mr_id>
+4027
+
+> <SMI>
+Clc1ccc(Nc2nnc(Cc3ccncc3)c4ccccc24)cc1
+
+$$$$
+abc_four
+
+
+ 26 28  0  0  1  0            999 V2000
+   -1.2878    3.1508    0.0000 C   0  0
+   -2.3292    3.7470    0.0000 C   0  0
+   -3.6267    2.9927    0.0000 C   0  0  2  0  0  0
+   -4.9300    3.7369    0.0000 C   0  0
+   -4.9364    4.9369    0.0000 O   0  0
+   -3.6187    1.4919    0.0000 N   0  0
+   -2.3155    0.7475    0.0000 C   0  0
+   -2.3155   -0.7475    0.0000 N   0  0
+   -1.0028   -1.5132    0.0000 C   0  0
+   -0.9971   -3.0138    0.0000 N   0  0
+   -2.2935   -3.7700    0.0000 C   0  0
+   -2.2878   -5.2708    0.0000 C   0  0
+   -3.5824   -6.0284    0.0000 C   0  0
+   -3.5736   -7.5284    0.0000 C   0  0
+   -2.2702   -8.2708    0.0000 C   0  0
+   -0.9756   -7.5132    0.0000 C   0  0
+   -0.9844   -6.0132    0.0000 C   0  0
+    0.2917   -0.7475    0.0000 C   0  0
+    1.7138   -1.2033    0.0000 N   0  0
+    2.5889    0.0182    0.0000 C   0  0
+    1.7138    1.2033    0.0000 N   0  0
+    2.1812    2.6271    0.0000 C   0  0
+    3.3556    2.8737    0.0000 C   0  0
+    1.3808    3.5211    0.0000 C   0  0
+    0.2917    0.7475    0.0000 C   0  0
+   -1.0028    1.5132    0.0000 N   0  0
+  1  2  1  0
+  2  3  1  0
+  3  4  1  0
+  4  5  1  0
+  3  6  1  1
+  6  7  1  0
+  7  8  1  0
+  8  9  2  0
+  9 10  1  0
+ 10 11  1  0
+ 11 12  1  0
+ 12 13  1  0
+ 13 14  2  0
+ 14 15  1  0
+ 15 16  2  0
+ 16 17  1  0
+ 12 17  2  0
+  9 18  1  0
+ 18 19  1  0
+ 19 20  2  0
+ 20 21  1  0
+ 21 22  1  0
+ 22 23  1  0
+ 22 24  1  0
+ 21 25  1  0
+ 18 25  2  0
+ 25 26  1  0
+  7 26  2  0
+M  END
+> <mr_id>
+600
+
+> <SMI>
+CC[C@H](CO)Nc1nc(NCc2ccccc2)c3ncn(C(C)C)c3n1
+
+$$$$
+abc_five
+
+
+ 25 28  0  0  0  0            999 V2000
+    2.3383   -1.3500    0.0000 O   0  0
+    1.2990   -0.7500    0.0000 C   0  0
+    1.2990    0.7500    0.0000 C   0  0
+    0.0000    1.5000    0.0000 C   0  0
+   -1.2990    0.7500    0.0000 C   0  0
+   -1.2990   -0.7500    0.0000 C   0  0
+    0.0000   -1.5000    0.0000 C   0  0
+   -2.5987    1.5004    0.0000 C   0  0
+   -2.7390    2.9810    0.0000 N   0  0
+   -4.2067    3.2905    0.0000 C   0  0
+   -4.9546    1.9903    0.0000 C   0  0
+   -3.9492    0.8772    0.0000 N   0  0
+   -6.4469    1.8311    0.0000 C   0  0
+   -7.4153    2.9701    0.0000 C   0  0
+   -8.8906    2.6991    0.0000 C   0  0
+   -9.3937    1.2860    0.0000 N   0  0
+   -8.4213    0.1438    0.0000 C   0  0
+   -6.9460    0.4147    0.0000 C   0  0
+   -4.8193    4.6606    0.0000 C   0  0
+   -4.0353    5.9336    0.0000 C   0  0
+   -4.7489    7.2530    0.0000 C   0  0
+   -6.2483    7.2947    0.0000 C   0  0
+   -6.8192    8.3502    0.0000 F   0  0
+   -7.0341    6.0170    0.0000 C   0  0
+   -6.3205    4.6976    0.0000 C   0  0
+  1  2  1  0
+  2  3  1  0
+  3  4  2  0
+  4  5  1  0
+  5  6  2  0
+  6  7  1  0
+  2  7  2  0
+  5  8  1  0
+  8  9  2  0
+  9 10  1  0
+ 10 11  2  0
+ 11 12  1  0
+  8 12  1  0
+ 11 13  1  0
+ 13 14  1  0
+ 14 15  2  0
+ 15 16  1  0
+ 16 17  2  0
+ 17 18  1  0
+ 13 18  2  0
+ 10 19  1  0
+ 19 20  1  0
+ 20 21  2  0
+ 21 22  1  0
+ 22 23  1  0
+ 22 24  2  0
+ 24 25  1  0
+ 19 25  2  0
+M  END
+> <mr_id>
+8393
+
+> <SMI>
+Oc1ccc(cc1)c2nc(c([nH]2)c3ccncc3)c4ccc(F)cc4
+
+$$$$
+abc_six
+
+
+ 27 30  0  0  0  0            999 V2000
+    3.6375   -0.9049    0.0000 C   0  0
+    2.5973   -1.5031    0.0000 S   0  0
+    2.5956   -2.7031    0.0000 O   0  0
+    1.2990   -0.7500    0.0000 C   0  0
+    1.2990    0.7500    0.0000 C   0  0
+    0.0000    1.5000    0.0000 C   0  0
+   -1.2990    0.7500    0.0000 C   0  0
+   -1.2990   -0.7500    0.0000 C   0  0
+    0.0000   -1.5000    0.0000 C   0  0
+   -2.5987    1.5004    0.0000 C   0  0
+   -2.7390    2.9810    0.0000 N   0  0
+   -4.2067    3.2905    0.0000 C   0  0
+   -4.9546    1.9903    0.0000 C   0  0
+   -3.9492    0.8772    0.0000 N   0  0
+   -6.4469    1.8311    0.0000 C   0  0
+   -7.4153    2.9701    0.0000 C   0  0
+   -8.8906    2.6991    0.0000 C   0  0
+   -9.3937    1.2860    0.0000 N   0  0
+   -8.4213    0.1438    0.0000 C   0  0
+   -6.9460    0.4147    0.0000 C   0  0
+   -4.8193    4.6606    0.0000 C   0  0
+   -4.0353    5.9336    0.0000 C   0  0
+   -4.7489    7.2530    0.0000 C   0  0
+   -6.2483    7.2947    0.0000 C   0  0
+   -6.8192    8.3502    0.0000 F   0  0
+   -7.0341    6.0170    0.0000 C   0  0
+   -6.3205    4.6976    0.0000 C   0  0
+  1  2  1  0
+  2  3  2  0
+  2  4  1  0
+  4  5  1  0
+  5  6  2  0
+  6  7  1  0
+  7  8  2  0
+  8  9  1  0
+  4  9  2  0
+  7 10  1  0
+ 10 11  2  0
+ 11 12  1  0
+ 12 13  2  0
+ 13 14  1  0
+ 10 14  1  0
+ 13 15  1  0
+ 15 16  1  0
+ 16 17  2  0
+ 17 18  1  0
+ 18 19  2  0
+ 19 20  1  0
+ 15 20  2  0
+ 12 21  1  0
+ 21 22  1  0
+ 22 23  2  0
+ 23 24  1  0
+ 24 25  1  0
+ 24 26  2  0
+ 26 27  1  0
+ 21 27  2  0
+M  END
+> <mr_id>
+3250
+
+> <SMI>
+CS(=O)c1ccc(cc1)c2nc(c([nH]2)c3ccncc3)c4ccc(F)cc4
+
+$$$$
+abc_seven
+
+
+ 29 33  0  0  0  0            999 V2000
+  -12.5295    0.6317    0.0000 N   0  0
+  -11.9608    1.6884    0.0000 C   0  0
+  -12.5918    2.7091    0.0000 O   0  0
+  -10.4606    1.7327    0.0000 C   0  0
+   -9.6699    0.4580    0.0000 C   0  0
+   -8.1707    0.5054    0.0000 C   0  0
+   -7.4652    1.8235    0.0000 C   0  0
+   -8.2527    3.1022    0.0000 C   0  0
+   -9.7520    3.0548    0.0000 C   0  0
+   -5.9730    1.9836    0.0000 C   0  0
+   -4.9669    0.8711    0.0000 N   0  0
+   -3.6168    1.4950    0.0000 C   0  0
+   -3.7580    2.9756    0.0000 C   0  0
+   -5.2259    3.2843    0.0000 N   0  0
+   -2.6389    3.9757    0.0000 C   0  0
+   -1.1867    3.6217    0.0000 C   0  0
+   -0.1511    4.7069    0.0000 C   0  0
+   -0.5731    6.1463    0.0000 C   0  0
+   -2.0307    6.5006    0.0000 C   0  0
+   -3.0662    5.4154    0.0000 N   0  0
+   -2.3155    0.7475    0.0000 C   0  0
+   -2.3155   -0.7475    0.0000 C   0  0
+   -1.0028   -1.5132    0.0000 C   0  0
+    0.2917   -0.7475    0.0000 C   0  0
+    1.7138   -1.2033    0.0000 O   0  0
+    2.5889    0.0182    0.0000 C   0  0
+    1.7138    1.2033    0.0000 O   0  0
+    0.2917    0.7475    0.0000 C   0  0
+   -1.0028    1.5132    0.0000 C   0  0
+  1  2  1  0
+  2  3  2  0
+  2  4  1  0
+  4  5  1  0
+  5  6  2  0
+  6  7  1  0
+  7  8  2  0
+  8  9  1  0
+  4  9  2  0
+  7 10  1  0
+ 10 11  2  0
+ 11 12  1  0
+ 12 13  2  0
+ 13 14  1  0
+ 10 14  1  0
+ 13 15  1  0
+ 15 16  1  0
+ 16 17  2  0
+ 17 18  1  0
+ 18 19  2  0
+ 19 20  1  0
+ 15 20  2  0
+ 12 21  1  0
+ 21 22  1  0
+ 22 23  2  0
+ 23 24  1  0
+ 24 25  1  0
+ 25 26  1  0
+ 26 27  1  0
+ 27 28  1  0
+ 24 28  2  0
+ 28 29  1  0
+ 21 29  2  0
+M  END
+> <mr_id>
+4347423
+
+> <SMI>
+NC(=O)c1ccc(cc1)c2nc(c([nH]2)c3ccccn3)c4ccc5OCOc5c4
+
+$$$$
+abc_nine
+
+
+ 32 34  0  0  0  0            999 V2000
+    3.6331   -3.6060    0.0000 C   0  0
+    2.5951   -3.0039    0.0000 N   0  0
+    2.5973   -1.5031    0.0000 C   0  0
+    3.6375   -0.9049    0.0000 O   0  0
+    1.2990   -0.7500    0.0000 C   0  0
+    1.2990    0.7500    0.0000 C   0  0
+    0.0000    1.5000    0.0000 C   0  0
+   -0.0031    3.0008    0.0000 O   0  0
+   -1.3039    3.7494    0.0000 C   0  0
+   -1.3092    5.2494    0.0000 C   0  0
+   -2.6108    5.9949    0.0000 C   0  0
+   -3.9073    5.2404    0.0000 C   0  0
+   -5.2112    5.9836    0.0000 N   0  0
+   -6.5072    5.2269    0.0000 C   0  0
+   -6.5010    4.0269    0.0000 O   0  0
+   -7.8111    5.9701    0.0000 N   0  0
+   -9.1072    5.2134    0.0000 C   0  0
+  -10.4114    5.9543    0.0000 C   0  0
+  -11.7053    5.1953    0.0000 C   0  0
+  -11.6949    3.6953    0.0000 C   0  0
+  -12.7299    3.0882    0.0000 Cl  0  0
+  -10.3907    2.9543    0.0000 C   0  0
+   -9.0969    3.7133    0.0000 C   0  0
+  -10.3803    1.4536    0.0000 C   0  0
+  -11.4150    0.8457    0.0000 F   0  0
+   -9.3367    0.8611    0.0000 F   0  0
+  -10.3714    0.2536    0.0000 F   0  0
+   -3.9021    3.7404    0.0000 C   0  0
+   -2.6005    2.9949    0.0000 C   0  0
+   -1.2990    0.7500    0.0000 C   0  0
+   -1.2990   -0.7500    0.0000 C   0  0
+    0.0000   -1.5000    0.0000 N   0  0
+  1  2  1  0
+  2  3  1  0
+  3  4  2  0
+  3  5  1  0
+  5  6  1  0
+  6  7  2  0
+  7  8  1  0
+  8  9  1  0
+  9 10  1  0
+ 10 11  2  0
+ 11 12  1  0
+ 12 13  1  0
+ 13 14  1  0
+ 14 15  2  0
+ 14 16  1  0
+ 16 17  1  0
+ 17 18  1  0
+ 18 19  2  0
+ 19 20  1  0
+ 20 21  1  0
+ 20 22  2  0
+ 22 23  1  0
+ 17 23  2  0
+ 22 24  1  0
+ 24 25  1  0
+ 24 26  1  0
+ 24 27  1  0
+ 12 28  2  0
+ 28 29  1  0
+  9 29  2  0
+  7 30  1  0
+ 30 31  2  0
+ 31 32  1  0
+  5 32  2  0
+M  END
+> <mr_id>
+4255941
+
+> <SMI>
+CNC(=O)c1cc(Oc2ccc(NC(=O)Nc3ccc(Cl)c(c3)C(F)(F)F)cc2)ccn1
+
+$$$$
+abc_ten
+
+
+ 35 42  0  0  1  0            999 V2000
+   -1.9455    5.8387    0.0000 C   0  0
+   -2.5513    4.8029    0.0000 N   0  0
+   -1.8100    3.5000    0.0000 C   0  0  2  0  0  0
+   -0.2400    3.5200    0.0000 C   0  0
+    0.5000    2.1800    0.0000 C   0  0  1  0  0  0
+   -1.0600    2.1800    0.0000 O   0  0
+   -1.8300    0.9300    0.0000 C   0  0  1  0  0  0
+   -3.0300    0.9300    0.0000 C   0  0
+   -2.6500    2.2500    0.0000 C   0  0  2  0  0  0
+   -4.1471    2.2892    0.0000 O   0  0
+   -4.7748    1.2665    0.0000 C   0  0
+   -0.9800   -0.7800    0.0000 N   0  0
+   -2.1300   -1.4600    0.0000 C   0  0
+   -3.3200   -0.7600    0.0000 C   0  0
+   -4.5500   -1.4800    0.0000 C   0  0
+   -4.5800   -2.7700    0.0000 C   0  0
+   -3.3400   -3.4700    0.0000 C   0  0
+   -2.1300   -2.7900    0.0000 C   0  0
+    0.2400   -2.7700    0.0000 C   0  0
+    1.4300   -3.4700    0.0000 C   0  0
+    1.7600   -4.9700    0.0000 C   0  0
+    3.2600   -5.0800    0.0000 N   0  0
+    3.8500   -3.6300    0.0000 C   0  0
+    4.9971   -3.2777    0.0000 O   0  0
+    2.6600   -2.7500    0.0000 C   0  0
+    2.6800   -1.4600    0.0000 C   0  0
+    3.7900    0.5600    0.0000 C   0  0
+    4.9600    1.2800    0.0000 C   0  0
+    4.9600    2.6300    0.0000 C   0  0
+    3.8100    3.2900    0.0000 C   0  0
+    2.6400    2.5900    0.0000 C   0  0
+    2.6400    1.2400    0.0000 C   0  0
+    1.4900    0.5400    0.0000 N   0  0
+    1.4500   -0.7600    0.0000 C   0  0
+    0.2400   -1.4400    0.0000 C   0  0
+  1  2  1  0
+  3  2  1  6
+  3  4  1  0
+  5  4  1  6
+  5  6  1  0
+  6  7  1  0
+  7  8  1  1
+  7  9  1  0
+  3  9  1  0
+  9 10  1  6
+ 10 11  1  0
+  7 12  1  0
+ 12 13  1  0
+ 13 14  1  0
+ 14 15  2  0
+ 15 16  1  0
+ 16 17  2  0
+ 17 18  1  0
+ 13 18  2  0
+ 18 19  1  0
+ 19 20  1  0
+ 20 21  1  0
+ 21 22  1  0
+ 22 23  1  0
+ 23 24  2  0
+ 23 25  1  0
+ 20 25  2  0
+ 25 26  1  0
+ 26 27  1  0
+ 27 28  1  0
+ 28 29  2  0
+ 29 30  1  0
+ 30 31  2  0
+ 31 32  1  0
+ 27 32  2  0
+ 32 33  1  0
+  5 33  1  0
+ 33 34  1  0
+ 26 34  2  0
+ 34 35  1  0
+ 12 35  1  0
+ 19 35  2  0
+M  END
+> <mr_id>
+66
+
+> <SMI>
+CN[C@@H]1C[C@H]2O[C@@](C)([C@@H]1OC)n3c4ccccc4c5c6CNC(=O)c6c7c8ccccc8n2c7c35
+
+$$$$
+abc_eleven
+
+
+ 32 35  0  0  1  0            999 V2000
+    7.1381   -2.1568    0.0000 C   0  0
+    6.0456   -2.6531    0.0000 C   0  0
+    4.7409   -1.9129    0.0000 N   0  0
+    3.6552   -2.9294    0.0000 C   0  0
+    2.1855   -2.6254    0.0000 C   0  0
+    1.7138   -1.2033    0.0000 C   0  0
+    2.5889    0.0182    0.0000 C   0  0
+    3.7889    0.0269    0.0000 O   0  0
+    1.7138    1.2033    0.0000 N   0  0
+    0.2917    0.7475    0.0000 C   0  0
+   -1.0028    1.5132    0.0000 C   0  0
+   -2.3155    0.7475    0.0000 C   0  0
+   -2.3155   -0.7475    0.0000 C   0  0
+   -3.3560   -1.3452    0.0000 F   0  0
+   -1.0028   -1.5132    0.0000 C   0  0
+    0.2917   -0.7475    0.0000 C   0  0
+    4.2542   -4.2907    0.0000 C   0  0
+    3.6559   -5.3308    0.0000 C   0  0
+    5.7448   -4.1226    0.0000 C   0  0
+    6.7580   -5.2264    0.0000 C   0  0
+    6.3978   -6.3710    0.0000 O   0  0
+    8.2231   -4.9012    0.0000 N   0  0
+    9.2380   -6.0068    0.0000 C   0  0
+   10.7032   -5.6816    0.0000 C   0  0  2  0  0  0
+   11.0634   -4.5369    0.0000 O   0  0
+   11.7181   -6.7872    0.0000 C   0  0
+   13.1833   -6.4620    0.0000 N   0  0
+   14.1993   -7.5656    0.0000 C   0  0
+   15.6630   -7.2376    0.0000 C   0  0
+   16.1108   -5.8060    0.0000 O   0  0
+   15.0949   -4.7024    0.0000 C   0  0
+   13.6312   -5.0304    0.0000 C   0  0
+  1  2  1  0
+  2  3  1  0
+  3  4  1  0
+  4  5  1  0
+  5  6  2  0
+  6  7  1  0
+  7  8  2  0
+  7  9  1  0
+  9 10  1  0
+ 10 11  1  0
+ 11 12  2  0
+ 12 13  1  0
+ 13 14  1  0
+ 13 15  2  0
+ 15 16  1  0
+  6 16  1  0
+ 10 16  2  0
+  4 17  2  0
+ 17 18  1  0
+ 17 19  1  0
+  2 19  2  0
+ 19 20  1  0
+ 20 21  2  0
+ 20 22  1  0
+ 22 23  1  0
+ 23 24  1  0
+ 24 25  1  6
+ 24 26  1  0
+ 26 27  1  0
+ 27 28  1  0
+ 28 29  1  0
+ 29 30  1  0
+ 30 31  1  0
+ 31 32  1  0
+ 27 32  1  0
+M  END
+> <mr_id>
+4362206
+
+> <SMI>
+Cc1[nH]c(/C=C/2\C(=O)Nc3ccc(F)cc23)c(C)c1C(=O)NC[C@H](O)CN4CCOCC4
+
+$$$$
Binary file test-data/molecule.fs has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/molecule.sdf	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,155 @@
+2244
+  -OEChem-05151212332D
+
+ 21 21  0     0  0  0  0  0  0999 V2000
+    3.7320   -0.0600    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301    1.4400    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981    1.4400    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    2.8660   -1.5600    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -0.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981   -1.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -2.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301   -1.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641    0.9400    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.8660   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.0000   -0.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    4.0611   -1.8700    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.8671   -0.2500    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -2.6800    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.8671   -1.8700    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    2.3100    0.4769    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    1.4631    0.2500    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    1.6900   -0.5969    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301    2.0600    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+  1  5  1  0  0  0  0
+  1 12  1  0  0  0  0
+  2 11  1  0  0  0  0
+  2 21  1  0  0  0  0
+  3 11  2  0  0  0  0
+  4 12  2  0  0  0  0
+  5  6  1  0  0  0  0
+  5  7  2  0  0  0  0
+  6  8  2  0  0  0  0
+  6 11  1  0  0  0  0
+  7  9  1  0  0  0  0
+  7 14  1  0  0  0  0
+  8 10  1  0  0  0  0
+  8 15  1  0  0  0  0
+  9 10  2  0  0  0  0
+  9 16  1  0  0  0  0
+ 10 17  1  0  0  0  0
+ 12 13  1  0  0  0  0
+ 13 18  1  0  0  0  0
+ 13 19  1  0  0  0  0
+ 13 20  1  0  0  0  0
+M  END
+> <PUBCHEM_COMPOUND_CID>
+2244
+
+> <PUBCHEM_COMPOUND_CANONICALIZED>
+1
+
+> <PUBCHEM_CACTVS_COMPLEXITY>
+212
+
+> <PUBCHEM_CACTVS_HBOND_ACCEPTOR>
+4
+
+> <PUBCHEM_CACTVS_HBOND_DONOR>
+1
+
+> <PUBCHEM_CACTVS_ROTATABLE_BOND>
+3
+
+> <PUBCHEM_CACTVS_SUBSKEYS>
+AAADccBwOAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAABAAAAGgAACAAADASAmAAyDoAABgCIAiDSCAACCAAkIAAIiAEGCMgMJzaENRqCe2Cl4BEIuYeIyCCOAAAAAAAIAAAAAAAAABAAAAAAAAAAAA==
+
+> <PUBCHEM_IUPAC_OPENEYE_NAME>
+2-acetoxybenzoic acid
+
+> <PUBCHEM_IUPAC_CAS_NAME>
+2-acetyloxybenzoic acid
+
+> <PUBCHEM_IUPAC_NAME>
+2-acetyloxybenzoic acid
+
+> <PUBCHEM_IUPAC_SYSTEMATIC_NAME>
+2-acetyloxybenzoic acid
+
+> <PUBCHEM_IUPAC_TRADITIONAL_NAME>
+2-acetoxybenzoic acid
+
+> <PUBCHEM_IUPAC_INCHI>
+InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2-5H,1H3,(H,11,12)
+
+> <PUBCHEM_IUPAC_INCHIKEY>
+BSYNRYMUTXBXSQ-UHFFFAOYSA-N
+
+> <PUBCHEM_XLOGP3>
+1.2
+
+> <PUBCHEM_EXACT_MASS>
+180.042259
+
+> <PUBCHEM_MOLECULAR_FORMULA>
+C9H8O4
+
+> <PUBCHEM_MOLECULAR_WEIGHT>
+180.15742
+
+> <PUBCHEM_OPENEYE_CAN_SMILES>
+CC(=O)OC1=CC=CC=C1C(=O)O
+
+> <PUBCHEM_OPENEYE_ISO_SMILES>
+CC(=O)OC1=CC=CC=C1C(=O)O
+
+> <PUBCHEM_CACTVS_TPSA>
+63.6
+
+> <PUBCHEM_MONOISOTOPIC_WEIGHT>
+180.042259
+
+> <PUBCHEM_TOTAL_CHARGE>
+0
+
+> <PUBCHEM_HEAVY_ATOM_COUNT>
+13
+
+> <PUBCHEM_ATOM_DEF_STEREO_COUNT>
+0
+
+> <PUBCHEM_ATOM_UDEF_STEREO_COUNT>
+0
+
+> <PUBCHEM_BOND_DEF_STEREO_COUNT>
+0
+
+> <PUBCHEM_BOND_UDEF_STEREO_COUNT>
+0
+
+> <PUBCHEM_ISOTOPIC_ATOM_COUNT>
+0
+
+> <PUBCHEM_COMPONENT_COUNT>
+1
+
+> <PUBCHEM_CACTVS_TAUTO_COUNT>
+1
+
+> <PUBCHEM_COORDINATE_TYPE>
+1
+5
+255
+
+> <PUBCHEM_BONDANNOTATIONS>
+5  6  8
+5  7  8
+6  8  8
+7  9  8
+8  10  8
+9  10  8
+
+$$$$
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/name_file.txt	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,2 @@
+abc_one
+abc_eleven
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ob_convert_on_CID2244.can	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,1 @@
+CC(=O)Oc1ccccc1C(=O)O	2244
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ob_convert_on_CID2244.cml	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<molecule id="id2244" xmlns="http://www.xml-cml.org/schema">
+ <atomArray>
+  <atom id="a1" elementType="O" x2="3.732000" y2="-0.060000"/>
+  <atom id="a2" elementType="O" x2="6.330100" y2="1.440000"/>
+  <atom id="a3" elementType="O" x2="4.598100" y2="1.440000"/>
+  <atom id="a4" elementType="O" x2="2.866000" y2="-1.560000"/>
+  <atom id="a5" elementType="C" x2="4.598100" y2="-0.560000"/>
+  <atom id="a6" elementType="C" x2="5.464100" y2="-0.060000"/>
+  <atom id="a7" elementType="C" x2="4.598100" y2="-1.560000"/>
+  <atom id="a8" elementType="C" x2="6.330100" y2="-0.560000"/>
+  <atom id="a9" elementType="C" x2="5.464100" y2="-2.060000"/>
+  <atom id="a10" elementType="C" x2="6.330100" y2="-1.560000"/>
+  <atom id="a11" elementType="C" x2="5.464100" y2="0.940000"/>
+  <atom id="a12" elementType="C" x2="2.866000" y2="-0.560000"/>
+  <atom id="a13" elementType="C" x2="2.000000" y2="-0.060000"/>
+  <atom id="a14" elementType="H" x2="4.061100" y2="-1.870000"/>
+  <atom id="a15" elementType="H" x2="6.867100" y2="-0.250000"/>
+  <atom id="a16" elementType="H" x2="5.464100" y2="-2.680000"/>
+  <atom id="a17" elementType="H" x2="6.867100" y2="-1.870000"/>
+  <atom id="a18" elementType="H" x2="2.310000" y2="0.476900"/>
+  <atom id="a19" elementType="H" x2="1.463100" y2="0.250000"/>
+  <atom id="a20" elementType="H" x2="1.690000" y2="-0.596900"/>
+  <atom id="a21" elementType="H" x2="6.330100" y2="2.060000"/>
+ </atomArray>
+ <bondArray>
+  <bond atomRefs2="a1 a5" order="1"/>
+  <bond atomRefs2="a1 a12" order="1"/>
+  <bond atomRefs2="a2 a11" order="1"/>
+  <bond atomRefs2="a2 a21" order="1"/>
+  <bond atomRefs2="a3 a11" order="2"/>
+  <bond atomRefs2="a4 a12" order="2"/>
+  <bond atomRefs2="a5 a6" order="1"/>
+  <bond atomRefs2="a5 a7" order="2"/>
+  <bond atomRefs2="a6 a8" order="2"/>
+  <bond atomRefs2="a6 a11" order="1"/>
+  <bond atomRefs2="a7 a9" order="1"/>
+  <bond atomRefs2="a7 a14" order="1"/>
+  <bond atomRefs2="a8 a10" order="1"/>
+  <bond atomRefs2="a8 a15" order="1"/>
+  <bond atomRefs2="a9 a10" order="2"/>
+  <bond atomRefs2="a9 a16" order="1"/>
+  <bond atomRefs2="a10 a17" order="1"/>
+  <bond atomRefs2="a12 a13" order="1"/>
+  <bond atomRefs2="a13 a18" order="1"/>
+  <bond atomRefs2="a13 a19" order="1"/>
+  <bond atomRefs2="a13 a20" order="1"/>
+ </bondArray>
+</molecule>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ob_convert_on_CID2244.inchi	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,1 @@
+InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2-5H,1H3,(H,11,12) 2244
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ob_convert_on_CID2244.pdb	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,46 @@
+COMPND    2244 
+AUTHOR    GENERATED BY OPEN BABEL 2.3.90
+HETATM    1  O   UNL     1       3.732  -0.060   0.000  1.00  0.00           O  
+HETATM    2  O   UNL     1       6.330   1.440   0.000  1.00  0.00           O  
+HETATM    3  O   UNL     1       4.598   1.440   0.000  1.00  0.00           O  
+HETATM    4  O   UNL     1       2.866  -1.560   0.000  1.00  0.00           O  
+HETATM    5  C   UNL     1       4.598  -0.560   0.000  1.00  0.00           C  
+HETATM    6  C   UNL     1       5.464  -0.060   0.000  1.00  0.00           C  
+HETATM    7  C   UNL     1       4.598  -1.560   0.000  1.00  0.00           C  
+HETATM    8  C   UNL     1       6.330  -0.560   0.000  1.00  0.00           C  
+HETATM    9  C   UNL     1       5.464  -2.060   0.000  1.00  0.00           C  
+HETATM   10  C   UNL     1       6.330  -1.560   0.000  1.00  0.00           C  
+HETATM   11  C   UNL     1       5.464   0.940   0.000  1.00  0.00           C  
+HETATM   12  C   UNL     1       2.866  -0.560   0.000  1.00  0.00           C  
+HETATM   13  C   UNL     1       2.000  -0.060   0.000  1.00  0.00           C  
+HETATM   14  H   UNL     1       4.061  -1.870   0.000  1.00  0.00           H  
+HETATM   15  H   UNL     1       6.867  -0.250   0.000  1.00  0.00           H  
+HETATM   16  H   UNL     1       5.464  -2.680   0.000  1.00  0.00           H  
+HETATM   17  H   UNL     1       6.867  -1.870   0.000  1.00  0.00           H  
+HETATM   18  H   UNL     1       2.310   0.477   0.000  1.00  0.00           H  
+HETATM   19  H   UNL     1       1.463   0.250   0.000  1.00  0.00           H  
+HETATM   20  H   UNL     1       1.690  -0.597   0.000  1.00  0.00           H  
+HETATM   21  H   UNL     1       6.330   2.060   0.000  1.00  0.00           H  
+CONECT    1    5   12                                                 
+CONECT    2   11   21                                                 
+CONECT    3   11                                                      
+CONECT    4   12                                                      
+CONECT    5    1    6    7                                            
+CONECT    6    5    8   11                                            
+CONECT    7    5    9   14                                            
+CONECT    8    6   10   15                                            
+CONECT    9    7   10   16                                            
+CONECT   10    8    9   17                                            
+CONECT   11    2    3    6                                            
+CONECT   12    1    4   13                                            
+CONECT   13   12   18   19   20                                       
+CONECT   14    7                                                      
+CONECT   15    8                                                      
+CONECT   16    9                                                      
+CONECT   17   10                                                      
+CONECT   18   13                                                      
+CONECT   19   13                                                      
+CONECT   20   13                                                      
+CONECT   21    2                                                      
+MASTER        0    0    0    0    0    0    0    0   21    0   21    0
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ob_convert_on_CID2244.sdf	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,154 @@
+2244
+ OpenBabel03291606592D
+
+ 21 21  0  0  0  0  0  0  0  0999 V2000
+    3.7320   -0.0600    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301    1.4400    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981    1.4400    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    2.8660   -1.5600    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -0.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981   -1.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -2.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301   -1.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641    0.9400    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.8660   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.0000   -0.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    4.0611   -1.8700    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.8671   -0.2500    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -2.6800    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.8671   -1.8700    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    2.3100    0.4769    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    1.4631    0.2500    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    1.6900   -0.5969    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301    2.0600    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+  1  5  1  0  0  0  0
+  1 12  1  0  0  0  0
+  2 11  1  0  0  0  0
+  2 21  1  0  0  0  0
+  3 11  2  0  0  0  0
+  4 12  2  0  0  0  0
+  5  6  1  0  0  0  0
+  5  7  2  0  0  0  0
+  6  8  2  0  0  0  0
+  6 11  1  0  0  0  0
+  7  9  1  0  0  0  0
+  7 14  1  0  0  0  0
+  8 10  1  0  0  0  0
+  8 15  1  0  0  0  0
+  9 10  2  0  0  0  0
+  9 16  1  0  0  0  0
+ 10 17  1  0  0  0  0
+ 12 13  1  0  0  0  0
+ 13 18  1  0  0  0  0
+ 13 19  1  0  0  0  0
+ 13 20  1  0  0  0  0
+M  END
+>  <PUBCHEM_COMPOUND_CID>
+2244
+
+>  <PUBCHEM_COMPOUND_CANONICALIZED>
+1
+
+>  <PUBCHEM_CACTVS_COMPLEXITY>
+212
+
+>  <PUBCHEM_CACTVS_HBOND_ACCEPTOR>
+4
+
+>  <PUBCHEM_CACTVS_HBOND_DONOR>
+1
+
+>  <PUBCHEM_CACTVS_ROTATABLE_BOND>
+3
+
+>  <PUBCHEM_CACTVS_SUBSKEYS>
+AAADccBwOAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAABAAAAGgAACAAADASAmAAyDoAABgCIAiDSCAACCAAkIAAIiAEGCMgMJzaENRqCe2Cl4BEIuYeIyCCOAAAAAAAIAAAAAAAAABAAAAAAAAAAAA==
+
+>  <PUBCHEM_IUPAC_OPENEYE_NAME>
+2-acetoxybenzoic acid
+
+>  <PUBCHEM_IUPAC_CAS_NAME>
+2-acetyloxybenzoic acid
+
+>  <PUBCHEM_IUPAC_NAME>
+2-acetyloxybenzoic acid
+
+>  <PUBCHEM_IUPAC_SYSTEMATIC_NAME>
+2-acetyloxybenzoic acid
+
+>  <PUBCHEM_IUPAC_TRADITIONAL_NAME>
+2-acetoxybenzoic acid
+
+>  <PUBCHEM_IUPAC_INCHI>
+InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2-5H,1H3,(H,11,12)
+
+>  <PUBCHEM_IUPAC_INCHIKEY>
+BSYNRYMUTXBXSQ-UHFFFAOYSA-N
+
+>  <PUBCHEM_XLOGP3>
+1.2
+
+>  <PUBCHEM_EXACT_MASS>
+180.042259
+
+>  <PUBCHEM_MOLECULAR_FORMULA>
+C9H8O4
+
+>  <PUBCHEM_MOLECULAR_WEIGHT>
+180.15742
+
+>  <PUBCHEM_OPENEYE_CAN_SMILES>
+CC(=O)OC1=CC=CC=C1C(=O)O
+
+>  <PUBCHEM_OPENEYE_ISO_SMILES>
+CC(=O)OC1=CC=CC=C1C(=O)O
+
+>  <PUBCHEM_CACTVS_TPSA>
+63.6
+
+>  <PUBCHEM_MONOISOTOPIC_WEIGHT>
+180.042259
+
+>  <PUBCHEM_TOTAL_CHARGE>
+0
+
+>  <PUBCHEM_HEAVY_ATOM_COUNT>
+13
+
+>  <PUBCHEM_ATOM_DEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_ATOM_UDEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_BOND_DEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_BOND_UDEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_ISOTOPIC_ATOM_COUNT>
+0
+
+>  <PUBCHEM_COMPONENT_COUNT>
+1
+
+>  <PUBCHEM_CACTVS_TAUTO_COUNT>
+1
+
+>  <PUBCHEM_COORDINATE_TYPE>
+1
+5
+255
+
+>  <PUBCHEM_BONDANNOTATIONS>
+5  6  8
+5  7  8
+6  8  8
+7  9  8
+8  10  8
+9  10  8
+
+$$$$
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ob_convert_on_CID2244.smi	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,1 @@
+CC(=O)Oc1ccccc1C(=O)O	2244
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ob_depiction_svg_on_8_mol.svg	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,580 @@
+<?xml version="1.0"?>
+<svg version="1.1" id="topsvg"
+xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+xmlns:cml="http://www.xml-cml.org/schema" x="0" y="0" width="100%" height="100%" viewBox="0 0 100 100">
+<title>Multiple Molecules - Open Babel Depiction</title>
+<rect x="0" y="0" width="100" height="100" fill="white"/>
+<g transform="translate(0,0)">
+<svg width="33.3333" height="33.3333" x="0" y="0" viewBox="0 0 300 258.564"
+font-family="sans-serif" stroke="rgb(0,0,0)" stroke-width="4"  stroke-linecap="round">
+<line x1="103.0" y1="191.6" x2="103.0" y2="205.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="97.0" y1="191.6" x2="97.0" y2="205.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="112.8" y1="182.5" x2="124.9" y2="189.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="109.8" y1="187.7" x2="121.9" y2="194.7" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="180.0" y1="109.3" x2="207.0" y2="109.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="223.0" y1="122.3" x2="223.0" y2="136.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="217.0" y1="122.3" x2="217.0" y2="136.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="233.0" y1="106.3" x2="247.0" y2="106.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="233.0" y1="112.3" x2="247.0" y2="112.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="220.0" y1="96.3" x2="220.0" y2="82.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="160.0" y1="74.6" x2="173.5" y2="51.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="180.0" y1="109.3" x2="160.0" y2="143.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="160.0" y1="143.9" x2="120.0" y2="143.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="154.0" y1="136.7" x2="126.0" y2="136.7" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="120.0" y1="143.9" x2="100.0" y2="109.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="100.0" y1="109.3" x2="120.0" y2="74.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="109.2" y1="107.7" x2="123.2" y2="83.4" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="120.0" y1="74.6" x2="160.0" y2="74.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="160.0" y1="74.6" x2="180.0" y2="109.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="156.8" y1="83.4" x2="170.8" y2="107.7" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="120.0" y1="143.9" x2="106.5" y2="167.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="87.0" y1="178.6" x2="73.0" y2="178.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="53.5" y1="167.3" x2="40.0" y2="143.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="40.0" y1="143.9" x2="53.5" y2="120.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="73.0" y1="109.3" x2="100.0" y2="109.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<text x="94.000000" y="186.564065" fill="rgb(178,178,0)"  stroke="rgb(178,178,0)" stroke-width="1" font-size="16" >S</text>
+<text x="174.000000" y="48.000000" fill="rgb(30,239,30)"  stroke="rgb(30,239,30)" stroke-width="1" font-size="16" >Cl</text>
+<text x="216.000000" y="77.282032" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >NH</text>
+<text x="240.000000" y="80.962032" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="13" >2</text>
+<text x="254.000000" y="117.282032" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="214.000000" y="157.282032" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="214.000000" y="117.282032" fill="rgb(178,178,0)"  stroke="rgb(178,178,0)" stroke-width="1" font-size="16" >S</text>
+<text x="54.000000" y="186.564065" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >N</text>
+<text x="54.000000" y="202.564065" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >H</text>
+<text x="128.641016" y="206.564065" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="94.000000" y="226.564065" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="54.000000" y="117.282032" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >N</text>
+<text x="54.000000" y="101.282032" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >H</text>
+</svg>
+</g>
+<text text-anchor="middle" font-size="2.000000" fill ="black" font-family="sans-serif"
+x="16.666667" y="32.666667" ></text>
+<g transform="translate(33.333333,0.000000)">
+<svg width="33.333333" height="33.333333" x="0" y="0" viewBox="0 0 316.512123 300.000000"
+font-family="sans-serif" stroke="rgb(0,0,0)" stroke-width="4.000000"  stroke-linecap="round">
+<line x1="103.3" y1="240.0" x2="137.9" y2="260.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="137.9" y1="260.0" x2="161.3" y2="246.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="172.6" y1="227.0" x2="172.6" y2="200.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="207.2" y1="180.0" x2="241.9" y2="200.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="244.9" y1="200.0" x2="244.9" y2="227.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="238.9" y1="200.0" x2="238.9" y2="227.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="241.9" y1="200.0" x2="265.3" y2="186.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="172.6" y1="120.0" x2="172.6" y2="93.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="185.6" y1="77.0" x2="199.6" y2="77.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="185.6" y1="83.0" x2="199.6" y2="83.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="169.6" y1="67.0" x2="169.6" y2="53.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="175.6" y1="67.0" x2="175.6" y2="53.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="159.6" y1="80.0" x2="145.6" y2="80.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="137.9" y1="140.0" x2="114.6" y2="126.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="100.5" y1="213.1" x2="103.3" y2="240.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="103.3" y1="240.0" x2="66.8" y2="256.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="94.9" y1="235.9" x2="69.3" y2="247.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="66.8" y1="256.3" x2="40.0" y2="226.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="40.0" y1="226.5" x2="60.0" y2="191.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="49.2" y1="224.9" x2="63.2" y2="200.7" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="60.0" y1="191.9" x2="86.4" y2="197.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="137.9" y1="140.0" x2="172.6" y2="120.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="146.7" y1="143.2" x2="171.0" y2="129.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="172.6" y1="120.0" x2="207.2" y2="140.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="207.2" y1="140.0" x2="207.2" y2="180.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="200.0" y1="146.0" x2="200.0" y2="174.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="207.2" y1="180.0" x2="172.6" y2="200.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="172.6" y1="200.0" x2="137.9" y2="180.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="171.0" y1="190.8" x2="146.7" y2="176.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="137.9" y1="180.0" x2="137.9" y2="140.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<text x="85.307043" y="128.000000" fill="rgb(30,239,30)"  stroke="rgb(30,239,30)" stroke-width="1" font-size="16" >Cl</text>
+<text x="106.589075" y="88.000000" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >H</text>
+<text x="118.589075" y="91.680000" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="13" >2</text>
+<text x="125.089075" y="88.000000" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >N</text>
+<text x="166.589075" y="48.000000" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="206.589075" y="88.000000" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="166.589075" y="88.000000" fill="rgb(178,178,0)"  stroke="rgb(178,178,0)" stroke-width="1" font-size="16" >S</text>
+<text x="270.512123" y="188.000000" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >OH</text>
+<text x="235.871107" y="248.000000" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="166.589075" y="248.000000" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >NH</text>
+<text x="93.125904" y="208.219124" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+</svg>
+</g>
+<text text-anchor="middle" font-size="2.000000" fill ="black" font-family="sans-serif"
+x="50.000000" y="32.666667" ></text>
+<g transform="translate(66.666667,0.000000)">
+<svg width="33.333333" height="33.333333" x="0" y="0" viewBox="0 0 613.079607 387.728626"
+font-family="sans-serif" stroke="rgb(0,0,0)" stroke-width="4.000000"  stroke-linecap="round">
+<line x1="302.2" y1="297.9" x2="288.8" y2="274.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="288.8" y1="252.3" x2="302.2" y2="229.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="302.2" y1="229.2" x2="315.5" y2="252.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<polygon points="334.928001 210.255755 304.167996 232.639142 300.167157 225.711423 " stroke-width="4.000000" fill="rgb(0,0,0)"  stroke="rgb(0,0,0)" />
+<line x1="334.9" y1="210.3" x2="348.3" y2="233.4" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="302.2" y1="153.5" x2="325.3" y2="140.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="236.6" y1="115.7" x2="213.8" y2="128.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<polygon points="236.628410 115.689844 256.577475 99.549901 260.578314 106.477620 " stroke-width="4.000000" fill="rgb(0,0,0)"  stroke="rgb(0,0,0)" />
+<line x1="269.4" y1="172.4" x2="211.9" y2="205.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="296.0" y1="158.0" x2="295.2" y2="156.6" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<line x1="291.1" y1="161.6" x2="289.6" y2="159.1" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<line x1="286.2" y1="165.2" x2="284.1" y2="161.5" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<line x1="281.2" y1="168.7" x2="278.5" y2="164.0" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<line x1="276.3" y1="172.3" x2="273.0" y2="166.5" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<line x1="271.4" y1="175.9" x2="267.4" y2="169.0" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<polygon points="269.397993 172.432563 273.402573 210.263203 265.402573 210.264171 " stroke-width="4.000000" fill="rgb(0,0,0)"  stroke="rgb(0,0,0)" />
+<line x1="264.1" y1="211.1" x2="264.1" y2="209.5" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<line x1="259.8" y1="211.7" x2="259.8" y2="208.8" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<line x1="255.6" y1="212.3" x2="255.6" y2="208.2" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<line x1="251.3" y1="213.0" x2="251.3" y2="207.5" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<line x1="247.1" y1="213.6" x2="247.1" y2="206.9" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<line x1="242.8" y1="214.3" x2="242.8" y2="206.3" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<polygon points="302.167577 229.175283 267.402992 213.728031 271.402154 206.799343 " stroke-width="4.000000" fill="rgb(0,0,0)"  stroke="rgb(0,0,0)" />
+<line x1="269.4" y1="210.3" x2="249.6" y2="244.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="249.6" y1="247.6" x2="222.9" y2="247.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="249.6" y1="241.6" x2="222.9" y2="241.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="249.6" y1="244.6" x2="262.9" y2="267.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="262.9" y1="290.3" x2="249.6" y2="313.4" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="72.8" y1="96.8" x2="51.3" y2="109.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="46.5" y1="127.0" x2="58.9" y2="148.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="334.9" y1="210.3" x2="361.6" y2="210.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="381.1" y1="221.5" x2="394.5" y2="244.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="397.1" y1="246.1" x2="383.7" y2="269.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="391.9" y1="243.1" x2="378.5" y2="266.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="394.5" y1="244.6" x2="434.2" y2="244.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="493.7" y1="279.0" x2="507.0" y2="302.1" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="507.0" y1="324.6" x2="493.7" y2="347.7" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="513.5" y1="244.6" x2="540.2" y2="244.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="559.7" y1="255.9" x2="573.1" y2="279.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="493.7" y1="210.2" x2="507.0" y2="187.1" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="526.5" y1="175.9" x2="553.2" y2="175.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="138.3" y1="96.8" x2="138.3" y2="58.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="145.5" y1="90.8" x2="145.5" y2="64.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="138.3" y1="58.9" x2="203.8" y2="58.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="203.8" y1="58.9" x2="203.8" y2="96.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="196.6" y1="64.9" x2="196.6" y2="90.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="203.8" y1="96.8" x2="182.3" y2="109.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="159.8" y1="109.2" x2="138.3" y2="96.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="72.8" y1="96.8" x2="72.8" y2="58.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="72.8" y1="58.9" x2="105.5" y2="40.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="81.6" y1="62.2" x2="103.9" y2="49.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="105.5" y1="40.0" x2="138.3" y2="58.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="138.3" y1="96.8" x2="105.5" y2="115.7" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="105.5" y1="115.7" x2="72.8" y2="96.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="103.9" y1="106.5" x2="81.6" y2="93.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="493.7" y1="210.2" x2="513.5" y2="244.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="490.5" y1="219.0" x2="504.3" y2="243.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="513.5" y1="244.6" x2="493.7" y2="279.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="493.7" y1="279.0" x2="454.0" y2="279.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="487.7" y1="271.8" x2="460.0" y2="271.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="454.0" y1="279.0" x2="434.2" y2="244.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="434.2" y1="244.6" x2="454.0" y2="210.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="443.4" y1="243.0" x2="457.2" y2="219.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="454.0" y1="210.2" x2="493.7" y2="210.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="334.9" y1="172.4" x2="302.2" y2="153.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="302.2" y1="153.5" x2="269.4" y2="172.4" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="269.4" y1="172.4" x2="269.4" y2="210.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="269.4" y1="210.3" x2="302.2" y2="229.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="302.2" y1="229.2" x2="334.9" y2="210.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="334.9" y1="210.3" x2="334.9" y2="172.4" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="203.8" y1="96.8" x2="236.6" y2="115.7" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="236.6" y1="115.7" x2="258.1" y2="103.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="269.4" y1="83.8" x2="269.4" y2="58.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="269.4" y1="58.9" x2="236.6" y2="40.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="236.6" y1="40.0" x2="203.8" y2="58.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="236.6" y1="115.7" x2="236.6" y2="153.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="236.6" y1="153.5" x2="269.4" y2="172.4" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="302.2" y1="153.5" x2="302.2" y2="115.7" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="302.2" y1="115.7" x2="280.6" y2="103.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<text x="165.085607" y="123.693811" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >N</text>
+<text x="165.085607" y="139.693811" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >H</text>
+<text x="34.000000" y="123.701745" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="368.618548" y="218.250951" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="368.626870" y="286.996995" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="507.547947" y="321.353201" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="547.230172" y="252.602352" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="507.531303" y="183.861112" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="276.326464" y="271.550707" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="316.017011" y="271.545903" fill="rgb(191,191,191)"  stroke="rgb(191,191,191)" stroke-width="1" font-size="16" >H</text>
+<text x="348.777436" y="252.626375" fill="rgb(191,191,191)"  stroke="rgb(191,191,191)" stroke-width="1" font-size="16" >H</text>
+<text x="330.529038" y="141.663601" fill="rgb(191,191,191)"  stroke="rgb(191,191,191)" stroke-width="1" font-size="16" >H</text>
+<text x="263.388835" y="104.770316" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >N</text>
+<text x="196.567443" y="143.360450" fill="rgb(191,191,191)"  stroke="rgb(191,191,191)" stroke-width="1" font-size="16" >H</text>
+<text x="194.656753" y="220.131433" fill="rgb(191,191,191)"  stroke="rgb(191,191,191)" stroke-width="1" font-size="16" >H</text>
+<text x="223.712026" y="218.268492" fill="rgb(191,191,191)"  stroke="rgb(191,191,191)" stroke-width="1" font-size="16" >H</text>
+<text x="203.870913" y="252.643916" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="263.410895" y="287.009732" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+</svg>
+</g>
+<text text-anchor="middle" font-size="2.000000" fill ="black" font-family="sans-serif"
+x="83.333333" y="32.666667" ></text>
+<g transform="translate(0.000000,33.333333)">
+<svg width="33.333333" height="33.333333" x="0" y="0" viewBox="0 0 873.079607 387.728626"
+font-family="sans-serif" stroke="rgb(0,0,0)" stroke-width="4.000000"  stroke-linecap="round">
+<line x1="302.2" y1="297.9" x2="288.8" y2="274.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="288.8" y1="252.3" x2="302.2" y2="229.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="302.2" y1="229.2" x2="315.5" y2="252.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<polygon points="334.928001 210.255755 304.167996 232.639142 300.167157 225.711423 " stroke-width="4.000000" fill="rgb(0,0,0)"  stroke="rgb(0,0,0)" />
+<line x1="334.9" y1="210.3" x2="348.3" y2="233.4" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="302.2" y1="153.5" x2="325.3" y2="140.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="236.6" y1="115.7" x2="213.8" y2="128.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<polygon points="236.628410 115.689844 256.577475 99.549901 260.578314 106.477620 " stroke-width="4.000000" fill="rgb(0,0,0)"  stroke="rgb(0,0,0)" />
+<line x1="269.4" y1="172.4" x2="211.9" y2="205.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="296.0" y1="158.0" x2="295.2" y2="156.6" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<line x1="291.1" y1="161.6" x2="289.6" y2="159.1" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<line x1="286.2" y1="165.2" x2="284.1" y2="161.5" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<line x1="281.2" y1="168.7" x2="278.5" y2="164.0" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<line x1="276.3" y1="172.3" x2="273.0" y2="166.5" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<line x1="271.4" y1="175.9" x2="267.4" y2="169.0" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<polygon points="269.397993 172.432563 273.402573 210.263203 265.402573 210.264171 " stroke-width="4.000000" fill="rgb(0,0,0)"  stroke="rgb(0,0,0)" />
+<line x1="264.1" y1="211.1" x2="264.1" y2="209.5" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<line x1="259.8" y1="211.7" x2="259.8" y2="208.8" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<line x1="255.6" y1="212.3" x2="255.6" y2="208.2" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<line x1="251.3" y1="213.0" x2="251.3" y2="207.5" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<line x1="247.1" y1="213.6" x2="247.1" y2="206.9" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<line x1="242.8" y1="214.3" x2="242.8" y2="206.3" stroke="rgb(0,0,0)"  stroke-width="1.0"/>
+<polygon points="302.167577 229.175283 267.402992 213.728031 271.402154 206.799343 " stroke-width="4.000000" fill="rgb(0,0,0)"  stroke="rgb(0,0,0)" />
+<line x1="269.4" y1="210.3" x2="249.6" y2="244.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="249.6" y1="247.6" x2="222.9" y2="247.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="249.6" y1="241.6" x2="222.9" y2="241.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="249.6" y1="244.6" x2="262.9" y2="267.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="262.9" y1="290.3" x2="249.6" y2="313.4" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="72.8" y1="96.8" x2="51.3" y2="109.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="40.0" y1="128.7" x2="40.0" y2="153.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="334.9" y1="210.3" x2="361.6" y2="210.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="381.1" y1="221.5" x2="394.5" y2="244.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="397.1" y1="246.1" x2="383.7" y2="269.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="391.9" y1="243.1" x2="378.5" y2="266.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="394.5" y1="244.6" x2="434.2" y2="244.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="493.7" y1="279.0" x2="507.0" y2="302.1" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="507.0" y1="324.6" x2="493.7" y2="347.7" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="513.5" y1="244.6" x2="540.2" y2="244.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="559.7" y1="255.9" x2="573.1" y2="279.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="493.7" y1="210.2" x2="507.0" y2="187.1" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="526.5" y1="175.9" x2="553.2" y2="175.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="676.1" y1="191.6" x2="676.1" y2="205.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="670.1" y1="191.6" x2="670.1" y2="205.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="685.8" y1="182.5" x2="698.0" y2="189.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="682.8" y1="187.7" x2="695.0" y2="194.7" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="753.1" y1="109.3" x2="780.1" y2="109.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="796.1" y1="122.3" x2="796.1" y2="136.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="790.1" y1="122.3" x2="790.1" y2="136.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="806.1" y1="106.3" x2="820.1" y2="106.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="806.1" y1="112.3" x2="820.1" y2="112.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="793.1" y1="96.3" x2="793.1" y2="82.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="733.1" y1="74.6" x2="746.6" y2="51.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="138.3" y1="96.8" x2="138.3" y2="58.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="145.5" y1="90.8" x2="145.5" y2="64.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="138.3" y1="58.9" x2="203.8" y2="58.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="203.8" y1="58.9" x2="203.8" y2="96.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="196.6" y1="64.9" x2="196.6" y2="90.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="203.8" y1="96.8" x2="182.3" y2="109.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="159.8" y1="109.2" x2="138.3" y2="96.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="72.8" y1="96.8" x2="72.8" y2="58.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="72.8" y1="58.9" x2="105.5" y2="40.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="81.6" y1="62.2" x2="103.9" y2="49.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="105.5" y1="40.0" x2="138.3" y2="58.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="138.3" y1="96.8" x2="105.5" y2="115.7" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="105.5" y1="115.7" x2="72.8" y2="96.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="103.9" y1="106.5" x2="81.6" y2="93.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="493.7" y1="210.2" x2="513.5" y2="244.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="490.5" y1="219.0" x2="504.3" y2="243.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="513.5" y1="244.6" x2="493.7" y2="279.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="493.7" y1="279.0" x2="454.0" y2="279.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="487.7" y1="271.8" x2="460.0" y2="271.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="454.0" y1="279.0" x2="434.2" y2="244.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="434.2" y1="244.6" x2="454.0" y2="210.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="443.4" y1="243.0" x2="457.2" y2="219.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="454.0" y1="210.2" x2="493.7" y2="210.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="753.1" y1="109.3" x2="733.1" y2="143.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="733.1" y1="143.9" x2="693.1" y2="143.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="727.1" y1="136.7" x2="699.1" y2="136.7" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="693.1" y1="143.9" x2="673.1" y2="109.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="673.1" y1="109.3" x2="693.1" y2="74.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="682.3" y1="107.7" x2="696.3" y2="83.4" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="693.1" y1="74.6" x2="733.1" y2="74.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="733.1" y1="74.6" x2="753.1" y2="109.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="729.8" y1="83.4" x2="743.8" y2="107.7" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="334.9" y1="172.4" x2="302.2" y2="153.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="302.2" y1="153.5" x2="269.4" y2="172.4" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="269.4" y1="172.4" x2="269.4" y2="210.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="269.4" y1="210.3" x2="302.2" y2="229.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="302.2" y1="229.2" x2="334.9" y2="210.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="334.9" y1="210.3" x2="334.9" y2="172.4" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="203.8" y1="96.8" x2="236.6" y2="115.7" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="236.6" y1="115.7" x2="258.1" y2="103.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="269.4" y1="83.8" x2="269.4" y2="58.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="269.4" y1="58.9" x2="236.6" y2="40.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="236.6" y1="40.0" x2="203.8" y2="58.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="236.6" y1="115.7" x2="236.6" y2="153.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="236.6" y1="153.5" x2="269.4" y2="172.4" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="302.2" y1="153.5" x2="302.2" y2="115.7" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="302.2" y1="115.7" x2="280.6" y2="103.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="693.1" y1="143.9" x2="679.6" y2="167.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="660.1" y1="178.6" x2="646.1" y2="178.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="626.6" y1="167.3" x2="613.1" y2="143.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="613.1" y1="143.9" x2="626.6" y2="120.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="646.1" y1="109.3" x2="673.1" y2="109.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<text x="507.531303" y="183.861112" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="547.230172" y="252.602352" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="507.547947" y="321.353201" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="368.626870" y="286.996995" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="368.618548" y="218.250951" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="667.079607" y="186.564065" fill="rgb(178,178,0)"  stroke="rgb(178,178,0)" stroke-width="1" font-size="16" >S</text>
+<text x="747.079607" y="48.000000" fill="rgb(30,239,30)"  stroke="rgb(30,239,30)" stroke-width="1" font-size="16" >Cl</text>
+<text x="789.079607" y="77.282032" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >NH</text>
+<text x="813.079607" y="80.962032" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="13" >2</text>
+<text x="827.079607" y="117.282032" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="787.079607" y="157.282032" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="787.079607" y="117.282032" fill="rgb(178,178,0)"  stroke="rgb(178,178,0)" stroke-width="1" font-size="16" >S</text>
+<text x="627.079607" y="186.564065" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >N</text>
+<text x="627.079607" y="202.564065" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >H</text>
+<text x="701.720623" y="206.564065" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="667.079607" y="226.564065" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="34.000000" y="123.701745" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="627.079607" y="117.282032" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >N</text>
+<text x="627.079607" y="101.282032" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >H</text>
+<text x="330.529038" y="141.663601" fill="rgb(191,191,191)"  stroke="rgb(191,191,191)" stroke-width="1" font-size="16" >H</text>
+<text x="196.567443" y="143.360450" fill="rgb(191,191,191)"  stroke="rgb(191,191,191)" stroke-width="1" font-size="16" >H</text>
+<text x="263.388835" y="104.770316" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >N</text>
+<text x="348.777436" y="252.626375" fill="rgb(191,191,191)"  stroke="rgb(191,191,191)" stroke-width="1" font-size="16" >H</text>
+<text x="316.017011" y="271.545903" fill="rgb(191,191,191)"  stroke="rgb(191,191,191)" stroke-width="1" font-size="16" >H</text>
+<text x="276.326464" y="271.550707" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="194.656753" y="220.131433" fill="rgb(191,191,191)"  stroke="rgb(191,191,191)" stroke-width="1" font-size="16" >H</text>
+<text x="223.712026" y="218.268492" fill="rgb(191,191,191)"  stroke="rgb(191,191,191)" stroke-width="1" font-size="16" >H</text>
+<text x="203.870913" y="252.643916" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="263.410895" y="287.009732" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="165.085607" y="123.693811" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >N</text>
+<text x="165.085607" y="139.693811" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >H</text>
+</svg>
+</g>
+<text text-anchor="middle" font-size="2.000000" fill ="black" font-family="sans-serif"
+x="16.666667" y="66.000000" ></text>
+<g transform="translate(33.333333,33.333333)">
+<svg width="33.333333" height="33.333333" x="0" y="0" viewBox="0 0 434.949602 372.296837"
+font-family="sans-serif" stroke="rgb(0,0,0)" stroke-width="4.000000"  stroke-linecap="round">
+<line x1="310.3" y1="332.3" x2="299.9" y2="293.7" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="299.9" y1="293.7" x2="261.3" y2="283.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="132.7" y1="166.5" x2="109.3" y2="180.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="290.3" y1="244.1" x2="316.7" y2="238.4" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="261.3" y1="283.3" x2="243.5" y2="319.1" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="243.5" y1="319.1" x2="203.5" y2="321.6" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="213.2" y1="160.0" x2="247.8" y2="180.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="247.8" y1="180.0" x2="247.8" y2="220.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="240.6" y1="186.0" x2="240.6" y2="214.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="247.8" y1="220.0" x2="213.2" y2="240.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="213.2" y1="240.0" x2="178.6" y2="220.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="178.6" y1="220.0" x2="178.6" y2="180.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="185.8" y1="214.0" x2="185.8" y2="186.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="178.6" y1="180.0" x2="213.2" y2="160.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="109.3" y1="60.0" x2="143.9" y2="40.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="118.1" y1="63.2" x2="142.3" y2="49.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="143.9" y1="40.0" x2="178.6" y2="60.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="178.6" y1="60.0" x2="178.6" y2="100.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="171.4" y1="66.0" x2="171.4" y2="94.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="178.6" y1="100.0" x2="143.9" y2="120.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="143.9" y1="120.0" x2="109.3" y2="100.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="142.3" y1="110.8" x2="118.1" y2="96.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="109.3" y1="100.0" x2="109.3" y2="60.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="178.6" y1="100.0" x2="201.9" y2="113.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="213.2" y1="133.2" x2="213.2" y2="160.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="206.0" y1="135.2" x2="206.0" y2="154.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="178.6" y1="180.0" x2="155.2" y2="166.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="143.9" y1="147.0" x2="143.9" y2="120.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="74.6" y1="240.0" x2="40.0" y2="220.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="73.0" y1="230.8" x2="48.8" y2="216.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="40.0" y1="220.0" x2="40.0" y2="180.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="40.0" y1="180.0" x2="74.6" y2="160.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="48.8" y1="183.2" x2="73.0" y2="169.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="74.6" y1="160.0" x2="109.3" y2="180.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="109.3" y1="180.0" x2="109.3" y2="220.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="102.1" y1="186.0" x2="102.1" y2="214.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="109.3" y1="220.0" x2="74.6" y2="240.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="368.2" y1="192.1" x2="394.9" y2="221.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="366.8" y1="201.4" x2="385.6" y2="222.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="394.9" y1="221.8" x2="382.6" y2="259.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="382.6" y1="259.9" x2="343.5" y2="268.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="375.2" y1="254.1" x2="347.8" y2="259.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="343.5" y1="268.2" x2="316.7" y2="238.4" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="316.7" y1="238.4" x2="329.1" y2="200.4" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="325.4" y1="235.0" x2="334.1" y2="208.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="329.1" y1="200.4" x2="368.2" y2="192.1" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="247.8" y1="220.0" x2="267.9" y2="238.1" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="272.3" y1="258.6" x2="261.3" y2="283.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="261.3" y1="283.3" x2="234.5" y2="280.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="218.8" y1="266.2" x2="213.2" y2="240.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="225.4" y1="262.8" x2="221.5" y2="244.4" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<text x="271.571890" y="254.765224" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >N</text>
+<text x="137.923048" y="168.000000" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >N</text>
+<text x="207.205081" y="128.000000" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >N</text>
+<text x="215.521548" y="287.125904" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >N</text>
+</svg>
+</g>
+<text text-anchor="middle" font-size="2.000000" fill ="black" font-family="sans-serif"
+x="50.000000" y="66.000000" ></text>
+<g transform="translate(66.666667,33.333333)">
+<svg width="33.333333" height="33.333333" x="0" y="0" viewBox="0 0 434.949602 372.296837"
+font-family="sans-serif" stroke="rgb(0,0,0)" stroke-width="4.000000"  stroke-linecap="round">
+<line x1="310.3" y1="332.3" x2="299.9" y2="293.7" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="299.9" y1="293.7" x2="261.3" y2="283.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="132.7" y1="166.5" x2="109.3" y2="180.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="290.3" y1="244.1" x2="316.7" y2="238.4" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="261.3" y1="283.3" x2="243.5" y2="319.1" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="213.2" y1="160.0" x2="247.8" y2="180.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="247.8" y1="180.0" x2="247.8" y2="220.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="240.6" y1="186.0" x2="240.6" y2="214.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="247.8" y1="220.0" x2="213.2" y2="240.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="213.2" y1="240.0" x2="178.6" y2="220.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="178.6" y1="220.0" x2="178.6" y2="180.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="185.8" y1="214.0" x2="185.8" y2="186.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="178.6" y1="180.0" x2="213.2" y2="160.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="109.3" y1="60.0" x2="143.9" y2="40.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="118.1" y1="63.2" x2="142.3" y2="49.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="143.9" y1="40.0" x2="178.6" y2="60.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="178.6" y1="60.0" x2="178.6" y2="100.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="171.4" y1="66.0" x2="171.4" y2="94.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="178.6" y1="100.0" x2="143.9" y2="120.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="143.9" y1="120.0" x2="109.3" y2="100.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="142.3" y1="110.8" x2="118.1" y2="96.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="109.3" y1="100.0" x2="109.3" y2="60.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="178.6" y1="100.0" x2="201.9" y2="113.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="213.2" y1="133.2" x2="213.2" y2="160.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="206.0" y1="135.2" x2="206.0" y2="154.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="178.6" y1="180.0" x2="155.2" y2="166.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="143.9" y1="147.0" x2="143.9" y2="120.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="74.6" y1="240.0" x2="40.0" y2="220.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="73.0" y1="230.8" x2="48.8" y2="216.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="40.0" y1="220.0" x2="40.0" y2="180.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="40.0" y1="180.0" x2="74.6" y2="160.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="48.8" y1="183.2" x2="73.0" y2="169.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="74.6" y1="160.0" x2="109.3" y2="180.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="109.3" y1="180.0" x2="109.3" y2="220.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="102.1" y1="186.0" x2="102.1" y2="214.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="109.3" y1="220.0" x2="74.6" y2="240.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="368.2" y1="192.1" x2="394.9" y2="221.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="366.8" y1="201.4" x2="385.6" y2="222.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="394.9" y1="221.8" x2="382.6" y2="259.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="382.6" y1="259.9" x2="343.5" y2="268.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="375.2" y1="254.1" x2="347.8" y2="259.9" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="343.5" y1="268.2" x2="316.7" y2="238.4" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="316.7" y1="238.4" x2="329.1" y2="200.4" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="325.4" y1="235.0" x2="334.1" y2="208.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="329.1" y1="200.4" x2="368.2" y2="192.1" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="247.8" y1="220.0" x2="267.9" y2="238.1" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="272.3" y1="258.6" x2="261.3" y2="283.3" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="261.3" y1="283.3" x2="234.5" y2="280.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="218.8" y1="266.2" x2="213.2" y2="240.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="225.4" y1="262.8" x2="221.5" y2="244.4" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<text x="271.571890" y="254.765224" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >N</text>
+<text x="137.923048" y="168.000000" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >N</text>
+<text x="207.205081" y="128.000000" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >N</text>
+<text x="215.521548" y="287.125904" fill="rgb(12,12,255)"  stroke="rgb(12,12,255)" stroke-width="1" font-size="16" >N</text>
+</svg>
+</g>
+<text text-anchor="middle" font-size="2.000000" fill ="black" font-family="sans-serif"
+x="83.333333" y="66.000000" ></text>
+<g transform="translate(0.000000,66.666667)">
+<svg width="33.333333" height="33.333333" x="0" y="0" viewBox="0 0 253.205081 260.000000"
+font-family="sans-serif" stroke="rgb(0,0,0)" stroke-width="4.000000"  stroke-linecap="round">
+<line x1="40.0" y1="160.0" x2="74.6" y2="180.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="77.6" y1="180.0" x2="77.6" y2="207.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="71.6" y1="180.0" x2="71.6" y2="207.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="74.6" y1="180.0" x2="98.0" y2="166.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="109.3" y1="147.0" x2="109.3" y2="120.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="143.9" y1="100.0" x2="178.6" y2="120.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="181.6" y1="120.0" x2="181.6" y2="147.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="175.6" y1="120.0" x2="175.6" y2="147.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="178.6" y1="120.0" x2="201.9" y2="106.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="74.6" y1="60.0" x2="109.3" y2="40.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="83.4" y1="63.2" x2="107.7" y2="49.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="109.3" y1="40.0" x2="143.9" y2="60.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="143.9" y1="60.0" x2="143.9" y2="100.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="136.7" y1="66.0" x2="136.7" y2="94.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="143.9" y1="100.0" x2="109.3" y2="120.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="109.3" y1="120.0" x2="74.6" y2="100.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="107.7" y1="110.8" x2="83.4" y2="96.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="74.6" y1="100.0" x2="74.6" y2="60.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<text x="68.641016" y="228.000000" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="103.282032" y="168.000000" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="172.564065" y="168.000000" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="218.005081" y="85.888000" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >_</text>
+<text x="207.205081" y="108.000000" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+</svg>
+</g>
+<text text-anchor="middle" font-size="2.000000" fill ="black" font-family="sans-serif"
+x="16.666667" y="99.333333" ></text>
+<g transform="translate(33.333333,66.666667)">
+<svg width="33.333333" height="33.333333" x="0" y="0" viewBox="0 0 253.205081 260.000000"
+font-family="sans-serif" stroke="rgb(0,0,0)" stroke-width="4.000000"  stroke-linecap="round">
+<line x1="40.0" y1="160.0" x2="74.6" y2="180.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="77.6" y1="180.0" x2="77.6" y2="207.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="71.6" y1="180.0" x2="71.6" y2="207.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="74.6" y1="180.0" x2="98.0" y2="166.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="109.3" y1="147.0" x2="109.3" y2="120.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="143.9" y1="100.0" x2="178.6" y2="120.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="181.6" y1="120.0" x2="181.6" y2="147.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="175.6" y1="120.0" x2="175.6" y2="147.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="178.6" y1="120.0" x2="201.9" y2="106.5" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="74.6" y1="60.0" x2="109.3" y2="40.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="83.4" y1="63.2" x2="107.7" y2="49.2" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="109.3" y1="40.0" x2="143.9" y2="60.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="143.9" y1="60.0" x2="143.9" y2="100.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="136.7" y1="66.0" x2="136.7" y2="94.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="143.9" y1="100.0" x2="109.3" y2="120.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="109.3" y1="120.0" x2="74.6" y2="100.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="107.7" y1="110.8" x2="83.4" y2="96.8" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<line x1="74.6" y1="100.0" x2="74.6" y2="60.0" stroke="rgb(0,0,0)"  stroke-width="4.0"/>
+<text x="68.641016" y="228.000000" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="103.282032" y="168.000000" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="172.564065" y="168.000000" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+<text x="218.005081" y="85.888000" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >_</text>
+<text x="207.205081" y="108.000000" fill="rgb(255,12,12)"  stroke="rgb(255,12,12)" stroke-width="1" font-size="16" >O</text>
+</svg>
+</g>
+<text text-anchor="middle" font-size="2.000000" fill ="black" font-family="sans-serif"
+x="50.000000" y="99.333333" ></text>
+<script type="text/ecmascript">
+  <![CDATA[
+    var svgEl = document.getElementById("topsvg");
+    svgEl.addEventListener('DOMMouseScroll', wheel, false);
+    svgEl.addEventListener('mousewheel', wheel, false);
+    var startx=0;
+    var starty=0;
+    function wheel(evt){
+      evt = evt ? evt : window.event;
+      var normal = evt.detail ? evt.detail * -1 : evt.wheelDelta / 40;
+      var vb = new Array(4);
+      var vbtext = svgEl.getAttributeNS(null,"viewBox");
+      vb = vbtext.split(" ");
+      var zoom = (normal<0)? 1.41 : 0.71;
+      //var dwidth = parseFloat(Math.max(vb[2],vb[3])) * (1-zoom);
+      vb[0] = parseFloat(vb[0]) + parseFloat(vb[2])*(1-zoom) * evt.clientX/innerWidth;
+      vb[1] = parseFloat(vb[1]) + parseFloat(vb[3])*(1-zoom) * evt.clientY/innerHeight;
+      vb[2] = parseFloat(vb[2]) * zoom;
+      vb[3] = parseFloat(vb[3]) * zoom;
+      svgEl.setAttributeNS(null, "viewBox", vb.join(" "));
+      if (evt.preventDefault)
+        evt.preventDefault(); // Don't scroll the page when zooming
+    }
+   svgEl.onmousedown = function(evt) {
+      startx = evt.clientX;
+      starty = evt.clientY;
+    }
+    svgEl.onmousemove=function(evt) {
+      if(startx!=0 && starty!=0 
+        && ((evt.clientX - startx)*(evt.clientX - startx)+(evt.clientY - starty)*(evt.clientY - starty)>100))
+      {
+        var vbtext = svgEl.getAttributeNS(null,"viewBox");
+        vb = vbtext.split(" ");
+        var maxwh = Math.max(parseFloat(vb[2]),parseFloat(vb[3]));
+        vb[0] = parseFloat(vb[0]) - (evt.clientX - startx)*maxwh/innerWidth;
+        vb[1] = parseFloat(vb[1]) - (evt.clientY - starty)*maxwh/innerHeight;
+        svgEl.setAttributeNS(null, "viewBox", vb.join(" "));
+        startx = evt.clientX;
+        starty = evt.clientY;
+      }
+    } 
+    svgEl.onmouseup=function() {
+      startx=0;
+      starty=0;
+    }
+    svgEl.ondblclick=function() {
+      location.reload();
+    }
+  ]]>
+</script>
+
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ob_filter_on_CID2244.sdf	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,154 @@
+2244
+ OpenBabel07101213142D
+
+ 21 21  0  0  0  0  0  0  0  0999 V2000
+    3.7320   -0.0600    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301    1.4400    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981    1.4400    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    2.8660   -1.5600    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -0.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981   -1.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -2.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301   -1.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641    0.9400    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.8660   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.0000   -0.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    4.0611   -1.8700    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.8671   -0.2500    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -2.6800    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.8671   -1.8700    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    2.3100    0.4769    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    1.4631    0.2500    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    1.6900   -0.5969    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301    2.0600    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+  1  5  1  0  0  0  0
+  1 12  1  0  0  0  0
+  2 11  1  0  0  0  0
+  2 21  1  0  0  0  0
+  3 11  2  0  0  0  0
+  4 12  2  0  0  0  0
+  5  6  1  0  0  0  0
+  5  7  2  0  0  0  0
+  6  8  2  0  0  0  0
+  6 11  1  0  0  0  0
+  7  9  1  0  0  0  0
+  7 14  1  0  0  0  0
+  8 10  1  0  0  0  0
+  8 15  1  0  0  0  0
+  9 10  2  0  0  0  0
+  9 16  1  0  0  0  0
+ 10 17  1  0  0  0  0
+ 12 13  1  0  0  0  0
+ 13 18  1  0  0  0  0
+ 13 19  1  0  0  0  0
+ 13 20  1  0  0  0  0
+M  END
+>  <PUBCHEM_COMPOUND_CID>
+2244
+
+>  <PUBCHEM_COMPOUND_CANONICALIZED>
+1
+
+>  <PUBCHEM_CACTVS_COMPLEXITY>
+212
+
+>  <PUBCHEM_CACTVS_HBOND_ACCEPTOR>
+4
+
+>  <PUBCHEM_CACTVS_HBOND_DONOR>
+1
+
+>  <PUBCHEM_CACTVS_ROTATABLE_BOND>
+3
+
+>  <PUBCHEM_CACTVS_SUBSKEYS>
+AAADccBwOAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAABAAAAGgAACAAADASAmAAyDoAABgCIAiDSCAACCAAkIAAIiAEGCMgMJzaENRqCe2Cl4BEIuYeIyCCOAAAAAAAIAAAAAAAAABAAAAAAAAAAAA==
+
+>  <PUBCHEM_IUPAC_OPENEYE_NAME>
+2-acetoxybenzoic acid
+
+>  <PUBCHEM_IUPAC_CAS_NAME>
+2-acetyloxybenzoic acid
+
+>  <PUBCHEM_IUPAC_NAME>
+2-acetyloxybenzoic acid
+
+>  <PUBCHEM_IUPAC_SYSTEMATIC_NAME>
+2-acetyloxybenzoic acid
+
+>  <PUBCHEM_IUPAC_TRADITIONAL_NAME>
+2-acetoxybenzoic acid
+
+>  <PUBCHEM_IUPAC_INCHI>
+InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2-5H,1H3,(H,11,12)
+
+>  <PUBCHEM_IUPAC_INCHIKEY>
+BSYNRYMUTXBXSQ-UHFFFAOYSA-N
+
+>  <PUBCHEM_XLOGP3>
+1.2
+
+>  <PUBCHEM_EXACT_MASS>
+180.042259
+
+>  <PUBCHEM_MOLECULAR_FORMULA>
+C9H8O4
+
+>  <PUBCHEM_MOLECULAR_WEIGHT>
+180.15742
+
+>  <PUBCHEM_OPENEYE_CAN_SMILES>
+CC(=O)OC1=CC=CC=C1C(=O)O
+
+>  <PUBCHEM_OPENEYE_ISO_SMILES>
+CC(=O)OC1=CC=CC=C1C(=O)O
+
+>  <PUBCHEM_CACTVS_TPSA>
+63.6
+
+>  <PUBCHEM_MONOISOTOPIC_WEIGHT>
+180.042259
+
+>  <PUBCHEM_TOTAL_CHARGE>
+0
+
+>  <PUBCHEM_HEAVY_ATOM_COUNT>
+13
+
+>  <PUBCHEM_ATOM_DEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_ATOM_UDEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_BOND_DEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_BOND_UDEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_ISOTOPIC_ATOM_COUNT>
+0
+
+>  <PUBCHEM_COMPONENT_COUNT>
+1
+
+>  <PUBCHEM_CACTVS_TAUTO_COUNT>
+1
+
+>  <PUBCHEM_COORDINATE_TYPE>
+1
+5
+255
+
+>  <PUBCHEM_BONDANNOTATIONS>
+5  6  8
+5  7  8
+6  8  8
+7  9  8
+8  10  8
+9  10  8
+
+$$$$
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ob_filter_on_CID2244.smi	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,1 @@
+O(c1c(cccc1)C(=O)O)C(=O)C	2244
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ob_filter_on_CID2244_2.smi	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,1 @@
+O(c1c(cccc1)C(=O)O)C(=O)C	2244
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ob_genprop_on_CID2244.sdf	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,193 @@
+2244
+ OpenBabel05191718512D
+
+ 21 21  0  0  0  0  0  0  0  0999 V2000
+    3.7320   -0.0600    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301    1.4400    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981    1.4400    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    2.8660   -1.5600    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -0.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981   -1.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -2.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301   -1.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641    0.9400    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.8660   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.0000   -0.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    4.0611   -1.8700    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.8671   -0.2500    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -2.6800    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.8671   -1.8700    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    2.3100    0.4769    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    1.4631    0.2500    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    1.6900   -0.5969    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301    2.0600    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+  1  5  1  0  0  0  0
+  1 12  1  0  0  0  0
+  2 11  1  0  0  0  0
+  2 21  1  0  0  0  0
+  3 11  2  0  0  0  0
+  4 12  2  0  0  0  0
+  5  6  1  0  0  0  0
+  5  7  2  0  0  0  0
+  6  8  2  0  0  0  0
+  6 11  1  0  0  0  0
+  7  9  1  0  0  0  0
+  7 14  1  0  0  0  0
+  8 10  1  0  0  0  0
+  8 15  1  0  0  0  0
+  9 10  2  0  0  0  0
+  9 16  1  0  0  0  0
+ 10 17  1  0  0  0  0
+ 12 13  1  0  0  0  0
+ 13 18  1  0  0  0  0
+ 13 19  1  0  0  0  0
+ 13 20  1  0  0  0  0
+M  END
+>  <PUBCHEM_COMPOUND_CID>
+2244
+
+>  <PUBCHEM_COMPOUND_CANONICALIZED>
+1
+
+>  <PUBCHEM_CACTVS_COMPLEXITY>
+212
+
+>  <PUBCHEM_CACTVS_HBOND_ACCEPTOR>
+4
+
+>  <PUBCHEM_CACTVS_HBOND_DONOR>
+1
+
+>  <PUBCHEM_CACTVS_ROTATABLE_BOND>
+3
+
+>  <PUBCHEM_CACTVS_SUBSKEYS>
+AAADccBwOAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAABAAAAGgAACAAADASAmAAyDoAABgCIAiDSCAACCAAkIAAIiAEGCMgMJzaENRqCe2Cl4BEIuYeIyCCOAAAAAAAIAAAAAAAAABAAAAAAAAAAAA==
+
+>  <PUBCHEM_IUPAC_OPENEYE_NAME>
+2-acetoxybenzoic acid
+
+>  <PUBCHEM_IUPAC_CAS_NAME>
+2-acetyloxybenzoic acid
+
+>  <PUBCHEM_IUPAC_NAME>
+2-acetyloxybenzoic acid
+
+>  <PUBCHEM_IUPAC_SYSTEMATIC_NAME>
+2-acetyloxybenzoic acid
+
+>  <PUBCHEM_IUPAC_TRADITIONAL_NAME>
+2-acetoxybenzoic acid
+
+>  <PUBCHEM_IUPAC_INCHI>
+InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2-5H,1H3,(H,11,12)
+
+>  <PUBCHEM_IUPAC_INCHIKEY>
+BSYNRYMUTXBXSQ-UHFFFAOYSA-N
+
+>  <PUBCHEM_XLOGP3>
+1.2
+
+>  <PUBCHEM_EXACT_MASS>
+180.042259
+
+>  <PUBCHEM_MOLECULAR_FORMULA>
+C9H8O4
+
+>  <PUBCHEM_MOLECULAR_WEIGHT>
+180.15742
+
+>  <PUBCHEM_OPENEYE_CAN_SMILES>
+CC(=O)OC1=CC=CC=C1C(=O)O
+
+>  <PUBCHEM_OPENEYE_ISO_SMILES>
+CC(=O)OC1=CC=CC=C1C(=O)O
+
+>  <PUBCHEM_CACTVS_TPSA>
+63.6
+
+>  <PUBCHEM_MONOISOTOPIC_WEIGHT>
+180.042259
+
+>  <PUBCHEM_TOTAL_CHARGE>
+0
+
+>  <PUBCHEM_HEAVY_ATOM_COUNT>
+13
+
+>  <PUBCHEM_ATOM_DEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_ATOM_UDEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_BOND_DEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_BOND_UDEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_ISOTOPIC_ATOM_COUNT>
+0
+
+>  <PUBCHEM_COMPONENT_COUNT>
+1
+
+>  <PUBCHEM_CACTVS_TAUTO_COUNT>
+1
+
+>  <PUBCHEM_COORDINATE_TYPE>
+1
+5
+255
+
+>  <PUBCHEM_BONDANNOTATIONS>
+5  6  8
+5  7  8
+6  8  8
+7  9  8
+8  10  8
+9  10  8
+
+>  <Molecular weight>
+180.1574199999999
+
+>  <logP>
+1.3100999999999998
+
+>  <Hydrogen-bond donors>
+1
+
+>  <Hydrogen-bond acceptors>
+4
+
+>  <Polar surface area>
+63.6
+
+>  <Molecular refractivity>
+44.900299999999994
+
+>  <Rotatable bonds>
+3
+
+>  <Canonical SMILES>
+CC(=O)Oc1ccccc1C(=O)O
+
+>  <InChI>
+InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2-5H,1H3,(H,11,12)
+
+>  <InChI key>
+BSYNRYMUTXBXSQ-UHFFFAOYSA-N
+
+>  <Number of rings>
+1
+
+>  <Number of heavy atoms>
+13
+
+>  <Spectrophores(TM)>
+-1.454, -1.106, -1.162, 0.285, 0.369, 1.008, 0.144, -0.956, 0.133, 0.883, 1.828, 0.029, -1.312, -1.424, -1.287, -0.644, 0.590, 0.746, -0.127, 0.535, 0.368, 0.930, 1.721, -0.097, -1.591, -0.888, -1.332, 0.013, 0.889, 0.249, -0.343, -0.346, -0.047, 1.471, 1.595, 0.329, -1.101, -1.186, 0.953, 0.953, -0.644, -0.653, -1.136, 1.547, 0.533, -0.262, -0.274, 1.270
+
+$$$$
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ob_genprop_on_CID2244.tabular	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,2 @@
+Molecular weight	logP	Hydrogen-bond donors	Hydrogen-bond acceptors	Polar surface area	Molecular refractivity	Rotatable bonds	Canonical SMILES	InChI	InChI key	Number of rings	Number of heavy atoms	Spectrophores(TM)
+180.1574199999999	1.3100999999999998	1	4	63.6	44.900299999999994	3	CC(=O)Oc1ccccc1C(=O)O	InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2-5H,1H3,(H,11,12)	BSYNRYMUTXBXSQ-UHFFFAOYSA-N	1	13	-1.454, -1.106, -1.162, 0.285, 0.369, 1.008, 0.144, -0.956, 0.133, 0.883, 1.828, 0.029, -1.312, -1.424, -1.287, -0.644, 0.590, 0.746, -0.127, 0.535, 0.368, 0.930, 1.721, -0.097, -1.591, -0.888, -1.332, 0.013, 0.889, 0.249, -0.343, -0.346, -0.047, 1.471, 1.595, 0.329, -1.101, -1.186, 0.953, 0.953, -0.644, -0.653, -1.136, 1.547, 0.533, -0.262, -0.274, 1.270
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ob_multi_obgrep.smi	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,4 @@
+CC(=O)Oc1ccccc1C(=O)[O-]	
+CC(=O)Oc1ccccc1C(=O)[O-]	
+CC(=O)Oc1ccccc1C(=O)[O-]	
+CC(=O)Oc1ccccc1C(=O)[O-]	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ob_prepare_ligands.sdf	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,759 @@
+
+  SciTegic01171120562D
+
+ 26 30  0  0  0  0            999 V2000
+   -8.6396    0.9568    0.0000 O   0  0
+   -7.6023    1.5602    0.0000 C   0  0
+   -7.6071    3.0602    0.0000 C   0  0
+   -6.3104    3.8143    0.0000 C   0  0
+   -5.0090    3.0685    0.0000 C   0  0
+   -5.0040    1.5682    0.0000 C   0  0
+   -6.3008    0.8143    0.0000 C   0  0
+   -3.7006    0.8244    0.0000 C   0  0
+   -3.7006   -0.6045    0.0000 N   0  0
+   -2.4915   -1.3190    0.0000 C   0  0
+   -2.5059   -2.8197    0.0000 N   0  0
+   -1.2156   -3.5847    0.0000 C   0  0
+   -1.2329   -5.0846    0.0000 C   0  0
+   -2.5404   -5.8196    0.0000 O   0  0
+   -3.8308   -5.0547    0.0000 C   0  0
+   -3.8135   -3.5548    0.0000 C   0  0
+   -1.2274   -0.6045    0.0000 C   0  0
+    0.0000   -1.3190    0.0000 O   0  0
+    1.2274   -0.6045    0.0000 C   0  0
+    2.4732   -1.3190    0.0000 N   0  0
+    3.7372   -0.6045    0.0000 C   0  0
+    3.7372    0.8244    0.0000 C   0  0
+    2.4732    1.5389    0.0000 C   0  0
+    1.2274    0.8244    0.0000 C   0  0
+   -1.2274    0.8244    0.0000 C   0  0
+   -2.4915    1.5389    0.0000 N   0  0
+  1  2  1  0
+  2  3  1  0
+  3  4  2  0
+  4  5  1  0
+  5  6  2  0
+  6  7  1  0
+  2  7  2  0
+  6  8  1  0
+  8  9  1  0
+  9 10  2  0
+ 10 11  1  0
+ 11 12  1  0
+ 12 13  1  0
+ 13 14  1  0
+ 14 15  1  0
+ 15 16  1  0
+ 11 16  1  0
+ 10 17  1  0
+ 17 18  1  0
+ 18 19  1  0
+ 19 20  2  0
+ 20 21  1  0
+ 21 22  2  0
+ 22 23  1  0
+ 23 24  2  0
+ 19 24  1  0
+ 24 25  1  0
+ 17 25  2  0
+ 25 26  1  0
+  8 26  2  0
+M  END
+> <mr_id>
+4358263
+
+> <SMI>
+Oc1cccc(c1)c2nc(N3CCOCC3)c4oc5ncccc5c4n2
+
+$$$$
+
+  SciTegic01171120562D
+
+ 43 51  0  0  1  0            999 V2000
+   -4.7204    3.3431    0.0000 C   0  0
+   -4.1471    2.2890    0.0000 O   0  0
+   -2.6500    2.2500    0.0000 C   0  0  2  0  0  0
+   -1.8100    3.5000    0.0000 C   0  0  1  0  0  0
+   -0.2400    3.5200    0.0000 C   0  0
+    0.5000    2.1800    0.0000 C   0  0  1  0  0  0
+   -1.0600    2.1800    0.0000 O   0  0
+   -1.8300    0.9300    0.0000 C   0  0  1  0  0  0
+   -3.0300    0.9300    0.0000 C   0  0
+   -0.9800   -0.7800    0.0000 N   0  0
+   -2.1300   -1.4600    0.0000 C   0  0
+   -3.3200   -0.7600    0.0000 C   0  0
+   -4.5500   -1.4800    0.0000 C   0  0
+   -4.5800   -2.7700    0.0000 C   0  0
+   -3.3400   -3.4700    0.0000 C   0  0
+   -2.1300   -2.7900    0.0000 C   0  0
+    0.2400   -2.7700    0.0000 C   0  0
+    1.4300   -3.4700    0.0000 C   0  0
+    1.7600   -4.9700    0.0000 C   0  0
+    3.2600   -5.0800    0.0000 N   0  0
+    3.8500   -3.6300    0.0000 C   0  0
+    4.9971   -3.2777    0.0000 O   0  0
+    2.6600   -2.7500    0.0000 C   0  0
+    2.6800   -1.4600    0.0000 C   0  0
+    3.7900    0.5600    0.0000 C   0  0
+    4.9600    1.2800    0.0000 C   0  0
+    4.9600    2.6300    0.0000 C   0  0
+    3.8100    3.2900    0.0000 C   0  0
+    2.6400    2.5900    0.0000 C   0  0
+    2.6400    1.2400    0.0000 C   0  0
+    1.4900    0.5400    0.0000 N   0  0
+    1.4500   -0.7600    0.0000 C   0  0
+    0.2400   -1.4400    0.0000 C   0  0
+   -2.5511    4.8030    0.0000 N   0  0
+   -1.9442    5.8382    0.0000 C   0  0
+   -4.0519    4.8135    0.0000 C   0  0
+   -4.6588    3.7783    0.0000 O   0  0
+   -4.7941    6.1180    0.0000 C   0  0
+   -6.2940    6.1306    0.0000 C   0  0
+   -7.0331    7.4359    0.0000 C   0  0
+   -6.2722    8.7286    0.0000 C   0  0
+   -4.7723    8.7160    0.0000 C   0  0
+   -4.0332    7.4108    0.0000 C   0  0
+  1  2  1  0
+  3  2  1  6
+  3  4  1  0
+  4  5  1  0
+  6  5  1  6
+  6  7  1  0
+  7  8  1  0
+  3  8  1  0
+  8  9  1  1
+  8 10  1  0
+ 10 11  1  0
+ 11 12  1  0
+ 12 13  2  0
+ 13 14  1  0
+ 14 15  2  0
+ 15 16  1  0
+ 11 16  2  0
+ 16 17  1  0
+ 17 18  1  0
+ 18 19  1  0
+ 19 20  1  0
+ 20 21  1  0
+ 21 22  2  0
+ 21 23  1  0
+ 18 23  2  0
+ 23 24  1  0
+ 24 25  1  0
+ 25 26  1  0
+ 26 27  2  0
+ 27 28  1  0
+ 28 29  2  0
+ 29 30  1  0
+ 25 30  2  0
+ 30 31  1  0
+  6 31  1  0
+ 31 32  1  0
+ 24 32  2  0
+ 32 33  1  0
+ 10 33  1  0
+ 17 33  2  0
+  4 34  1  6
+ 34 35  1  0
+ 34 36  1  0
+ 36 37  2  0
+ 36 38  1  0
+ 38 39  1  0
+ 39 40  2  0
+ 40 41  1  0
+ 41 42  2  0
+ 42 43  1  0
+ 38 43  2  0
+M  END
+> <mr_id>
+8573
+
+> <SMI>
+CO[C@@H]1[C@@H](C[C@H]2O[C@]1(C)n3c4ccccc4c5c6CNC(=O)c6c7c8ccccc8n2c7c35)N(C)C(=O)c9ccccc9
+
+$$$$
+
+  SciTegic01171120562D
+
+ 25 28  0  0  0  0            999 V2000
+   -6.2193    5.8633    0.0000 Cl  0  0
+   -5.1815    5.2608    0.0000 C   0  0
+   -3.8807    6.0076    0.0000 C   0  0
+   -2.5835    5.2544    0.0000 C   0  0
+   -2.5870    3.7544    0.0000 C   0  0
+   -1.2907    2.9981    0.0000 N   0  0
+   -1.2964    1.4973    0.0000 C   0  0
+   -2.6111    0.7486    0.0000 N   0  0
+   -2.6111   -0.7486    0.0000 N   0  0
+   -1.2964   -1.4973    0.0000 C   0  0
+   -1.2907   -2.9981    0.0000 C   0  0
+   -2.5870   -3.7544    0.0000 C   0  0
+   -2.5835   -5.2544    0.0000 C   0  0
+   -3.8807   -6.0076    0.0000 C   0  0
+   -5.1815   -5.2608    0.0000 N   0  0
+   -5.1852   -3.7608    0.0000 C   0  0
+   -3.8880   -3.0076    0.0000 C   0  0
+    0.0000   -0.7486    0.0000 C   0  0
+    1.2964   -1.4973    0.0000 C   0  0
+    2.5929   -0.7486    0.0000 C   0  0
+    2.5929    0.7486    0.0000 C   0  0
+    1.2964    1.4973    0.0000 C   0  0
+    0.0000    0.7486    0.0000 C   0  0
+   -3.8880    3.0076    0.0000 C   0  0
+   -5.1852    3.7608    0.0000 C   0  0
+  1  2  1  0
+  2  3  1  0
+  3  4  2  0
+  4  5  1  0
+  5  6  1  0
+  6  7  1  0
+  7  8  1  0
+  8  9  2  0
+  9 10  1  0
+ 10 11  1  0
+ 11 12  1  0
+ 12 13  1  0
+ 13 14  2  0
+ 14 15  1  0
+ 15 16  2  0
+ 16 17  1  0
+ 12 17  2  0
+ 10 18  2  0
+ 18 19  1  0
+ 19 20  2  0
+ 20 21  1  0
+ 21 22  2  0
+ 22 23  1  0
+  7 23  2  0
+ 18 23  1  0
+  5 24  2  0
+ 24 25  1  0
+  2 25  2  0
+M  END
+> <mr_id>
+4027
+
+> <SMI>
+Clc1ccc(Nc2nnc(Cc3ccncc3)c4ccccc24)cc1
+
+$$$$
+
+  SciTegic01171120562D
+
+ 26 28  0  0  1  0            999 V2000
+   -1.2878    3.1508    0.0000 C   0  0
+   -2.3292    3.7470    0.0000 C   0  0
+   -3.6267    2.9927    0.0000 C   0  0  2  0  0  0
+   -4.9300    3.7369    0.0000 C   0  0
+   -4.9364    4.9369    0.0000 O   0  0
+   -3.6187    1.4919    0.0000 N   0  0
+   -2.3155    0.7475    0.0000 C   0  0
+   -2.3155   -0.7475    0.0000 N   0  0
+   -1.0028   -1.5132    0.0000 C   0  0
+   -0.9971   -3.0138    0.0000 N   0  0
+   -2.2935   -3.7700    0.0000 C   0  0
+   -2.2878   -5.2708    0.0000 C   0  0
+   -3.5824   -6.0284    0.0000 C   0  0
+   -3.5736   -7.5284    0.0000 C   0  0
+   -2.2702   -8.2708    0.0000 C   0  0
+   -0.9756   -7.5132    0.0000 C   0  0
+   -0.9844   -6.0132    0.0000 C   0  0
+    0.2917   -0.7475    0.0000 C   0  0
+    1.7138   -1.2033    0.0000 N   0  0
+    2.5889    0.0182    0.0000 C   0  0
+    1.7138    1.2033    0.0000 N   0  0
+    2.1812    2.6271    0.0000 C   0  0
+    3.3556    2.8737    0.0000 C   0  0
+    1.3808    3.5211    0.0000 C   0  0
+    0.2917    0.7475    0.0000 C   0  0
+   -1.0028    1.5132    0.0000 N   0  0
+  1  2  1  0
+  2  3  1  0
+  3  4  1  0
+  4  5  1  0
+  3  6  1  1
+  6  7  1  0
+  7  8  1  0
+  8  9  2  0
+  9 10  1  0
+ 10 11  1  0
+ 11 12  1  0
+ 12 13  1  0
+ 13 14  2  0
+ 14 15  1  0
+ 15 16  2  0
+ 16 17  1  0
+ 12 17  2  0
+  9 18  1  0
+ 18 19  1  0
+ 19 20  2  0
+ 20 21  1  0
+ 21 22  1  0
+ 22 23  1  0
+ 22 24  1  0
+ 21 25  1  0
+ 18 25  2  0
+ 25 26  1  0
+  7 26  2  0
+M  END
+> <mr_id>
+600
+
+> <SMI>
+CC[C@H](CO)Nc1nc(NCc2ccccc2)c3ncn(C(C)C)c3n1
+
+$$$$
+
+  SciTegic01171120562D
+
+ 25 28  0  0  0  0            999 V2000
+    2.3383   -1.3500    0.0000 O   0  0
+    1.2990   -0.7500    0.0000 C   0  0
+    1.2990    0.7500    0.0000 C   0  0
+    0.0000    1.5000    0.0000 C   0  0
+   -1.2990    0.7500    0.0000 C   0  0
+   -1.2990   -0.7500    0.0000 C   0  0
+    0.0000   -1.5000    0.0000 C   0  0
+   -2.5987    1.5004    0.0000 C   0  0
+   -2.7390    2.9810    0.0000 N   0  0
+   -4.2067    3.2905    0.0000 C   0  0
+   -4.9546    1.9903    0.0000 C   0  0
+   -3.9492    0.8772    0.0000 N   0  0
+   -6.4469    1.8311    0.0000 C   0  0
+   -7.4153    2.9701    0.0000 C   0  0
+   -8.8906    2.6991    0.0000 C   0  0
+   -9.3937    1.2860    0.0000 N   0  0
+   -8.4213    0.1438    0.0000 C   0  0
+   -6.9460    0.4147    0.0000 C   0  0
+   -4.8193    4.6606    0.0000 C   0  0
+   -4.0353    5.9336    0.0000 C   0  0
+   -4.7489    7.2530    0.0000 C   0  0
+   -6.2483    7.2947    0.0000 C   0  0
+   -6.8192    8.3502    0.0000 F   0  0
+   -7.0341    6.0170    0.0000 C   0  0
+   -6.3205    4.6976    0.0000 C   0  0
+  1  2  1  0
+  2  3  1  0
+  3  4  2  0
+  4  5  1  0
+  5  6  2  0
+  6  7  1  0
+  2  7  2  0
+  5  8  1  0
+  8  9  2  0
+  9 10  1  0
+ 10 11  2  0
+ 11 12  1  0
+  8 12  1  0
+ 11 13  1  0
+ 13 14  1  0
+ 14 15  2  0
+ 15 16  1  0
+ 16 17  2  0
+ 17 18  1  0
+ 13 18  2  0
+ 10 19  1  0
+ 19 20  1  0
+ 20 21  2  0
+ 21 22  1  0
+ 22 23  1  0
+ 22 24  2  0
+ 24 25  1  0
+ 19 25  2  0
+M  END
+> <mr_id>
+8393
+
+> <SMI>
+Oc1ccc(cc1)c2nc(c([nH]2)c3ccncc3)c4ccc(F)cc4
+
+$$$$
+
+  SciTegic01171120562D
+
+ 27 30  0  0  0  0            999 V2000
+    3.6375   -0.9049    0.0000 C   0  0
+    2.5973   -1.5031    0.0000 S   0  0
+    2.5956   -2.7031    0.0000 O   0  0
+    1.2990   -0.7500    0.0000 C   0  0
+    1.2990    0.7500    0.0000 C   0  0
+    0.0000    1.5000    0.0000 C   0  0
+   -1.2990    0.7500    0.0000 C   0  0
+   -1.2990   -0.7500    0.0000 C   0  0
+    0.0000   -1.5000    0.0000 C   0  0
+   -2.5987    1.5004    0.0000 C   0  0
+   -2.7390    2.9810    0.0000 N   0  0
+   -4.2067    3.2905    0.0000 C   0  0
+   -4.9546    1.9903    0.0000 C   0  0
+   -3.9492    0.8772    0.0000 N   0  0
+   -6.4469    1.8311    0.0000 C   0  0
+   -7.4153    2.9701    0.0000 C   0  0
+   -8.8906    2.6991    0.0000 C   0  0
+   -9.3937    1.2860    0.0000 N   0  0
+   -8.4213    0.1438    0.0000 C   0  0
+   -6.9460    0.4147    0.0000 C   0  0
+   -4.8193    4.6606    0.0000 C   0  0
+   -4.0353    5.9336    0.0000 C   0  0
+   -4.7489    7.2530    0.0000 C   0  0
+   -6.2483    7.2947    0.0000 C   0  0
+   -6.8192    8.3502    0.0000 F   0  0
+   -7.0341    6.0170    0.0000 C   0  0
+   -6.3205    4.6976    0.0000 C   0  0
+  1  2  1  0
+  2  3  2  0
+  2  4  1  0
+  4  5  1  0
+  5  6  2  0
+  6  7  1  0
+  7  8  2  0
+  8  9  1  0
+  4  9  2  0
+  7 10  1  0
+ 10 11  2  0
+ 11 12  1  0
+ 12 13  2  0
+ 13 14  1  0
+ 10 14  1  0
+ 13 15  1  0
+ 15 16  1  0
+ 16 17  2  0
+ 17 18  1  0
+ 18 19  2  0
+ 19 20  1  0
+ 15 20  2  0
+ 12 21  1  0
+ 21 22  1  0
+ 22 23  2  0
+ 23 24  1  0
+ 24 25  1  0
+ 24 26  2  0
+ 26 27  1  0
+ 21 27  2  0
+M  END
+> <mr_id>
+3250
+
+> <SMI>
+CS(=O)c1ccc(cc1)c2nc(c([nH]2)c3ccncc3)c4ccc(F)cc4
+
+$$$$
+
+  SciTegic01171120562D
+
+ 29 33  0  0  0  0            999 V2000
+  -12.5295    0.6317    0.0000 N   0  0
+  -11.9608    1.6884    0.0000 C   0  0
+  -12.5918    2.7091    0.0000 O   0  0
+  -10.4606    1.7327    0.0000 C   0  0
+   -9.6699    0.4580    0.0000 C   0  0
+   -8.1707    0.5054    0.0000 C   0  0
+   -7.4652    1.8235    0.0000 C   0  0
+   -8.2527    3.1022    0.0000 C   0  0
+   -9.7520    3.0548    0.0000 C   0  0
+   -5.9730    1.9836    0.0000 C   0  0
+   -4.9669    0.8711    0.0000 N   0  0
+   -3.6168    1.4950    0.0000 C   0  0
+   -3.7580    2.9756    0.0000 C   0  0
+   -5.2259    3.2843    0.0000 N   0  0
+   -2.6389    3.9757    0.0000 C   0  0
+   -1.1867    3.6217    0.0000 C   0  0
+   -0.1511    4.7069    0.0000 C   0  0
+   -0.5731    6.1463    0.0000 C   0  0
+   -2.0307    6.5006    0.0000 C   0  0
+   -3.0662    5.4154    0.0000 N   0  0
+   -2.3155    0.7475    0.0000 C   0  0
+   -2.3155   -0.7475    0.0000 C   0  0
+   -1.0028   -1.5132    0.0000 C   0  0
+    0.2917   -0.7475    0.0000 C   0  0
+    1.7138   -1.2033    0.0000 O   0  0
+    2.5889    0.0182    0.0000 C   0  0
+    1.7138    1.2033    0.0000 O   0  0
+    0.2917    0.7475    0.0000 C   0  0
+   -1.0028    1.5132    0.0000 C   0  0
+  1  2  1  0
+  2  3  2  0
+  2  4  1  0
+  4  5  1  0
+  5  6  2  0
+  6  7  1  0
+  7  8  2  0
+  8  9  1  0
+  4  9  2  0
+  7 10  1  0
+ 10 11  2  0
+ 11 12  1  0
+ 12 13  2  0
+ 13 14  1  0
+ 10 14  1  0
+ 13 15  1  0
+ 15 16  1  0
+ 16 17  2  0
+ 17 18  1  0
+ 18 19  2  0
+ 19 20  1  0
+ 15 20  2  0
+ 12 21  1  0
+ 21 22  1  0
+ 22 23  2  0
+ 23 24  1  0
+ 24 25  1  0
+ 25 26  1  0
+ 26 27  1  0
+ 27 28  1  0
+ 24 28  2  0
+ 28 29  1  0
+ 21 29  2  0
+M  END
+> <mr_id>
+4347423
+
+> <SMI>
+NC(=O)c1ccc(cc1)c2nc(c([nH]2)c3ccccn3)c4ccc5OCOc5c4
+
+$$$$
+
+  SciTegic01171120562D
+
+ 32 34  0  0  0  0            999 V2000
+    3.6331   -3.6060    0.0000 C   0  0
+    2.5951   -3.0039    0.0000 N   0  0
+    2.5973   -1.5031    0.0000 C   0  0
+    3.6375   -0.9049    0.0000 O   0  0
+    1.2990   -0.7500    0.0000 C   0  0
+    1.2990    0.7500    0.0000 C   0  0
+    0.0000    1.5000    0.0000 C   0  0
+   -0.0031    3.0008    0.0000 O   0  0
+   -1.3039    3.7494    0.0000 C   0  0
+   -1.3092    5.2494    0.0000 C   0  0
+   -2.6108    5.9949    0.0000 C   0  0
+   -3.9073    5.2404    0.0000 C   0  0
+   -5.2112    5.9836    0.0000 N   0  0
+   -6.5072    5.2269    0.0000 C   0  0
+   -6.5010    4.0269    0.0000 O   0  0
+   -7.8111    5.9701    0.0000 N   0  0
+   -9.1072    5.2134    0.0000 C   0  0
+  -10.4114    5.9543    0.0000 C   0  0
+  -11.7053    5.1953    0.0000 C   0  0
+  -11.6949    3.6953    0.0000 C   0  0
+  -12.7299    3.0882    0.0000 Cl  0  0
+  -10.3907    2.9543    0.0000 C   0  0
+   -9.0969    3.7133    0.0000 C   0  0
+  -10.3803    1.4536    0.0000 C   0  0
+  -11.4150    0.8457    0.0000 F   0  0
+   -9.3367    0.8611    0.0000 F   0  0
+  -10.3714    0.2536    0.0000 F   0  0
+   -3.9021    3.7404    0.0000 C   0  0
+   -2.6005    2.9949    0.0000 C   0  0
+   -1.2990    0.7500    0.0000 C   0  0
+   -1.2990   -0.7500    0.0000 C   0  0
+    0.0000   -1.5000    0.0000 N   0  0
+  1  2  1  0
+  2  3  1  0
+  3  4  2  0
+  3  5  1  0
+  5  6  1  0
+  6  7  2  0
+  7  8  1  0
+  8  9  1  0
+  9 10  1  0
+ 10 11  2  0
+ 11 12  1  0
+ 12 13  1  0
+ 13 14  1  0
+ 14 15  2  0
+ 14 16  1  0
+ 16 17  1  0
+ 17 18  1  0
+ 18 19  2  0
+ 19 20  1  0
+ 20 21  1  0
+ 20 22  2  0
+ 22 23  1  0
+ 17 23  2  0
+ 22 24  1  0
+ 24 25  1  0
+ 24 26  1  0
+ 24 27  1  0
+ 12 28  2  0
+ 28 29  1  0
+  9 29  2  0
+  7 30  1  0
+ 30 31  2  0
+ 31 32  1  0
+  5 32  2  0
+M  END
+> <mr_id>
+4255941
+
+> <SMI>
+CNC(=O)c1cc(Oc2ccc(NC(=O)Nc3ccc(Cl)c(c3)C(F)(F)F)cc2)ccn1
+
+$$$$
+
+  SciTegic01171120562D
+
+ 35 42  0  0  1  0            999 V2000
+   -1.9455    5.8387    0.0000 C   0  0
+   -2.5513    4.8029    0.0000 N   0  0
+   -1.8100    3.5000    0.0000 C   0  0  2  0  0  0
+   -0.2400    3.5200    0.0000 C   0  0
+    0.5000    2.1800    0.0000 C   0  0  1  0  0  0
+   -1.0600    2.1800    0.0000 O   0  0
+   -1.8300    0.9300    0.0000 C   0  0  1  0  0  0
+   -3.0300    0.9300    0.0000 C   0  0
+   -2.6500    2.2500    0.0000 C   0  0  2  0  0  0
+   -4.1471    2.2892    0.0000 O   0  0
+   -4.7748    1.2665    0.0000 C   0  0
+   -0.9800   -0.7800    0.0000 N   0  0
+   -2.1300   -1.4600    0.0000 C   0  0
+   -3.3200   -0.7600    0.0000 C   0  0
+   -4.5500   -1.4800    0.0000 C   0  0
+   -4.5800   -2.7700    0.0000 C   0  0
+   -3.3400   -3.4700    0.0000 C   0  0
+   -2.1300   -2.7900    0.0000 C   0  0
+    0.2400   -2.7700    0.0000 C   0  0
+    1.4300   -3.4700    0.0000 C   0  0
+    1.7600   -4.9700    0.0000 C   0  0
+    3.2600   -5.0800    0.0000 N   0  0
+    3.8500   -3.6300    0.0000 C   0  0
+    4.9971   -3.2777    0.0000 O   0  0
+    2.6600   -2.7500    0.0000 C   0  0
+    2.6800   -1.4600    0.0000 C   0  0
+    3.7900    0.5600    0.0000 C   0  0
+    4.9600    1.2800    0.0000 C   0  0
+    4.9600    2.6300    0.0000 C   0  0
+    3.8100    3.2900    0.0000 C   0  0
+    2.6400    2.5900    0.0000 C   0  0
+    2.6400    1.2400    0.0000 C   0  0
+    1.4900    0.5400    0.0000 N   0  0
+    1.4500   -0.7600    0.0000 C   0  0
+    0.2400   -1.4400    0.0000 C   0  0
+  1  2  1  0
+  3  2  1  6
+  3  4  1  0
+  5  4  1  6
+  5  6  1  0
+  6  7  1  0
+  7  8  1  1
+  7  9  1  0
+  3  9  1  0
+  9 10  1  6
+ 10 11  1  0
+  7 12  1  0
+ 12 13  1  0
+ 13 14  1  0
+ 14 15  2  0
+ 15 16  1  0
+ 16 17  2  0
+ 17 18  1  0
+ 13 18  2  0
+ 18 19  1  0
+ 19 20  1  0
+ 20 21  1  0
+ 21 22  1  0
+ 22 23  1  0
+ 23 24  2  0
+ 23 25  1  0
+ 20 25  2  0
+ 25 26  1  0
+ 26 27  1  0
+ 27 28  1  0
+ 28 29  2  0
+ 29 30  1  0
+ 30 31  2  0
+ 31 32  1  0
+ 27 32  2  0
+ 32 33  1  0
+  5 33  1  0
+ 33 34  1  0
+ 26 34  2  0
+ 34 35  1  0
+ 12 35  1  0
+ 19 35  2  0
+M  END
+> <mr_id>
+66
+
+> <SMI>
+CN[C@@H]1C[C@H]2O[C@@](C)([C@@H]1OC)n3c4ccccc4c5c6CNC(=O)c6c7c8ccccc8n2c7c35
+
+$$$$
+
+  SciTegic01171120562D
+
+ 32 35  0  0  1  0            999 V2000
+    7.1381   -2.1568    0.0000 C   0  0
+    6.0456   -2.6531    0.0000 C   0  0
+    4.7409   -1.9129    0.0000 N   0  0
+    3.6552   -2.9294    0.0000 C   0  0
+    2.1855   -2.6254    0.0000 C   0  0
+    1.7138   -1.2033    0.0000 C   0  0
+    2.5889    0.0182    0.0000 C   0  0
+    3.7889    0.0269    0.0000 O   0  0
+    1.7138    1.2033    0.0000 N   0  0
+    0.2917    0.7475    0.0000 C   0  0
+   -1.0028    1.5132    0.0000 C   0  0
+   -2.3155    0.7475    0.0000 C   0  0
+   -2.3155   -0.7475    0.0000 C   0  0
+   -3.3560   -1.3452    0.0000 F   0  0
+   -1.0028   -1.5132    0.0000 C   0  0
+    0.2917   -0.7475    0.0000 C   0  0
+    4.2542   -4.2907    0.0000 C   0  0
+    3.6559   -5.3308    0.0000 C   0  0
+    5.7448   -4.1226    0.0000 C   0  0
+    6.7580   -5.2264    0.0000 C   0  0
+    6.3978   -6.3710    0.0000 O   0  0
+    8.2231   -4.9012    0.0000 N   0  0
+    9.2380   -6.0068    0.0000 C   0  0
+   10.7032   -5.6816    0.0000 C   0  0  2  0  0  0
+   11.0634   -4.5369    0.0000 O   0  0
+   11.7181   -6.7872    0.0000 C   0  0
+   13.1833   -6.4620    0.0000 N   0  0
+   14.1993   -7.5656    0.0000 C   0  0
+   15.6630   -7.2376    0.0000 C   0  0
+   16.1108   -5.8060    0.0000 O   0  0
+   15.0949   -4.7024    0.0000 C   0  0
+   13.6312   -5.0304    0.0000 C   0  0
+  1  2  1  0
+  2  3  1  0
+  3  4  1  0
+  4  5  1  0
+  5  6  2  0
+  6  7  1  0
+  7  8  2  0
+  7  9  1  0
+  9 10  1  0
+ 10 11  1  0
+ 11 12  2  0
+ 12 13  1  0
+ 13 14  1  0
+ 13 15  2  0
+ 15 16  1  0
+  6 16  1  0
+ 10 16  2  0
+  4 17  2  0
+ 17 18  1  0
+ 17 19  1  0
+  2 19  2  0
+ 19 20  1  0
+ 20 21  2  0
+ 20 22  1  0
+ 22 23  1  0
+ 23 24  1  0
+ 24 25  1  6
+ 24 26  1  0
+ 26 27  1  0
+ 27 28  1  0
+ 28 29  1  0
+ 29 30  1  0
+ 30 31  1  0
+ 31 32  1  0
+ 27 32  1  0
+M  END
+> <mr_id>
+4362206
+
+> <SMI>
+Cc1[nH]c(/C=C/2\C(=O)Nc3ccc(F)cc23)c(C)c1C(=O)NC[C@H](O)CN4CCOCC4
+
+$$$$
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ob_prepare_ligands1.mol2	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,96 @@
+@<TRIPOS>MOLECULE
+*****
+ 42 46 0 0 0
+SMALL
+GASTEIGER
+
+@<TRIPOS>ATOM
+      1 O          -8.6396    0.9568    0.0000 O.3     1  UNL1       -0.5067
+      2 C          -7.6023    1.5602    0.0000 C.ar    1  UNL1        0.1175
+      3 C          -7.6071    3.0602    0.0000 C.ar    1  UNL1       -0.0201
+      4 C          -6.3104    3.8143    0.0000 C.ar    1  UNL1       -0.0576
+      5 C          -5.0090    3.0685    0.0000 C.ar    1  UNL1       -0.0508
+      6 C          -5.0040    1.5682    0.0000 C.ar    1  UNL1        0.0226
+      7 C          -6.3008    0.8143    0.0000 C.ar    1  UNL1       -0.0095
+      8 C          -3.7006    0.8244    0.0000 C.ar    1  UNL1        0.1627
+      9 N          -3.7006   -0.6045    0.0000 N.ar    1  UNL1       -0.2088
+     10 C          -2.4915   -1.3190    0.0000 C.ar    1  UNL1        0.1687
+     11 N          -2.5059   -2.8197    0.0000 N.pl3   1  UNL1       -0.3078
+     12 C          -1.2156   -3.5847    0.0000 C.3     1  UNL1        0.0371
+     13 C          -1.2329   -5.0846    0.0000 C.3     1  UNL1        0.0634
+     14 O          -2.5404   -5.8196    0.0000 O.3     1  UNL1       -0.3767
+     15 C          -3.8308   -5.0547    0.0000 C.3     1  UNL1        0.0634
+     16 C          -3.8135   -3.5548    0.0000 C.3     1  UNL1        0.0371
+     17 C          -1.2274   -0.6045    0.0000 C.ar    1  UNL1        0.1961
+     18 O           0.0000   -1.3190    0.0000 O.2     1  UNL1       -0.4317
+     19 C           1.2274   -0.6045    0.0000 C.ar    1  UNL1        0.2301
+     20 N           2.4732   -1.3190    0.0000 N.ar    1  UNL1       -0.2204
+     21 C           3.7372   -0.6045    0.0000 C.ar    1  UNL1        0.0314
+     22 C           3.7372    0.8244    0.0000 C.ar    1  UNL1       -0.0427
+     23 C           2.4732    1.5389    0.0000 C.ar    1  UNL1       -0.0459
+     24 C           1.2274    0.8244    0.0000 C.ar    1  UNL1        0.0660
+     25 C          -1.2274    0.8244    0.0000 C.ar    1  UNL1        0.1241
+     26 N          -2.4915    1.5389    0.0000 N.ar    1  UNL1       -0.2233
+     27 H          -9.4526    1.4227    0.0000 H       1  UNL1        0.2921
+     28 H          -8.5025    3.5734    0.0000 H       1  UNL1        0.0654
+     29 H          -6.3137    4.8463    0.0000 H       1  UNL1        0.0619
+     30 H          -4.1170    3.5874    0.0000 H       1  UNL1        0.0625
+     31 H          -6.2976   -0.2177    0.0000 H       1  UNL1        0.0661
+     32 H          -0.2828   -3.0604    0.0000 H       1  UNL1        0.0487
+     33 H          -0.2952   -4.1304    0.0000 H       1  UNL1        0.0487
+     34 H          -0.3125   -5.6302    0.0000 H       1  UNL1        0.0575
+     35 H          -1.2452   -6.1545    0.0000 H       1  UNL1        0.0575
+     36 H          -4.7635   -5.5790    0.0000 H       1  UNL1        0.0575
+     37 H          -4.7512   -4.5091    0.0000 H       1  UNL1        0.0575
+     38 H          -4.7339   -3.0092    0.0000 H       1  UNL1        0.0487
+     39 H          -3.8012   -2.4849    0.0000 H       1  UNL1        0.0487
+     40 H           4.6286   -1.1246    0.0000 H       1  UNL1        0.0831
+     41 H           4.6286    1.3445    0.0000 H       1  UNL1        0.0633
+     42 H           2.4700    2.5709    0.0000 H       1  UNL1        0.0626
+@<TRIPOS>BOND
+     1     1     2    1
+     2     2     3   ar
+     3     3     4   ar
+     4     4     5   ar
+     5     5     6   ar
+     6     6     7   ar
+     7     2     7   ar
+     8     6     8    1
+     9     8     9   ar
+    10     9    10   ar
+    11    10    11    1
+    12    11    12    1
+    13    12    13    1
+    14    13    14    1
+    15    14    15    1
+    16    15    16    1
+    17    11    16    1
+    18    10    17   ar
+    19    17    18   ar
+    20    18    19   ar
+    21    19    20   ar
+    22    20    21   ar
+    23    21    22   ar
+    24    22    23   ar
+    25    23    24   ar
+    26    19    24   ar
+    27    24    25   ar
+    28    17    25   ar
+    29    25    26   ar
+    30     8    26   ar
+    31     1    27    1
+    32     3    28    1
+    33     4    29    1
+    34     5    30    1
+    35     7    31    1
+    36    12    32    1
+    37    12    33    1
+    38    13    34    1
+    39    13    35    1
+    40    15    36    1
+    41    15    37    1
+    42    16    38    1
+    43    16    39    1
+    44    21    40    1
+    45    22    41    1
+    46    23    42    1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ob_prepare_ligands1.pdbqt	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,41 @@
+REMARK  Name = 
+REMARK  2 active torsions:
+REMARK  status: ('A' for Active; 'I' for Inactive)
+REMARK    1  A    between atoms: O_1  and  C_2
+REMARK    2  A    between atoms: C_6  and  C_8
+REMARK                            x       y       z     vdW  Elec       q    Type
+REMARK                         _______ _______ _______ _____ _____    ______ ____
+ROOT
+ATOM      1  C   UNL     1      -3.701   0.824   0.000  0.00  0.00    +0.163 A 
+ATOM      2  N   UNL     1      -2.491   1.539   0.000  0.00  0.00    -0.223 NA
+ATOM      3  C   UNL     1      -1.227   0.824   0.000  0.00  0.00    +0.124 A 
+ATOM      4  C   UNL     1      -1.227  -0.605   0.000  0.00  0.00    +0.196 A 
+ATOM      5  O   UNL     1       0.000  -1.319   0.000  0.00  0.00    -0.432 OA
+ATOM      6  C   UNL     1       1.227  -0.605   0.000  0.00  0.00    +0.230 A 
+ATOM      7  N   UNL     1       2.473  -1.319   0.000  0.00  0.00    -0.220 NA
+ATOM      8  C   UNL     1       3.737  -0.605   0.000  0.00  0.00    +0.114 A 
+ATOM      9  C   UNL     1       3.737   0.824   0.000  0.00  0.00    +0.021 A 
+ATOM     10  C   UNL     1       2.473   1.539   0.000  0.00  0.00    +0.017 A 
+ATOM     11  C   UNL     1      -2.491  -1.319   0.000  0.00  0.00    +0.169 A 
+ATOM     12  N   UNL     1      -2.506  -2.820   0.000  0.00  0.00    -0.308 N 
+ATOM     13  C   UNL     1      -3.813  -3.555   0.000  0.00  0.00    +0.134 C 
+ATOM     14  C   UNL     1      -3.831  -5.055   0.000  0.00  0.00    +0.178 C 
+ATOM     15  O   UNL     1      -2.540  -5.820   0.000  0.00  0.00    -0.377 OA
+ATOM     16  C   UNL     1      -1.233  -5.085   0.000  0.00  0.00    +0.178 C 
+ATOM     17  C   UNL     1      -1.216  -3.585   0.000  0.00  0.00    +0.134 C 
+ATOM     18  C   UNL     1       1.227   0.824   0.000  0.00  0.00    +0.066 A 
+ATOM     19  N   UNL     1      -3.701  -0.605   0.000  0.00  0.00    -0.209 NA
+ENDROOT
+BRANCH   1  22
+ATOM     20  C   UNL     1      -7.602   1.560   0.000  0.00  0.00    +0.118 A 
+ATOM     21  C   UNL     1      -6.301   0.814   0.000  0.00  0.00    +0.057 A 
+ATOM     22  C   UNL     1      -5.004   1.568   0.000  0.00  0.00    +0.023 A 
+ATOM     23  C   UNL     1      -5.009   3.068   0.000  0.00  0.00    +0.012 A 
+ATOM     24  C   UNL     1      -6.310   3.814   0.000  0.00  0.00    +0.004 A 
+ATOM     25  C   UNL     1      -7.607   3.060   0.000  0.00  0.00    +0.045 A 
+BRANCH  20  26
+ATOM     26  O   UNL     1      -8.640   0.957   0.000  0.00  0.00    -0.507 OA
+ATOM     27  H   UNL     1      -9.453   1.423   0.000  0.00  0.00    +0.292 HD
+ENDBRANCH  20  26
+ENDBRANCH   1  22
+TORSDOF 2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ob_prepare_ligands2.mol2	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,162 @@
+@<TRIPOS>MOLECULE
+*****
+ 73 81 0 0 0
+SMALL
+GASTEIGER
+
+@<TRIPOS>ATOM
+      1 C          -4.7204    3.3431    0.0000 C.3     1  UNL1        0.0371
+      2 O          -4.1471    2.2890    0.0000 O.3     1  UNL1       -0.3732
+      3 C          -2.6500    2.2500    0.0000 C.3     1  UNL1        0.1246
+      4 C          -1.8100    3.5000    0.0000 C.3     1  UNL1        0.0607
+      5 C          -0.2400    3.5200    0.0000 C.3     1  UNL1        0.0140
+      6 C           0.5000    2.1800    0.0000 C.3     1  UNL1        0.1404
+      7 O          -1.0600    2.1800    0.0000 O.3     1  UNL1       -0.3282
+      8 C          -1.8300    0.9300    0.0000 C.3     1  UNL1        0.1744
+      9 C          -3.0300    0.9300    0.0000 C.3     1  UNL1       -0.0136
+     10 N          -0.9800   -0.7800    0.0000 N.ar    1  UNL1       -0.3070
+     11 C          -2.1300   -1.4600    0.0000 C.ar    1  UNL1        0.0527
+     12 C          -3.3200   -0.7600    0.0000 C.ar    1  UNL1       -0.0375
+     13 C          -4.5500   -1.4800    0.0000 C.ar    1  UNL1       -0.0598
+     14 C          -4.5800   -2.7700    0.0000 C.ar    1  UNL1       -0.0611
+     15 C          -3.3400   -3.4700    0.0000 C.ar    1  UNL1       -0.0520
+     16 C          -2.1300   -2.7900    0.0000 C.ar    1  UNL1        0.0081
+     17 C           0.2400   -2.7700    0.0000 C.ar    1  UNL1        0.0151
+     18 C           1.4300   -3.4700    0.0000 C.ar    1  UNL1       -0.0078
+     19 C           1.7600   -4.9700    0.0000 C.3     1  UNL1        0.0385
+     20 N           3.2600   -5.0800    0.0000 N.am    1  UNL1       -0.3072
+     21 C           3.8500   -3.6300    0.0000 C.2     1  UNL1        0.2453
+     22 O           4.9971   -3.2777    0.0000 O.2     1  UNL1       -0.2702
+     23 C           2.6600   -2.7500    0.0000 C.ar    1  UNL1        0.0518
+     24 C           2.6800   -1.4600    0.0000 C.ar    1  UNL1        0.0221
+     25 C           3.7900    0.5600    0.0000 C.ar    1  UNL1        0.0085
+     26 C           4.9600    1.2800    0.0000 C.ar    1  UNL1       -0.0520
+     27 C           4.9600    2.6300    0.0000 C.ar    1  UNL1       -0.0611
+     28 C           3.8100    3.2900    0.0000 C.ar    1  UNL1       -0.0598
+     29 C           2.6400    2.5900    0.0000 C.ar    1  UNL1       -0.0375
+     30 C           2.6400    1.2400    0.0000 C.ar    1  UNL1        0.0524
+     31 N           1.4900    0.5400    0.0000 N.ar    1  UNL1       -0.3115
+     32 C           1.4500   -0.7600    0.0000 C.ar    1  UNL1        0.0774
+     33 C           0.2400   -1.4400    0.0000 C.ar    1  UNL1        0.0772
+     34 N          -2.5511    4.8030    0.0000 N.am    1  UNL1       -0.2947
+     35 C          -1.9442    5.8382    0.0000 C.3     1  UNL1        0.0039
+     36 C          -4.0519    4.8135    0.0000 C.2     1  UNL1        0.2467
+     37 O          -4.6588    3.7783    0.0000 O.2     1  UNL1       -0.2700
+     38 C          -4.7941    6.1180    0.0000 C.ar    1  UNL1        0.0369
+     39 C          -6.2940    6.1306    0.0000 C.ar    1  UNL1       -0.0496
+     40 C          -7.0331    7.4359    0.0000 C.ar    1  UNL1       -0.0610
+     41 C          -6.2722    8.7286    0.0000 C.ar    1  UNL1       -0.0617
+     42 C          -4.7723    8.7160    0.0000 C.ar    1  UNL1       -0.0610
+     43 C          -4.0332    7.4108    0.0000 C.ar    1  UNL1       -0.0496
+     44 H          -4.1620    4.2558    0.0000 H       1  UNL1        0.0524
+     45 H          -5.7901    3.3703    0.0000 H       1  UNL1        0.0524
+     46 H          -5.2316    4.2831    0.0000 H       1  UNL1        0.0524
+     47 H          -3.1408    3.2008    0.0000 H       1  UNL1        0.0663
+     48 H          -2.8793    3.5399    0.0000 H       1  UNL1        0.0529
+     49 H           0.2979    4.4450    0.0000 H       1  UNL1        0.0328
+     50 H           0.8299    3.5081    0.0000 H       1  UNL1        0.0328
+     51 H          -0.4215    2.7238    0.0000 H       1  UNL1        0.0839
+     52 H          -3.5650    1.8566    0.0000 H       1  UNL1        0.0277
+     53 H          -3.5650    0.0034    0.0000 H       1  UNL1        0.0277
+     54 H          -4.1000    0.9300    0.0000 H       1  UNL1        0.0277
+     55 H          -3.3189    0.2720    0.0000 H       1  UNL1        0.0638
+     56 H          -5.4393   -0.9563    0.0000 H       1  UNL1        0.0618
+     57 H          -5.4772   -3.2799    0.0000 H       1  UNL1        0.0618
+     58 H          -3.3410   -4.5020    0.0000 H       1  UNL1        0.0624
+     59 H           1.0595   -5.7788    0.0000 H       1  UNL1        0.0512
+     60 H           2.1687   -5.9589    0.0000 H       1  UNL1        0.0512
+     61 H           3.7793   -5.9164    0.0000 H       1  UNL1        0.1493
+     62 H           5.8609    0.7766    0.0000 H       1  UNL1        0.0624
+     63 H           5.8531    3.1472    0.0000 H       1  UNL1        0.0618
+     64 H           3.8006    4.3220    0.0000 H       1  UNL1        0.0618
+     65 H           1.7423    3.0990    0.0000 H       1  UNL1        0.0638
+     66 H          -0.8742    5.8311    0.0000 H       1  UNL1        0.0429
+     67 H          -2.4730    6.7684    0.0000 H       1  UNL1        0.0429
+     68 H          -1.4030    6.7613    0.0000 H       1  UNL1        0.0429
+     69 H          -6.8175    5.2412    0.0000 H       1  UNL1        0.0625
+     70 H          -8.0651    7.4446    0.0000 H       1  UNL1        0.0618
+     71 H          -6.7807    9.6266    0.0000 H       1  UNL1        0.0618
+     72 H          -4.2488    9.6054    0.0000 H       1  UNL1        0.0618
+     73 H          -3.0012    7.4022    0.0000 H       1  UNL1        0.0625
+@<TRIPOS>BOND
+     1     1     2    1
+     2     3     2    1
+     3     3     4    1
+     4     4     5    1
+     5     6     5    1
+     6     6     7    1
+     7     7     8    1
+     8     3     8    1
+     9     8     9    1
+    10     8    10    1
+    11    10    11   ar
+    12    11    12   ar
+    13    12    13   ar
+    14    13    14   ar
+    15    14    15   ar
+    16    15    16   ar
+    17    11    16   ar
+    18    16    17   ar
+    19    17    18   ar
+    20    18    19    1
+    21    19    20    1
+    22    20    21   am
+    23    21    22    2
+    24    21    23    1
+    25    18    23   ar
+    26    23    24   ar
+    27    24    25   ar
+    28    25    26   ar
+    29    26    27   ar
+    30    27    28   ar
+    31    28    29   ar
+    32    29    30   ar
+    33    25    30   ar
+    34    30    31   ar
+    35     6    31    1
+    36    31    32   ar
+    37    24    32   ar
+    38    32    33   ar
+    39    10    33   ar
+    40    17    33   ar
+    41     4    34    1
+    42    34    35    1
+    43    34    36   am
+    44    36    37    2
+    45    36    38    1
+    46    38    39   ar
+    47    39    40   ar
+    48    40    41   ar
+    49    41    42   ar
+    50    42    43   ar
+    51    38    43   ar
+    52     1    44    1
+    53     1    45    1
+    54     1    46    1
+    55     3    47    1
+    56     4    48    1
+    57     5    49    1
+    58     5    50    1
+    59     6    51    1
+    60     9    52    1
+    61     9    53    1
+    62     9    54    1
+    63    12    55    1
+    64    13    56    1
+    65    14    57    1
+    66    15    58    1
+    67    19    59    1
+    68    19    60    1
+    69    20    61    1
+    70    26    62    1
+    71    27    63    1
+    72    28    64    1
+    73    29    65    1
+    74    35    66    1
+    75    35    67    1
+    76    35    68    1
+    77    39    69    1
+    78    40    70    1
+    79    41    71    1
+    80    42    72    1
+    81    43    73    1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ob_prepare_ligands2.pdbqt	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,64 @@
+REMARK  Name = 
+REMARK  6 active torsions:
+REMARK  status: ('A' for Active; 'I' for Inactive)
+REMARK    1  A    between atoms: C_1  and  O_2
+REMARK    2  A    between atoms: O_2  and  C_3
+REMARK    3  A    between atoms: C_4  and  N_34
+REMARK    4  A    between atoms: C_8  and  C_9
+REMARK    5  A    between atoms: N_34  and  C_35
+REMARK    6  A    between atoms: C_36  and  C_38
+REMARK                            x       y       z     vdW  Elec       q    Type
+REMARK                         _______ _______ _______ _____ _____    ______ ____
+ROOT
+ATOM      1  C   UNL     1      -2.650   2.250   0.000  0.00  0.00    +0.191 C 
+ATOM      2  C   UNL     1      -1.830   0.930   0.000  0.00  0.00    +0.174 C 
+ATOM      3  N   UNL     1      -0.980  -0.780   0.000  0.00  0.00    -0.307 N 
+ATOM      4  C   UNL     1       0.240  -1.440   0.000  0.00  0.00    +0.077 A 
+ATOM      5  C   UNL     1       0.240  -2.770   0.000  0.00  0.00    +0.015 A 
+ATOM      6  C   UNL     1       1.430  -3.470   0.000  0.00  0.00    -0.008 A 
+ATOM      7  C   UNL     1       2.660  -2.750   0.000  0.00  0.00    +0.052 A 
+ATOM      8  C   UNL     1       2.680  -1.460   0.000  0.00  0.00    +0.022 A 
+ATOM      9  C   UNL     1       3.790   0.560   0.000  0.00  0.00    +0.008 A 
+ATOM     10  C   UNL     1       2.640   1.240   0.000  0.00  0.00    +0.052 A 
+ATOM     11  N   UNL     1       1.490   0.540   0.000  0.00  0.00    -0.311 N 
+ATOM     12  C   UNL     1       0.500   2.180   0.000  0.00  0.00    +0.224 C 
+ATOM     13  C   UNL     1      -0.240   3.520   0.000  0.00  0.00    +0.080 C 
+ATOM     14  C   UNL     1       2.640   2.590   0.000  0.00  0.00    +0.026 A 
+ATOM     15  C   UNL     1       3.810   3.290   0.000  0.00  0.00    +0.002 A 
+ATOM     16  C   UNL     1       4.960   2.630   0.000  0.00  0.00    +0.001 A 
+ATOM     17  C   UNL     1       4.960   1.280   0.000  0.00  0.00    +0.010 A 
+ATOM     18  C   UNL     1       3.850  -3.630   0.000  0.00  0.00    +0.245 C 
+ATOM     19  O   UNL     1       4.997  -3.278   0.000  0.00  0.00    -0.270 OA
+ATOM     20  N   UNL     1       3.260  -5.080   0.000  0.00  0.00    -0.307 N 
+ATOM     21  H   UNL     1       3.779  -5.916   0.000  0.00  0.00    +0.149 HD
+ATOM     22  C   UNL     1       1.760  -4.970   0.000  0.00  0.00    +0.141 C 
+ATOM     23  C   UNL     1      -2.130  -2.790   0.000  0.00  0.00    +0.008 A 
+ATOM     24  C   UNL     1      -3.340  -3.470   0.000  0.00  0.00    +0.010 A 
+ATOM     25  C   UNL     1      -4.580  -2.770   0.000  0.00  0.00    +0.001 A 
+ATOM     26  C   UNL     1      -4.550  -1.480   0.000  0.00  0.00    +0.002 A 
+ATOM     27  C   UNL     1      -3.320  -0.760   0.000  0.00  0.00    +0.026 A 
+ATOM     28  C   UNL     1       1.450  -0.760   0.000  0.00  0.00    +0.077 A 
+ATOM     29  C   UNL     1      -2.130  -1.460   0.000  0.00  0.00    +0.053 A 
+ATOM     30  C   UNL     1      -3.030   0.930   0.000  0.00  0.00    +0.069 C 
+ATOM     31  O   UNL     1      -1.060   2.180   0.000  0.00  0.00    -0.328 OA
+ATOM     32  C   UNL     1      -1.810   3.500   0.000  0.00  0.00    +0.114 C 
+ENDROOT
+BRANCH  32  33
+ATOM     33  N   UNL     1      -2.551   4.803   0.000  0.00  0.00    -0.295 N 
+ATOM     34  C   UNL     1      -4.052   4.814   0.000  0.00  0.00    +0.247 C 
+ATOM     35  O   UNL     1      -4.659   3.778   0.000  0.00  0.00    -0.270 OA
+ATOM     36  C   UNL     1      -1.944   5.838   0.000  0.00  0.00    +0.132 C 
+BRANCH  34  37
+ATOM     37  C   UNL     1      -4.794   6.118   0.000  0.00  0.00    +0.037 A 
+ATOM     38  C   UNL     1      -4.033   7.411   0.000  0.00  0.00    +0.013 A 
+ATOM     39  C   UNL     1      -4.772   8.716   0.000  0.00  0.00    +0.001 A 
+ATOM     40  C   UNL     1      -6.272   8.729   0.000  0.00  0.00    +0.000 A 
+ATOM     41  C   UNL     1      -7.033   7.436   0.000  0.00  0.00    +0.001 A 
+ATOM     42  C   UNL     1      -6.294   6.131   0.000  0.00  0.00    +0.013 A 
+ENDBRANCH  34  37
+ENDBRANCH  32  33
+BRANCH   1  44
+ATOM     43  C   UNL     1      -4.720   3.343   0.000  0.00  0.00    +0.194 C 
+ATOM     44  O   UNL     1      -4.147   2.289   0.000  0.00  0.00    -0.373 OA
+ENDBRANCH   1  44
+TORSDOF 3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ob_remDuplicates_on_2_mol.smi	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,1 @@
+CC(=O)OC1=CC=CC=C1C(=O)[O-]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ob_remove_protonation_state.sdf	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,154 @@
+2244
+ OpenBabel03291607022D
+
+ 21 21  0  0  0  0  0  0  0  0999 V2000
+    3.7320   -0.0600    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301    1.4400    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981    1.4400    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    2.8660   -1.5600    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -0.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    4.5981   -1.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -2.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301   -1.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641    0.9400    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.8660   -0.5600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    2.0000   -0.0600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
+    4.0611   -1.8700    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.8671   -0.2500    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4641   -2.6800    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.8671   -1.8700    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    2.3100    0.4769    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    1.4631    0.2500    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    1.6900   -0.5969    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3301    2.0600    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0
+  1  5  1  0  0  0  0
+  1 12  1  0  0  0  0
+  2 11  1  0  0  0  0
+  2 21  1  0  0  0  0
+  3 11  2  0  0  0  0
+  4 12  2  0  0  0  0
+  5  6  1  0  0  0  0
+  5  7  2  0  0  0  0
+  6  8  2  0  0  0  0
+  6 11  1  0  0  0  0
+  7  9  1  0  0  0  0
+  7 14  1  0  0  0  0
+  8 10  1  0  0  0  0
+  8 15  1  0  0  0  0
+  9 10  2  0  0  0  0
+  9 16  1  0  0  0  0
+ 10 17  1  0  0  0  0
+ 12 13  1  0  0  0  0
+ 13 18  1  0  0  0  0
+ 13 19  1  0  0  0  0
+ 13 20  1  0  0  0  0
+M  END
+>  <PUBCHEM_COMPOUND_CID>
+2244
+
+>  <PUBCHEM_COMPOUND_CANONICALIZED>
+1
+
+>  <PUBCHEM_CACTVS_COMPLEXITY>
+212
+
+>  <PUBCHEM_CACTVS_HBOND_ACCEPTOR>
+4
+
+>  <PUBCHEM_CACTVS_HBOND_DONOR>
+1
+
+>  <PUBCHEM_CACTVS_ROTATABLE_BOND>
+3
+
+>  <PUBCHEM_CACTVS_SUBSKEYS>
+AAADccBwOAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAABAAAAGgAACAAADASAmAAyDoAABgCIAiDSCAACCAAkIAAIiAEGCMgMJzaENRqCe2Cl4BEIuYeIyCCOAAAAAAAIAAAAAAAAABAAAAAAAAAAAA==
+
+>  <PUBCHEM_IUPAC_OPENEYE_NAME>
+2-acetoxybenzoic acid
+
+>  <PUBCHEM_IUPAC_CAS_NAME>
+2-acetyloxybenzoic acid
+
+>  <PUBCHEM_IUPAC_NAME>
+2-acetyloxybenzoic acid
+
+>  <PUBCHEM_IUPAC_SYSTEMATIC_NAME>
+2-acetyloxybenzoic acid
+
+>  <PUBCHEM_IUPAC_TRADITIONAL_NAME>
+2-acetoxybenzoic acid
+
+>  <PUBCHEM_IUPAC_INCHI>
+InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2-5H,1H3,(H,11,12)
+
+>  <PUBCHEM_IUPAC_INCHIKEY>
+BSYNRYMUTXBXSQ-UHFFFAOYSA-N
+
+>  <PUBCHEM_XLOGP3>
+1.2
+
+>  <PUBCHEM_EXACT_MASS>
+180.042259
+
+>  <PUBCHEM_MOLECULAR_FORMULA>
+C9H8O4
+
+>  <PUBCHEM_MOLECULAR_WEIGHT>
+180.15742
+
+>  <PUBCHEM_OPENEYE_CAN_SMILES>
+CC(=O)OC1=CC=CC=C1C(=O)O
+
+>  <PUBCHEM_OPENEYE_ISO_SMILES>
+CC(=O)OC1=CC=CC=C1C(=O)O
+
+>  <PUBCHEM_CACTVS_TPSA>
+63.6
+
+>  <PUBCHEM_MONOISOTOPIC_WEIGHT>
+180.042259
+
+>  <PUBCHEM_TOTAL_CHARGE>
+0
+
+>  <PUBCHEM_HEAVY_ATOM_COUNT>
+13
+
+>  <PUBCHEM_ATOM_DEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_ATOM_UDEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_BOND_DEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_BOND_UDEF_STEREO_COUNT>
+0
+
+>  <PUBCHEM_ISOTOPIC_ATOM_COUNT>
+0
+
+>  <PUBCHEM_COMPONENT_COUNT>
+1
+
+>  <PUBCHEM_CACTVS_TAUTO_COUNT>
+1
+
+>  <PUBCHEM_COORDINATE_TYPE>
+1
+5
+255
+
+>  <PUBCHEM_BONDANNOTATIONS>
+5  6  8
+5  7  8
+6  8  8
+7  9  8
+8  10  8
+9  10  8
+
+$$$$
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ob_spectrophore_search.tabular	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,9 @@
+Hydrogen-bond donors	InChI key	logP	Polar surface area	Number of heavy atoms	Molecular weight	InChI	Spectrophores(TM)	Number of rings	Canonical SMILES	Molecular refractivity	Hydrogen-bond acceptors	Rotatable bonds	0.000000
+3	JZUFKLXOESDKRF-UHFFFAOYSA-N	2.9774	135.12	17	297.73912	InChI=1S/C7H8ClN3O4S2/c8-4-1-5-7(2-6(4)16(9,12)13)17(14,15)11-3-10-5/h1-2,10-11H,3H2,(H2,9,12,13)	nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, -1.245, -1.245, -0.178, -0.178, -0.178, -0.178, -0.178, -0.178, -0.178, 1.956, 1.956, -0.178, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan	2	Clc1cc2NCNS(=O)(=O)c2cc1S(=O)(=O)N	67.5768	7	1	nan
+3	ZZUFCTLCJUWOSV-UHFFFAOYSA-N	3.7448	131.01	21	330.74414	InChI=1S/C12H11ClN2O5S/c13-9-5-10(15-6-7-2-1-3-20-7)8(12(16)17)4-11(9)21(14,18)19/h1-5,15H,6H2,(H,16,17)(H2,14,18,19)	nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, -2.141, -2.141, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan	2	OC(=O)c1cc(c(cc1NCc1ccco1)Cl)S(=O)(=O)N	75.4644	7	5	nan
+1	QEVHRUUCFGRFIF-MDEJGZGSSA-N	4.109	117.78	44	608.6787	InChI=1S/C33H40N2O9/c1-38-19-7-8-20-21-9-10-35-16-18-13-27(44-32(36)17-11-25(39-2)30(41-4)26(12-17)40-3)31(42-5)28(33(37)43-6)22(18)15-24(35)29(21)34-23(20)14-19/h7-8,11-12,14,18,22,24,27-28,31,34H,9-10,13,15-16H2,1-6H3/t18-,22+,24-,27-,28+,31+/m1/s1	nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan	6	COc1ccc2c(c1)[nH]c1c2CCN2[C@@H]1C[C@H]1[C@@H](C2)C[C@H]([C@@H]([C@H]1C(=O)OC)OC)OC(=O)c1cc(OC)c(c(c1)OC)OC	165.5222	10	10	nan
+4	NJKRHQRIYAWMRO-BQTSRIDJSA-N	7.0864	252.9	61	906.41782	InChI=1S/C33H40N2O9.C7H8ClN3O4S2/c1-38-19-7-8-20-21-9-10-35-16-18-13-27(44-32(36)17-11-25(39-2)30(41-4)26(12-17)40-3)31(42-5)28(33(37)43-6)22(18)15-24(35)29(21)34-23(20)14-19;8-4-1-5-7(2-6(4)16(9,12)13)17(14,15)11-3-10-5/h7-8,11-12,14,18,22,24,27-28,31,34H,9-10,13,15-16H2,1-6H3;1-2,10-11H,3H2,(H2,9,12,13)/t18-,22+,24-,27-,28+,31+;/m1./s1	nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan	8	Clc1cc2NCNS(=O)(=O)c2cc1S(=O)(=O)N.COc1ccc2c(c1)[nH]c1c2CCN2[C@@H]1C[C@H]1[C@@H](C2)C[C@H]([C@@H]([C@H]1C(=O)OC)OC)OC(=O)c1cc(OC)c(c(c1)OC)OC	233.099	17	11	nan
+0	UOOUPHIKFMZJEA-UHFFFAOYSA-N	6.248	33.42	33	430.54354	InChI=1S/C29H26N4/c1-3-29(4-2)31-25-20-27-24(19-28(25)33(29)22-15-9-6-10-16-22)30-23-17-11-12-18-26(23)32(27)21-13-7-5-8-14-21/h5-20H,3-4H2,1-2H3	nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, -2.141, -2.141, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428, 0.428, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan	6	CCC1(CC)N=c2c(N1c1ccccc1)cc1c(c2)n(c2ccccc2)c2c(n1)cccc2	143.054	3	4	nan
+0	YQCDIJPZZOKCLA-UHFFFAOYSA-N	5.8579	33.42	32	416.51696	InChI=1S/C28H24N4/c1-3-28(2)30-24-19-26-23(18-27(24)32(28)21-14-8-5-9-15-21)29-22-16-10-11-17-25(22)31(26)20-12-6-4-7-13-20/h4-19H,3H2,1-2H3	nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan	6	CCC1(C)N=c2c(N1c1ccccc1)cc1c(c2)n(c2ccccc2)c2c(n1)cccc2	138.247	3	3	nan
+0	BSYNRYMUTXBXSQ-UHFFFAOYSA-M	-0.0246	66.43	13	179.14948	InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2-5H,1H3,(H,11,12)/p-1	nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 2.141, 2.141, -0.428, -0.428, -0.428, -0.428, -0.428, -0.428, -0.428, -0.428, -0.428, -0.428, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan	1	CC(=O)Oc1ccccc1C(=O)[O-]	42.958	4	3	nan
+0	BSYNRYMUTXBXSQ-UHFFFAOYSA-M	-0.0246	66.43	13	179.14948	InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2-5H,1H3,(H,11,12)/p-1	nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 2.141, 2.141, -0.428, -0.428, -0.428, -0.428, -0.428, -0.428, -0.428, -0.428, -0.428, -0.428, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan	1	CC(=O)Oc1ccccc1C(=O)[O-]	42.958	4	3	nan
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/obgrep_on_8_mol.smi	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,5 @@
+c1coc(c1)CNc1cc(c(cc1C(=O)O)S(=O)(=O)N)Cl	
+CO[C@H]1[C@@H](C[C@@H]2CN3CCc4c([C@H]3C[C@@H]2[C@@H]1C(=O)OC)[nH]c1c4ccc(c1)OC)OC(=O)c1cc(c(c(c1)OC)OC)OC	
+CO[C@H]1[C@@H](C[C@@H]2CN3CCc4c([C@H]3C[C@@H]2[C@@H]1C(=O)OC)[nH]c1c4ccc(c1)OC)OC(=O)c1cc(c(c(c1)OC)OC)OC.C1Nc2cc(c(cc2S(=O)(=O)N1)S(=O)(=O)N)Cl	
+CC(=O)Oc1ccccc1C(=O)[O-]	
+CC(=O)Oc1ccccc1C(=O)[O-]	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/obremsmall_on_3_mol.smi	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,2 @@
+CC(=O)OC1=CC=CC=C1C(=O)[O-]
+CC(=O)OC1=CC=CC=C1C(=O)[O-]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/obrmions_on_2_mol.smi	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,2 @@
+CC(=O)Oc1ccccc1C(=O)[O-]	
+CC(=O)Oc1ccccc1C(=O)[O-]	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/pattern.smarts	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,2 @@
+CC
+CO
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/split1.pdbqt	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,30 @@
+REMARK  Name = 
+REMARK  3 active torsions:
+REMARK  status: ('A' for Active; 'I' for Inactive)
+REMARK    1  A    between atoms: C_2  and  O_4
+REMARK    2  A    between atoms: O_4  and  C_5
+REMARK    3  A    between atoms: C_10  and  C_11
+REMARK                            x       y       z     vdW  Elec       q    Type
+REMARK                         _______ _______ _______ _____ _____    ______ ____
+ROOT
+ATOM      1  C   UNL     1       0.000   0.000   0.000  0.00  0.00    +0.149 A 
+ATOM      2  C   UNL     1       0.000   0.000   0.000  0.00  0.00    +0.038 A 
+ATOM      3  C   UNL     1       0.000   0.000   0.000  0.00  0.00    +0.003 A 
+ATOM      4  C   UNL     1       0.000   0.000   0.000  0.00  0.00    +0.000 A 
+ATOM      5  C   UNL     1       0.000   0.000   0.000  0.00  0.00    +0.004 A 
+ATOM      6  C   UNL     1       0.000   0.000   0.000  0.00  0.00    +0.049 A 
+ENDROOT
+BRANCH   6   7
+ATOM      7  C   UNL     1       0.000   0.000   0.000  0.00  0.00    +0.076 C 
+ATOM      8  O   UNL     1       0.000   0.000   0.000  0.00  0.00    -0.544 OA
+ATOM      9  O   UNL     1       0.000   0.000   0.000  0.00  0.00    -0.544 OA
+ENDBRANCH   6   7
+BRANCH   1  10
+ATOM     10  O   UNL     1       0.000   0.000   0.000  0.00  0.00    -0.424 OA
+BRANCH  10  12
+ATOM     11  C   UNL     1       0.000   0.000   0.000  0.00  0.00    +0.122 C 
+ATOM     12  C   UNL     1       0.000   0.000   0.000  0.00  0.00    +0.322 C 
+ATOM     13  O   UNL     1       0.000   0.000   0.000  0.00  0.00    -0.250 OA
+ENDBRANCH  10  12
+ENDBRANCH   1  10
+TORSDOF 3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/split2.pdbqt	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,30 @@
+REMARK  Name = 
+REMARK  3 active torsions:
+REMARK  status: ('A' for Active; 'I' for Inactive)
+REMARK    1  A    between atoms: C_2  and  O_4
+REMARK    2  A    between atoms: O_4  and  C_5
+REMARK    3  A    between atoms: C_10  and  C_11
+REMARK                            x       y       z     vdW  Elec       q    Type
+REMARK                         _______ _______ _______ _____ _____    ______ ____
+ROOT
+ATOM      1  C   UNL     1       0.000   0.000   0.000  0.00  0.00    +0.149 A 
+ATOM      2  C   UNL     1       0.000   0.000   0.000  0.00  0.00    +0.038 A 
+ATOM      3  C   UNL     1       0.000   0.000   0.000  0.00  0.00    +0.003 A 
+ATOM      4  C   UNL     1       0.000   0.000   0.000  0.00  0.00    +0.000 A 
+ATOM      5  C   UNL     1       0.000   0.000   0.000  0.00  0.00    +0.004 A 
+ATOM      6  C   UNL     1       0.000   0.000   0.000  0.00  0.00    +0.049 A 
+ENDROOT
+BRANCH   6   7
+ATOM      7  C   UNL     1       0.000   0.000   0.000  0.00  0.00    +0.076 C 
+ATOM      8  O   UNL     1       0.000   0.000   0.000  0.00  0.00    -0.544 OA
+ATOM      9  O   UNL     1       0.000   0.000   0.000  0.00  0.00    -0.544 OA
+ENDBRANCH   6   7
+BRANCH   1  10
+ATOM     10  O   UNL     1       0.000   0.000   0.000  0.00  0.00    -0.424 OA
+BRANCH  10  12
+ATOM     11  C   UNL     1       0.000   0.000   0.000  0.00  0.00    +0.122 C 
+ATOM     12  C   UNL     1       0.000   0.000   0.000  0.00  0.00    +0.322 C 
+ATOM     13  O   UNL     1       0.000   0.000   0.000  0.00  0.00    -0.250 OA
+ENDBRANCH  10  12
+ENDBRANCH   1  10
+TORSDOF 3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/transfs.sdf	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,186 @@
+NC(=NO)NCCc1ccc(S(N)(=O)=O)cc1
+     RDKit          3D
+
+ 17 17  0  0  0  0  0  0  0  0999 V2000
+   13.9302   -2.3261   22.5538 N   0  0  0  0  0  0  0  0  0  0  0  0
+   13.7238   -1.7706   23.7651 C   0  0  0  0  0  0  0  0  0  0  0  0
+   12.9709   -0.6511   23.8871 N   0  0  0  0  0  0  0  0  0  0  0  0
+   12.3387    0.0187   22.7430 C   0  0  0  0  0  0  0  0  0  0  0  0
+   10.9859    0.6425   23.1019 C   0  0  0  0  0  0  0  0  0  0  0  0
+    9.9117    0.4770   22.0521 C   0  0  0  0  0  0  0  0  0  0  0  0
+    9.6451   -0.7505   21.4256 C   0  0  0  0  0  0  0  0  0  0  0  0
+    8.6682   -0.8525   20.4388 C   0  0  0  0  0  0  0  0  0  0  0  0
+    7.9346    0.2745   20.0745 C   0  0  0  0  0  0  0  0  0  0  0  0
+    6.7444    0.1313   18.7757 S   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4465    0.9786   19.4142 N   0  0  0  0  0  0  0  0  0  0  0  0
+    7.2019    0.8863   17.6332 O   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3224   -1.2458   18.6840 O   0  0  0  0  0  0  0  0  0  0  0  0
+    8.1747    1.5057   20.6849 C   0  0  0  0  0  0  0  0  0  0  0  0
+    9.1574    1.6019   21.6751 C   0  0  0  0  0  0  0  0  0  0  0  0
+   14.2946   -2.3692   24.8521 N   0  0  0  0  0  0  0  0  0  0  0  0
+   14.1962   -1.9686   26.1940 O   0  0  0  0  0  0  0  0  0  0  0  0
+  1  2  1  0
+  2  3  1  0
+  2 16  2  0
+  3  4  1  0
+  4  5  1  0
+  5  6  1  0
+  6  7  2  0
+  6 15  1  0
+  7  8  1  0
+  8  9  2  0
+  9 10  1  0
+  9 14  1  0
+ 10 11  1  0
+ 10 12  2  0
+ 10 13  2  0
+ 14 15  2  0
+ 16 17  1  0
+M  CHG  1  16   1
+M  END
+>  <CHROM.0>  (1) 
+65.93051459,169.99861208,-59.68475000
+
+>  <CHROM.1>  (1) 
+145.66221290,-139.37796603,47.03157881,136.25602749,64.42425104,102.07311975
+9.88696665,-0.33137891,21.45559055,-0.16902134,0.67278808,-2.52516849
+
+>  <Name>  (1) 
+NC(=NO)NCCc1ccc(S(N)(=O)=O)cc1
+
+>  <RI>  (1) 
+1.41352e+07
+
+>  <Rbt.Current_Directory>  (1) 
+/data/dnb02/galaxy_db/job_working_directory/007/399/7399639/working
+
+>  <Rbt.Executable>  (1) 
+rbdock ($Id: //depot/dev/client3/rdock/2013.1/src/exe/rbdock.cxx#4 $)
+
+>  <Rbt.Library>  (1) 
+libRbt.so (2013.1, Build901 2013/11/27)
+
+>  <Rbt.Parameter_File>  (1) 
+/usr/local/tools/_conda/envs/__rdock@2013.1-0/share/rdock-2013.1-1/data/scripts/dock.prm
+
+>  <Rbt.Receptor>  (1) 
+receptor.prm
+
+>  <SCORE>  (1) 
+-30.3434
+
+>  <SCORE.INTER>  (1) 
+-15.8664
+
+>  <SCORE.INTER.CONST>  (1) 
+1
+
+>  <SCORE.INTER.POLAR>  (1) 
+-1.12178
+
+>  <SCORE.INTER.REPUL>  (1) 
+0
+
+>  <SCORE.INTER.ROT>  (1) 
+5
+
+>  <SCORE.INTER.VDW>  (1) 
+-22.4523
+
+>  <SCORE.INTER.norm>  (1) 
+-0.933318
+
+>  <SCORE.INTRA>  (1) 
+-2.33416
+
+>  <SCORE.INTRA.DIHEDRAL>  (1) 
+-1.88099
+
+>  <SCORE.INTRA.DIHEDRAL.0>  (1) 
+10.7462
+
+>  <SCORE.INTRA.POLAR>  (1) 
+0
+
+>  <SCORE.INTRA.POLAR.0>  (1) 
+0
+
+>  <SCORE.INTRA.REPUL>  (1) 
+0
+
+>  <SCORE.INTRA.REPUL.0>  (1) 
+0
+
+>  <SCORE.INTRA.VDW>  (1) 
+-1.39366
+
+>  <SCORE.INTRA.VDW.0>  (1) 
+0.160377
+
+>  <SCORE.INTRA.norm>  (1) 
+-0.137303
+
+>  <SCORE.RESTR>  (1) 
+
+
+>  <SCORE.RESTR.norm>  (1) 
+0
+
+>  <SCORE.SYSTEM>  (1) 
+-12.1428
+
+>  <SCORE.SYSTEM.CONST>  (1) 
+0
+
+>  <SCORE.SYSTEM.DIHEDRAL>  (1) 
+0.706521
+
+>  <SCORE.SYSTEM.POLAR>  (1) 
+-3.2443
+
+>  <SCORE.SYSTEM.REPUL>  (1) 
+0.676691
+
+>  <SCORE.SYSTEM.VDW>  (1) 
+-4.8489
+
+>  <SCORE.SYSTEM.norm>  (1) 
+-0.714283
+
+>  <SCORE.heavy>  (1) 
+17
+
+>  <SCORE.norm>  (1) 
+-1.7849
+
+>  <TransFSReceptor>  (1) 
+receptor
+
+>  <TransFSScore>  (1) 
+0.999997
+
+>  <Max_SuCOS_Score>  (1) 
+0.44454780182058773
+
+>  <Max_SuCOS_FeatureMap_Score>  (1) 
+0.19084575451625094
+
+>  <Max_SuCOS_Protrude_Score>  (1) 
+0.69824984912492449
+
+>  <Max_SuCOS_Cluster>  (1) 
+dataset_14281034.dat
+
+>  <Max_SuCOS_Index>  (1) 
+11
+
+>  <Cum_SuCOS_Score>  (1) 
+3.7946511319966216
+
+>  <Cum_SuCOS_FeatureMap_Score>  (1) 
+0.9189792141377946
+
+>  <Cum_SuCOS_Protrude_Score>  (1) 
+6.6703230498554467
+
+$$$$
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/transfs_changed_name.sdf	Wed Mar 25 20:37:36 2020 +0000
@@ -0,0 +1,186 @@
+NC(=NO)NCCc1ccc(S(N)(=O)=O)cc1__xbrsjqssafh2t
+ OpenBabel03212010583D
+
+ 17 17  0  0  0  0  0  0  0  0999 V2000
+   13.9302   -2.3261   22.5538 N   0  0  0  0  0  0  0  0  0  0  0  0
+   13.7238   -1.7706   23.7651 C   0  0  0  0  0  0  0  0  0  0  0  0
+   12.9709   -0.6511   23.8871 N   0  0  0  0  0  0  0  0  0  0  0  0
+   12.3387    0.0187   22.7430 C   0  0  0  0  0  0  0  0  0  0  0  0
+   10.9859    0.6425   23.1019 C   0  0  0  0  0  0  0  0  0  0  0  0
+    9.9117    0.4770   22.0521 C   0  0  0  0  0  0  0  0  0  0  0  0
+    9.6451   -0.7505   21.4256 C   0  0  0  0  0  0  0  0  0  0  0  0
+    8.6682   -0.8525   20.4388 C   0  0  0  0  0  0  0  0  0  0  0  0
+    7.9346    0.2745   20.0745 C   0  0  0  0  0  0  0  0  0  0  0  0
+    6.7444    0.1313   18.7757 S   0  0  0  0  0  0  0  0  0  0  0  0
+    5.4465    0.9786   19.4142 N   0  0  0  0  0  0  0  0  0  0  0  0
+    7.2019    0.8863   17.6332 O   0  0  0  0  0  0  0  0  0  0  0  0
+    6.3224   -1.2458   18.6840 O   0  0  0  0  0  0  0  0  0  0  0  0
+    8.1747    1.5057   20.6849 C   0  0  0  0  0  0  0  0  0  0  0  0
+    9.1574    1.6019   21.6751 C   0  0  0  0  0  0  0  0  0  0  0  0
+   14.2946   -2.3692   24.8521 N   0  3  0  0  0  0  0  0  0  0  0  0
+   14.1962   -1.9686   26.1940 O   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 16  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
+  6  7  2  0  0  0  0
+  6 15  1  0  0  0  0
+  7  8  1  0  0  0  0
+  8  9  2  0  0  0  0
+  9 10  1  0  0  0  0
+  9 14  1  0  0  0  0
+ 10 11  1  0  0  0  0
+ 10 12  2  0  0  0  0
+ 10 13  2  0  0  0  0
+ 14 15  2  0  0  0  0
+ 16 17  1  0  0  0  0
+M  CHG  1  16   1
+M  END
+>  <CHROM.0>
+65.93051459,169.99861208,-59.68475000
+
+>  <CHROM.1>
+145.66221290,-139.37796603,47.03157881,136.25602749,64.42425104,102.07311975
+9.88696665,-0.33137891,21.45559055,-0.16902134,0.67278808,-2.52516849
+
+>  <Name>
+NC(=NO)NCCc1ccc(S(N)(=O)=O)cc1
+
+>  <RI>
+1.41352e+07
+
+>  <Rbt.Current_Directory>
+/data/dnb02/galaxy_db/job_working_directory/007/399/7399639/working
+
+>  <Rbt.Executable>
+rbdock ($Id: //depot/dev/client3/rdock/2013.1/src/exe/rbdock.cxx#4 $)
+
+>  <Rbt.Library>
+libRbt.so (2013.1, Build901 2013/11/27)
+
+>  <Rbt.Parameter_File>
+/usr/local/tools/_conda/envs/__rdock@2013.1-0/share/rdock-2013.1-1/data/scripts/dock.prm
+
+>  <Rbt.Receptor>
+receptor.prm
+
+>  <SCORE>
+-30.3434
+
+>  <SCORE.INTER>
+-15.8664
+
+>  <SCORE.INTER.CONST>
+1
+
+>  <SCORE.INTER.POLAR>
+-1.12178
+
+>  <SCORE.INTER.REPUL>
+0
+
+>  <SCORE.INTER.ROT>
+5
+
+>  <SCORE.INTER.VDW>
+-22.4523
+
+>  <SCORE.INTER.norm>
+-0.933318
+
+>  <SCORE.INTRA>
+-2.33416
+
+>  <SCORE.INTRA.DIHEDRAL>
+-1.88099
+
+>  <SCORE.INTRA.DIHEDRAL.0>
+10.7462
+
+>  <SCORE.INTRA.POLAR>
+0
+
+>  <SCORE.INTRA.POLAR.0>
+0
+
+>  <SCORE.INTRA.REPUL>
+0
+
+>  <SCORE.INTRA.REPUL.0>
+0
+
+>  <SCORE.INTRA.VDW>
+-1.39366
+
+>  <SCORE.INTRA.VDW.0>
+0.160377
+
+>  <SCORE.INTRA.norm>
+-0.137303
+
+>  <SCORE.RESTR>
+
+
+>  <SCORE.RESTR.norm>
+0
+
+>  <SCORE.SYSTEM>
+-12.1428
+
+>  <SCORE.SYSTEM.CONST>
+0
+
+>  <SCORE.SYSTEM.DIHEDRAL>
+0.706521
+
+>  <SCORE.SYSTEM.POLAR>
+-3.2443
+
+>  <SCORE.SYSTEM.REPUL>
+0.676691
+
+>  <SCORE.SYSTEM.VDW>
+-4.8489
+
+>  <SCORE.SYSTEM.norm>
+-0.714283
+
+>  <SCORE.heavy>
+17
+
+>  <SCORE.norm>
+-1.7849
+
+>  <TransFSReceptor>
+receptor
+
+>  <TransFSScore>
+0.999997
+
+>  <Max_SuCOS_Score>
+0.44454780182058773
+
+>  <Max_SuCOS_FeatureMap_Score>
+0.19084575451625094
+
+>  <Max_SuCOS_Protrude_Score>
+0.69824984912492449
+
+>  <Max_SuCOS_Cluster>
+dataset_14281034.dat
+
+>  <Max_SuCOS_Index>
+11
+
+>  <Cum_SuCOS_Score>
+3.7946511319966216
+
+>  <Cum_SuCOS_FeatureMap_Score>
+0.9189792141377946
+
+>  <Cum_SuCOS_Protrude_Score>
+6.6703230498554467
+
+$$$$