From f0c37c5e6c58776ddf6b496c9232153d2544050a Mon Sep 17 00:00:00 2001 From: diogom Date: Thu, 27 Oct 2022 11:57:17 -0700 Subject: [PATCH 01/12] fix implicit Hs count --- meeko/molsetup.py | 10 +++++++--- meeko/preparation.py | 3 ++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/meeko/molsetup.py b/meeko/molsetup.py index 9bd92aa1..95b362a2 100644 --- a/meeko/molsetup.py +++ b/meeko/molsetup.py @@ -667,10 +667,14 @@ def copy(self): return RDKitMoleculeSetup(self.mol, template=self) def has_implicit_hydrogens(self): - implicit_h_count = 0 + # based on needsHs from RDKit's AddHs.cpp for atom in self.mol.GetAtoms(): - implicit_h_count += atom.GetNumImplicitHs() - return implicit_h_count > 0 + nr_H_neighbors = 0 + for neighbor in atom.GetNeighbors(): + nr_H_neighbors += int(neighbor.GetAtomicNum() == 1) + if atom.GetTotalNumHs(includeNeighbors=False) > nr_H_neighbors: + return True + return False class OBMoleculeSetup(MoleculeSetup): diff --git a/meeko/preparation.py b/meeko/preparation.py index 10d887ad..86ddafef 100644 --- a/meeko/preparation.py +++ b/meeko/preparation.py @@ -65,7 +65,7 @@ def __init__(self, keep_nonpolar_hydrogens=False, self._water_builder = HydrateMoleculeLegacy() self._writer = PDBQTWriterLegacy() self.is_ok = None - self.log = None + self.log = "" self._classes_setup = {Chem.rdchem.Mol: RDKitMoleculeSetup} if _has_openbabel: self._classes_setup[ob.OBMol] = OBMoleculeSetup @@ -104,6 +104,7 @@ def prepare(self, mol, root_atom_index=None, not_terminal_atoms=[]): if setup.has_implicit_hydrogens(): self.is_ok = False + self.log += "molecule has implicit hydrogens" name = setup.get_mol_name() warnings.warn("Skipping mol (name=%s): has implicit hydrogens" % name, RuntimeWarning) return From bff284ab72a683c5576d3d14e33caa7f20bd5220 Mon Sep 17 00:00:00 2001 From: diogom Date: Thu, 27 Oct 2022 20:15:31 -0700 Subject: [PATCH 02/12] updates for v0.4.0, improved documentation --- README.md | 183 ++++++-- example/BACE_macrocycle/BACE_4.mol2 | 192 --------- example/BACE_macrocycle/BACE_4.sdf | 186 ++++++++ .../ligand_including_cys_sidechain.sdf | 154 +++++++ example/covalent_docking/prepared.pdbqt | 81 ++++ .../prepared_output_reference.pdbqt | 81 ++++ example/covalent_docking/protein.pdb | 399 ++++++++++++++++++ example/covalent_docking/run.sh | 7 + scripts/{mk_copy_coords.py => mk_export.py} | 0 setup.py | 2 +- 10 files changed, 1052 insertions(+), 233 deletions(-) delete mode 100644 example/BACE_macrocycle/BACE_4.mol2 create mode 100644 example/BACE_macrocycle/BACE_4.sdf create mode 100644 example/covalent_docking/ligand_including_cys_sidechain.sdf create mode 100644 example/covalent_docking/prepared.pdbqt create mode 100644 example/covalent_docking/prepared_output_reference.pdbqt create mode 100644 example/covalent_docking/protein.pdb create mode 100644 example/covalent_docking/run.sh rename scripts/{mk_copy_coords.py => mk_export.py} (100%) diff --git a/README.md b/README.md index f9ac2dd9..7dcb1dcd 100644 --- a/README.md +++ b/README.md @@ -2,22 +2,30 @@ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![API stability](https://img.shields.io/badge/stable%20API-no-orange)](https://shields.io/) -[![PyPI version fury.io](https://img.shields.io/badge/version-0.3.3-green.svg)](https://pypi.python.org/pypi/ansicolortags/) +[![PyPI version fury.io](https://img.shields.io/badge/version-0.4.0-green.svg)](https://pypi.python.org/pypi/ansicolortags/) Meeko reads an RDKit molecule object and writes a PDBQT string (or file) for [AutoDock-Vina](https://github.com/ccsb-scripps/AutoDock-Vina) -and [AutoDock-GPU](https://github.com/ccsb-scripps/AutoDock-GPU). Additionally, it has tools for post-processing -of docking results which are not yet fully developed. Meeko supports the following features: -* Docking with explicit water molecules attached to the ligand [(paper)](https://pubs.acs.org/doi/abs/10.1021/jm2005145) -* Sampling of macrocyclic conformations during docking [(paper)](https://link.springer.com/article/10.1007/s10822-019-00241-9) -* Creation of RDKit molecules with docked coordinates from PDBQT or DLG files without loss of bond orders. +and [AutoDock-GPU](https://github.com/ccsb-scripps/AutoDock-GPU). +It converts the docking output to RDKit molecules and +SD files, without loss of bond orders. Meeko is developed by the [Forli lab](https://forlilab.org/) at the [Center for Computational Structural Biology (CCSB)](https://ccsb.scripps.edu) at [Scripps Research](https://www.scripps.edu/). +## Usage notes +Meeko does not calculate 3D coordinates or assign protonation states. +Input molecules must have explicit hydrogens. + +Sampling of macrocycle conformers ([paper](https://doi.org/10.1017/qrd.2022.18)) +is enabled by default. + ## Recent changes +The Python API for creating RDKit molecules from docking results changed in `v0.4.0`. +See [example below](#2.-rdkit-molecule-from-docking-results). + The `--pH` option was removed since `v0.3.0`. See issue https://github.com/forlilab/Meeko/issues/11 for more info. ## Dependencies @@ -26,10 +34,12 @@ The `--pH` option was removed since `v0.3.0`. See issue https://github.com/forli * Numpy * Scipy * RDKit +* ProDy (optionally, for covalent docking) Conda or Miniconda can install the dependencies: ```bash conda install -c conda-forge numpy scipy rdkit +pip install prody # optional. pip recommended at http://prody.csb.pitt.edu/downloads/ ``` ## Installation (from PyPI) @@ -39,7 +49,7 @@ $ pip install meeko If using conda, `pip` installs the package in the active environment. ## Installation (from source) - +You'll get the develop branch, which may be ahead of the latest release. ```bash $ git clone https://github.com/forlilab/Meeko $ cd Meeko @@ -52,70 +62,163 @@ take effect immediately without the need to run `pip install .` again. $ pip install --editable . ``` -## Usage notes -Meeko does not calculate 3D coordinates or assign protonation states. -Input molecules must have explicit hydrogens. ## Examples using the command line scripts + +#### 1. make PDBQT files +AutoDock-GPU and Vina read molecules in the PDBQT format. These can be prepared +by Meeko from SD files, or from Mol2 files, but SDF is preferred. ```console mk_prepare_ligand.py -i molecule.sdf -o molecule.pdbqt mk_prepare_ligand.py -i multi_mol.sdf --multimol_outdir folder_for_pdbqt_files -mk_copy_coords.py vina_results.pdbqt -o vina_results.sdf -mk_copy_coords.py adgpu_results.dlg -o adgpu_results.sdf ``` -## Quick Python tutorial +#### 2. convert docking results to SDF +AutoDock-GPU and Vina write docking results in the PDBQT format. The DLG output +from AutoDock-GPU contains docked poses in PDBQT blocks. +Meeko generates RDKit molecules from PDBQT files (or strings) using the SMILES +string in the REMARK lines. The REMARK lines also have the mapping of atom indices +between SMILES and PDBQT. SD files with docked coordinates are written +from RDKit molecules. -#### 1. flexible macrocycle with attached waters +```console +mk_export.py molecule.pdbqt -o molecule.sdf +mk_export.py vina_results.pdbqt -o vina_results.sdf +mk_export.py autodock-gpu_results.dlg -o autodock-gpu_results.sdf +``` + +## Python tutorial + +#### 1. making PDBQT strings for Vina or for AutoDock-GPU ```python from meeko import MoleculePreparation from rdkit import Chem -input_molecule_file = 'example/BACE_macrocycle/BACE_4.mol2' -mol = Chem.MolFromMol2File(input_molecule_file) +input_molecule_file = "example/BACE_macrocycle/BACE_4.sdf" + +# there is one molecule in this SD file, this loop iterates just once +for mol in Chem.SDMolSupplier(input_molecule_file, removeHs=False): + preparator = MoleculePreparation() + preparator.prepare(mol) + preparator.show_setup() # optional + pdbqt_string = preparator.write_pdbqt_string() +``` +At this point, `pdbqt_string` can be written to a file for +docking with AutoDock-GPU or Vina, or passed directly to Vina within Python +using `set_ligand_from_string(pdbqt_string)`. For context, see +[the docs on using Vina from Python](https://autodock-vina.readthedocs.io/en/latest/docking_python.html). + + +#### 2. RDKit molecule from docking results + +```python +from meeko import PDBQTMolecule +from meeko import RDKitMolCreate -preparator = MoleculePreparation(hydrate=True) # macrocycles flexible by default since v0.3.0 -preparator.prepare(mol) -preparator.show_setup() +fn = "autodock-gpu_results.dlg" +pdbqt_mol = PDBQTMolecule.from_file(fn, is_dlg=True, skip_typing=True) +rdkitmol_list = RDKitMolCreate.from_pdbqt_mol(pdbqt_mol) +``` +The length of `rdkitmol_list` is one if there are no sidechains and only one +ligand was docked. +If multiple ligands and/or sidechains are docked simultaneously, each will be +an individual RDKit molecule in `rdkitmol_list`. +Sidechains are truncated at the C-alpha. +Note that docking multiple +ligands simultaneously is only available in Vina, and it differs from docking +multiple ligands one after the other. Each failed creation of an RDKit molecule +for a ligand or sidechain results in a `None` in `rdkitmol_list`. -output_pdbqt_file = "test_macrocycle_hydrate.pdbqt" -preparator.write_pdbqt_file(output_pdbqt_file) +For Vina's output PDBQT files, omit `is_dlg=True`. +```python +pdbqt_mol = PDBQTMolecule.from_file("vina_results.pdbqt", skip_typing=True) +rdkitmol_list = RDKitMolCreate.from_pdbqt_mol(pdbqt_mol) ``` -Alternatively, the preparator can be initialized from a dictionary, -which is useful for saving and loading configuration files with json. -The command line tool `mk_prepare_ligand.py` can read the json files. +When using Vina from Python, the output string can be passed directly. +See [the docs](https://autodock-vina.readthedocs.io/en/latest/docking_python.html) +for context on the `v` object. +```python +vina_output_string = v.poses() +pdbqt_mol = PDBQTMolecule(vina_output_string, is_dlg=True, skip_typing=True) +rdkitmol_list = RDKitMolCreate.from_pdbqt_mol(pdbqt_mol) +``` + +#### 3. Initializing MoleculePreparation from a dictionary (or JSON) + +This is useful for saving and loading configuration files with json. ```python import json from meeko import MoleculePreparation -mk_config = {"hydrate": True} +mk_config = {"hydrate": True} # any arguments of MoleculePreparation.__init__ print(json.dumps(mk_config), file=open('mk_config.json', 'w')) with open('mk_config.json') as f: mk_config = json.load(f) preparator = MoleculePreparation.from_config(mk_config) ``` +The command line tool `mk_prepare_ligand.py` can read the json files using +option `-c` or `--config`. -#### 2. RDKit molecule from docking results -Assuming that 'docked.dlg' was written by AutoDock-GPU and that Meeko prepared the input ligands. +## Possibly useful configurations of MoleculePreparation + +Here we create an instance of MoleculePreparation that attaches pseudo +waters to the ligand ([see paper on hydrated docking](https://pubs.acs.org/doi/abs/10.1021/jm2005145)), +keeps macrocycles rigid (generally a bad idea), +and keeps conjugated bonds and amide bonds rigid. +By default, most amides are kept rigid, except for tertiary amides with +different substituents on the nitrogen. ```python -from meeko import PDBQTMolecule +preparator = MoleculePreparation( + hydrate=True, + rigid_macrocycles=True, + rigidify_bonds_smarts = ["C=CC=C", "[CX3](=O)[NX3]"], + rigidify_bonds_indices = [(1, 2), (0, 2)], +) +``` -with open("docked.dlg") as f: - dlg_string = f.read() -pdbqt_mol = PDBQTMolecule(dlg_string, is_dlg=True, skip_typing=True) +The same can be done with the command line script. Note that indices of the +atoms in the SMARTS are 0-based for the Python API but +1-based for the command line script: +```console +mk_prepare_ligand.py\ + --hydrate\ + --rigid_macrocycles\ + --rigidify_bonds_smarts "C=CC=C"\ + --rigidify_bonds_indices 2 3\ + --rigidify_bonds_smarts "[CX3](=O)[NX3]"\ + --rigidify_bonds_indices 1 3 +``` -# alternatively, read the .dlg file directly -pdbqt_mol = PDBQTMolecule.from_file("docked.dlg", is_dlg=True, skip_typing=True) +## Docking covalent ligands as flexible sidechains -for pose in pdbqt_mol: - rdkit_mol = pose.export_rdkit_mol() -``` +The input ligand must be the product of the reaction and contain the +atoms of the flexible sidechain up to (and including) the C-alpha. +For example, if the ligand is an acrylamide (smiles: `C=CC(=O)N`) reacting +with a cysteine (sidechain smiles: `CCS`), then the input ligand for +Meeko must correspond to smiles `CCSCCC(=O)N`. -For Vina's output PDBQT files, omit `is_dlg=True`. -```python -pdbqt_mol = PDBQTMolecule.from_file("docking_results_from_vina.pdbqt", skip_typing=True) -``` +Meeko will align the ligand atoms that match the C-alpha and C-beta of +the protein sidechain. Options `--tether_smarts` and `--tether_smarts_indices` +define these atoms. For a cysteine, `--tether_smarts "SCC"` and +`--tether_smarts_indices 3 2` would work, although it is safer to define +a more spefic SMARTS to avoid matching the ligand more than once. The first +index (3 in this example) defines the C-alpha, and the second index defines +the C-beta. + +For the example in this repository, which is based on PDB entry 7aeh, +the following options prepare the covalently bound ligand for tethered docking: +```console +cd example/covalent_docking + +mk_prepare_ligand.py\ + -i ligand_including_cys_sidechain.sdf\ + --receptor protein.pdb\ + --rec_residue ":CYS:6"\ + --tether_smarts "NC(=O)C(O)(C)SCC"\ + --tether_smarts_indices 9 8\ + -o prepared.pdbqt +``` \ No newline at end of file diff --git a/example/BACE_macrocycle/BACE_4.mol2 b/example/BACE_macrocycle/BACE_4.mol2 deleted file mode 100644 index 8084010d..00000000 --- a/example/BACE_macrocycle/BACE_4.mol2 +++ /dev/null @@ -1,192 +0,0 @@ -# created with PyMOL 2.2.0 -@MOLECULE -BACE_4 -90 92 1 -SMALL -USER_CHARGES -@ATOM -1 N 2.126 -0.781 0.744 N.pl3 1 UNL1 -0.305 -2 N 4.814 -0.256 -1.167 N.pl3 1 UNL1 -0.338 -3 N 7.201 -2.740 -0.102 N.4 1 UNL1 0.375 -4 C 7.721 2.741 -2.365 C.3 1 UNL1 -0.054 -5 C 6.298 2.260 -2.702 C.3 1 UNL1 -0.048 -6 C 5.207 2.946 -1.810 C.3 1 UNL1 -0.048 -7 C 5.537 3.041 -0.296 C.3 1 UNL1 -0.052 -8 C 4.366 3.521 0.584 C.3 1 UNL1 -0.051 -9 C 4.868 3.716 2.032 C.3 1 UNL1 -0.043 -10 C 3.782 3.990 3.093 C.3 1 UNL1 -0.011 -11 C 3.119 2.720 3.667 C.3 1 UNL1 0.077 -12 C 2.324 0.642 2.871 C.3 1 UNL1 0.240 -13 C 2.833 0.069 1.572 C.2 1 UNL1 0.172 -14 C 0.931 -1.483 1.209 C.3 1 UNL1 0.070 -15 C 2.422 -0.941 -0.699 C.3 1 UNL1 0.155 -16 C 1.881 0.276 -1.464 C.3 1 UNL1 0.025 -17 C 3.861 -1.238 -1.135 C.2 1 UNL1 0.159 -18 C 6.118 -0.368 -1.806 C.3 1 UNL1 0.056 -19 C 6.205 0.700 -2.941 C.3 1 UNL1 -0.003 -20 C 7.299 -0.318 -0.803 C.3 1 UNL1 0.043 -21 C 7.188 -1.339 0.350 C.3 1 UNL1 -0.099 -22 C 7.151 -3.643 1.065 C.3 1 UNL1 -0.090 -23 C 7.376 -5.092 0.624 C.3 1 UNL1 -0.034 -24 C 8.417 -4.389 1.485 C.3 1 UNL1 -0.034 -25 C 5.934 -3.562 1.961 C.2 1 UNL1 -0.092 -26 C 6.066 -3.059 3.264 C.2 1 UNL1 -0.040 -27 C 4.952 -2.945 4.127 C.2 1 UNL1 -0.080 -28 C 3.692 -3.355 3.630 C.2 1 UNL1 -0.052 -29 C 3.561 -3.854 2.333 C.2 1 UNL1 -0.057 -30 C 4.672 -3.955 1.499 C.2 1 UNL1 -0.048 -31 C 5.151 -2.386 5.552 C.3 1 UNL1 -0.041 -32 C 5.724 -0.955 5.473 C.3 1 UNL1 -0.037 -33 C 3.834 -2.321 6.362 C.3 1 UNL1 -0.037 -34 C 6.133 -3.293 6.326 C.3 1 UNL1 -0.037 -35 O 2.331 2.056 2.701 O.3 1 UNL1 -0.443 -36 O 3.933 0.466 1.253 O.2 1 UNL1 -0.372 -37 O 4.104 -2.342 -1.600 O.2 1 UNL1 -0.377 -38 O 8.504 -0.513 -1.501 O.3 1 UNL1 -0.488 -39 H01 8.377 2.558 -3.216 H 1 UNL1 0.000 -40 H02 7.702 3.808 -2.145 H 1 UNL1 0.000 -41 H03 8.093 2.197 -1.497 H 1 UNL1 0.000 -42 H04 6.034 2.628 -3.693 H 1 UNL1 0.000 -43 H05 4.323 2.312 -1.882 H 1 UNL1 0.000 -44 H06 5.055 3.958 -2.184 H 1 UNL1 0.000 -45 H07 6.325 3.787 -0.197 H 1 UNL1 0.000 -46 H08 5.841 2.053 0.050 H 1 UNL1 0.000 -47 H09 3.568 2.779 0.569 H 1 UNL1 0.000 -48 H10 3.983 4.466 0.199 H 1 UNL1 0.000 -49 H11 5.489 4.612 2.009 H 1 UNL1 0.000 -50 H12 5.401 2.812 2.325 H 1 UNL1 0.000 -51 H13 2.994 4.554 2.594 H 1 UNL1 0.000 -52 H14 4.239 4.539 3.916 H 1 UNL1 0.000 -53 H15 2.467 3.020 4.487 H 1 UNL1 0.000 -54 H16 3.898 2.041 4.015 H 1 UNL1 0.000 -55 H17 2.944 0.337 3.714 H 1 UNL1 0.000 -56 H18 1.313 0.288 3.072 H 1 UNL1 0.000 -57 H19 0.106 -1.288 0.524 H 1 UNL1 0.000 -58 H20 1.129 -2.554 1.244 H 1 UNL1 0.000 -59 H21 0.666 -1.129 2.205 H 1 UNL1 0.000 -60 H22 1.913 -1.871 -0.951 H 1 UNL1 0.000 -61 H23 0.963 0.624 -0.990 H 1 UNL1 0.000 -62 H24 2.623 1.075 -1.448 H 1 UNL1 0.000 -63 H25 1.672 -0.006 -2.496 H 1 UNL1 0.000 -64 H26 6.215 -1.357 -2.253 H 1 UNL1 0.000 -65 H27 7.203 0.498 -3.330 H 1 UNL1 0.000 -66 H28 5.316 0.550 -3.553 H 1 UNL1 0.000 -67 H29 7.272 0.666 -0.334 H 1 UNL1 0.000 -68 H30 8.062 -1.200 0.986 H 1 UNL1 0.000 -69 H31 6.256 -1.157 0.884 H 1 UNL1 0.000 -70 H32 7.392 -5.612 -0.334 H 1 UNL1 0.000 -71 H33 6.768 -5.892 1.047 H 1 UNL1 0.000 -72 H34 8.902 -4.606 2.437 H 1 UNL1 0.000 -73 H35 9.381 -4.111 1.058 H 1 UNL1 0.000 -74 H36 7.049 -2.749 3.619 H 1 UNL1 0.000 -75 H37 2.812 -3.280 4.269 H 1 UNL1 0.000 -76 H38 2.582 -4.167 1.970 H 1 UNL1 0.000 -77 H39 4.559 -4.340 0.486 H 1 UNL1 0.000 -78 H40 6.690 -0.978 4.968 H 1 UNL1 0.000 -79 H41 5.038 -0.318 4.915 H 1 UNL1 0.000 -80 H42 5.851 -0.558 6.480 H 1 UNL1 0.000 -81 H43 3.030 -2.779 5.785 H 1 UNL1 0.000 -82 H44 3.958 -2.859 7.302 H 1 UNL1 0.000 -83 H45 3.585 -1.280 6.568 H 1 UNL1 0.000 -84 H46 7.025 -2.723 6.587 H 1 UNL1 0.000 -85 H47 5.654 -3.654 7.236 H 1 UNL1 0.000 -86 H48 6.414 -4.141 5.702 H 1 UNL1 0.000 -87 H 4.557 0.664 -0.835 H 1 UNL1 0.076 -88 H 9.226 -0.094 -0.964 H 1 UNL1 0.076 -89 H 8.063 -2.907 -0.672 H 1 UNL1 -0.154 -90 H 6.368 -2.932 -0.700 H 1 UNL1 -0.154 -@BOND -1 1 13 1 -2 1 14 1 -3 2 17 1 -4 2 87 1 -5 3 21 1 -6 3 22 1 -7 4 39 1 -8 4 40 1 -9 4 41 1 -10 4 5 1 -11 5 6 1 -12 5 42 1 -13 6 7 1 -14 6 43 1 -15 6 44 1 -16 7 8 1 -17 7 45 1 -18 7 46 1 -19 8 9 1 -20 8 47 1 -21 8 48 1 -22 9 10 1 -23 9 49 1 -24 9 50 1 -25 10 11 1 -26 10 51 1 -27 10 52 1 -28 11 53 1 -29 11 54 1 -30 12 55 1 -31 12 56 1 -32 12 13 1 -33 14 57 1 -34 14 58 1 -35 14 59 1 -36 1 15 1 -37 15 60 1 -38 15 16 1 -39 16 61 1 -40 16 62 1 -41 16 63 1 -42 15 17 1 -43 2 18 1 -44 18 20 1 -45 18 64 1 -46 5 19 1 -47 18 19 1 -48 19 65 1 -49 19 66 1 -50 20 21 1 -51 20 67 1 -52 21 68 1 -53 21 69 1 -54 22 24 1 -55 22 25 1 -56 22 23 1 -57 23 24 1 -58 23 70 1 -59 23 71 1 -60 24 72 1 -61 24 73 1 -62 25 26 1 -63 26 27 2 -64 26 74 1 -65 27 31 1 -66 27 28 1 -67 28 75 1 -68 28 29 2 -69 29 76 1 -70 25 30 2 -71 29 30 1 -72 30 77 1 -73 31 33 1 -74 31 34 1 -75 31 32 1 -76 32 78 1 -77 32 79 1 -78 32 80 1 -79 33 81 1 -80 33 82 1 -81 33 83 1 -82 34 84 1 -83 34 85 1 -84 34 86 1 -85 11 35 1 -86 12 35 1 -87 13 36 2 -88 17 37 2 -89 20 38 1 -90 38 88 1 -91 3 89 1 -92 3 90 1 -@SUBSTRUCTURE -1 UNL1 1 GROUP 1 **** UNL diff --git a/example/BACE_macrocycle/BACE_4.sdf b/example/BACE_macrocycle/BACE_4.sdf new file mode 100644 index 00000000..a3cb942f --- /dev/null +++ b/example/BACE_macrocycle/BACE_4.sdf @@ -0,0 +1,186 @@ + + RDKit 3D + + 89 91 0 0 0 0 0 0 0 0999 V2000 + -3.5293 -0.1204 3.2757 C 0 0 0 0 0 0 0 0 0 0 0 0 + -3.1130 -0.8666 1.9998 C 0 0 2 0 0 0 0 0 0 0 0 0 + -4.1232 -1.9955 1.6890 C 0 0 0 0 0 0 0 0 0 0 0 0 + -3.8849 -2.6381 0.3018 C 0 0 0 0 0 0 0 0 0 0 0 0 + -5.1780 -3.0229 -0.4406 C 0 0 0 0 0 0 0 0 0 0 0 0 + -6.1038 -1.8398 -0.8089 C 0 0 0 0 0 0 0 0 0 0 0 0 + -5.3602 -0.6465 -1.4290 C 0 0 0 0 0 0 0 0 0 0 0 0 + -6.3375 0.4312 -1.9193 C 0 0 0 0 0 0 0 0 0 0 0 0 + -5.6483 1.5536 -2.4473 O 0 0 0 0 0 0 0 0 0 0 0 0 + -5.1197 2.3787 -1.4183 C 0 0 0 0 0 0 0 0 0 0 0 0 + -3.6133 2.2857 -1.3870 C 0 0 0 0 0 0 0 0 0 0 0 0 + -3.0168 1.9286 -2.4401 O 0 0 0 0 0 0 0 0 0 0 0 0 + -2.8454 2.6628 -0.2159 N 0 0 0 0 0 0 0 0 0 0 0 0 + -1.3676 2.6956 -0.2722 C 0 0 2 0 0 0 0 0 0 0 0 0 + -0.7666 1.9394 0.8938 C 0 0 0 0 0 0 0 0 0 0 0 0 + -0.3457 2.5542 1.9095 O 0 0 0 0 0 0 0 0 0 0 0 0 + -0.7419 0.5037 0.8598 N 0 0 0 0 0 0 0 0 0 0 0 0 + -0.5712 -0.3277 2.0607 C 0 0 1 0 0 0 0 0 0 0 0 0 + -1.6668 -1.4212 2.1173 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.8548 -0.9506 2.1130 C 0 0 1 0 0 0 0 0 0 0 0 0 + 1.3720 -1.4532 0.7427 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3872 -2.5033 0.9040 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3040 -2.5435 -0.2456 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4506 -3.9461 -0.8276 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.7087 -2.8759 -1.6141 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.5953 -1.7648 -0.1500 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.6389 -2.2495 0.6491 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.8253 -1.5316 0.7692 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9827 -0.3138 0.1040 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9413 0.2154 -0.6978 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.7451 -0.5349 -0.8050 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.0822 1.5400 -1.4810 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.4259 2.2659 -1.2170 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.0009 1.2436 -2.9929 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.9437 2.5043 -1.0830 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.7724 -0.0379 2.6593 O 0 0 0 0 0 0 0 0 0 0 0 0 + -0.8702 4.1465 -0.3548 C 0 0 0 0 0 0 0 0 0 0 0 0 + -3.5369 3.0968 1.0040 C 0 0 0 0 0 0 0 0 0 0 0 0 + -4.5704 0.2487 3.1836 H 0 0 0 0 0 0 0 0 0 0 0 0 + -3.4667 -0.7932 4.1553 H 0 0 0 0 0 0 0 0 0 0 0 0 + -2.8859 0.7705 3.4452 H 0 0 0 0 0 0 0 0 0 0 0 0 + -3.1671 -0.1381 1.1667 H 0 0 0 0 0 0 0 0 0 0 0 0 + -5.1452 -1.5689 1.7453 H 0 0 0 0 0 0 0 0 0 0 0 0 + -4.0677 -2.7835 2.4758 H 0 0 0 0 0 0 0 0 0 0 0 0 + -3.2664 -1.9855 -0.3500 H 0 0 0 0 0 0 0 0 0 0 0 0 + -3.2862 -3.5630 0.4518 H 0 0 0 0 0 0 0 0 0 0 0 0 + -4.8954 -3.5528 -1.3782 H 0 0 0 0 0 0 0 0 0 0 0 0 + -5.7467 -3.7466 0.1831 H 0 0 0 0 0 0 0 0 0 0 0 0 + -6.8623 -2.2098 -1.5310 H 0 0 0 0 0 0 0 0 0 0 0 0 + -6.6623 -1.5013 0.0898 H 0 0 0 0 0 0 0 0 0 0 0 0 + -4.7076 -0.1970 -0.6593 H 0 0 0 0 0 0 0 0 0 0 0 0 + -4.7304 -0.9907 -2.2788 H 0 0 0 0 0 0 0 0 0 0 0 0 + -7.0573 0.7169 -1.1187 H 0 0 0 0 0 0 0 0 0 0 0 0 + -6.9522 0.0009 -2.7390 H 0 0 0 0 0 0 0 0 0 0 0 0 + -5.3830 3.4284 -1.6562 H 0 0 0 0 0 0 0 0 0 0 0 0 + -5.5511 2.1657 -0.4128 H 0 0 0 0 0 0 0 0 0 0 0 0 + -1.0014 2.1905 -1.1957 H 0 0 0 0 0 0 0 0 0 0 0 0 + -0.9396 0.0279 -0.0491 H 0 0 0 0 0 0 0 0 0 0 0 0 + -0.6896 0.2920 2.9762 H 0 0 0 0 0 0 0 0 0 0 0 0 + -1.4739 -2.1408 1.2963 H 0 0 0 0 0 0 0 0 0 0 0 0 + -1.5729 -1.9874 3.0693 H 0 0 0 0 0 0 0 0 0 0 0 0 + 0.8173 -1.8175 2.8075 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1.7664 -0.5906 0.1607 H 0 0 0 0 0 0 0 0 0 0 0 0 + 0.5296 -1.8817 0.1619 H 0 0 0 0 0 0 0 0 0 0 0 0 + 2.9574 -2.3111 1.7591 H 0 0 0 0 0 0 0 0 0 0 0 0 + 2.7796 -4.7172 -0.4035 H 0 0 0 0 0 0 0 0 0 0 0 0 + 4.4433 -4.1993 -1.2563 H 0 0 0 0 0 0 0 0 0 0 0 0 + 3.2740 -2.4963 -2.4893 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1.6091 -3.0460 -1.6469 H 0 0 0 0 0 0 0 0 0 0 0 0 + 5.5300 -3.1870 1.1752 H 0 0 0 0 0 0 0 0 0 0 0 0 + 7.6283 -1.9224 1.3834 H 0 0 0 0 0 0 0 0 0 0 0 0 + 7.9266 0.1937 0.2276 H 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9295 -0.1728 -1.4154 H 0 0 0 0 0 0 0 0 0 0 0 0 + 7.4719 3.2294 -1.7732 H 0 0 0 0 0 0 0 0 0 0 0 0 + 7.5355 2.5072 -0.1396 H 0 0 0 0 0 0 0 0 0 0 0 0 + 8.2885 1.6507 -1.5536 H 0 0 0 0 0 0 0 0 0 0 0 0 + 6.7907 0.5211 -3.2904 H 0 0 0 0 0 0 0 0 0 0 0 0 + 5.0104 0.8137 -3.2653 H 0 0 0 0 0 0 0 0 0 0 0 0 + 6.1428 2.1777 -3.5863 H 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9463 2.1152 -1.3828 H 0 0 0 0 0 0 0 0 0 0 0 0 + 4.9424 2.6682 0.0138 H 0 0 0 0 0 0 0 0 0 0 0 0 + 5.0739 3.4882 -1.5816 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1.7845 0.7664 2.0803 H 0 0 0 0 0 0 0 0 0 0 0 0 + -1.3185 4.6403 -1.2441 H 0 0 0 0 0 0 0 0 0 0 0 0 + -1.1458 4.7235 0.5555 H 0 0 0 0 0 0 0 0 0 0 0 0 + 0.2327 4.1618 -0.4657 H 0 0 0 0 0 0 0 0 0 0 0 0 + -4.2436 3.9161 0.7654 H 0 0 0 0 0 0 0 0 0 0 0 0 + -2.8232 3.4837 1.7623 H 0 0 0 0 0 0 0 0 0 0 0 0 + -4.0893 2.2394 1.4438 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 + 2 3 1 0 + 3 4 1 0 + 4 5 1 0 + 5 6 1 0 + 6 7 1 0 + 7 8 1 0 + 8 9 1 0 + 9 10 1 0 + 10 11 1 0 + 11 12 2 0 + 11 13 1 0 + 13 14 1 0 + 14 15 1 0 + 15 16 2 0 + 15 17 1 0 + 17 18 1 0 + 18 19 1 0 + 18 20 1 0 + 20 21 1 0 + 21 22 1 0 + 22 23 1 0 + 23 24 1 0 + 24 25 1 0 + 23 26 1 0 + 26 27 2 0 + 27 28 1 0 + 28 29 2 0 + 29 30 1 0 + 30 31 2 0 + 30 32 1 0 + 32 33 1 0 + 32 34 1 0 + 32 35 1 0 + 20 36 1 0 + 14 37 1 0 + 13 38 1 0 + 19 2 1 0 + 25 23 1 0 + 31 26 1 0 + 1 39 1 0 + 1 40 1 0 + 1 41 1 0 + 2 42 1 6 + 3 43 1 0 + 3 44 1 0 + 4 45 1 0 + 4 46 1 0 + 5 47 1 0 + 5 48 1 0 + 6 49 1 0 + 6 50 1 0 + 7 51 1 0 + 7 52 1 0 + 8 53 1 0 + 8 54 1 0 + 10 55 1 0 + 10 56 1 0 + 14 57 1 6 + 17 58 1 0 + 18 59 1 1 + 19 60 1 0 + 19 61 1 0 + 20 62 1 1 + 21 63 1 0 + 21 64 1 0 + 22 65 1 0 + 24 66 1 0 + 24 67 1 0 + 25 68 1 0 + 25 69 1 0 + 27 70 1 0 + 28 71 1 0 + 29 72 1 0 + 31 73 1 0 + 33 74 1 0 + 33 75 1 0 + 33 76 1 0 + 34 77 1 0 + 34 78 1 0 + 34 79 1 0 + 35 80 1 0 + 35 81 1 0 + 35 82 1 0 + 36 83 1 0 + 37 84 1 0 + 37 85 1 0 + 37 86 1 0 + 38 87 1 0 + 38 88 1 0 + 38 89 1 0 +M END +$$$$ diff --git a/example/covalent_docking/ligand_including_cys_sidechain.sdf b/example/covalent_docking/ligand_including_cys_sidechain.sdf new file mode 100644 index 00000000..e92e5b40 --- /dev/null +++ b/example/covalent_docking/ligand_including_cys_sidechain.sdf @@ -0,0 +1,154 @@ + + RDKit 3D + + 73 76 0 0 0 0 0 0 0 0999 V2000 + -0.7941 -3.2619 -4.1734 C 0 0 0 0 0 0 0 0 0 0 0 0 + -1.2977 -4.0749 -3.1533 C 0 0 0 0 0 0 0 0 0 0 0 0 + -1.9226 -3.5002 -2.0414 C 0 0 0 0 0 0 0 0 0 0 0 0 + -2.0387 -2.1026 -1.9363 C 0 0 0 0 0 0 0 0 0 0 0 0 + -1.5458 -1.2942 -2.9769 C 0 0 0 0 0 0 0 0 0 0 0 0 + -0.9233 -1.8731 -4.0878 C 0 0 0 0 0 0 0 0 0 0 0 0 + -2.6588 -1.4802 -0.7061 C 0 0 0 0 0 0 0 0 0 0 0 0 + -1.8038 -1.7333 0.5686 C 0 0 2 0 0 0 0 0 0 0 0 0 + -2.2994 -1.0143 1.8794 C 0 0 1 0 0 0 0 0 0 0 0 0 + -2.3245 0.5013 1.7276 C 0 0 0 0 0 0 0 0 0 0 0 0 + -1.3190 1.1798 2.0780 O 0 0 0 0 0 0 0 0 0 0 0 0 + -3.4624 1.1770 1.1631 N 0 0 0 0 0 0 0 0 0 0 0 0 + -3.4681 2.6174 0.9160 C 0 0 0 0 0 0 0 0 0 0 0 0 + -2.6240 2.9405 -0.2811 C 0 0 0 0 0 0 0 0 0 0 0 0 + -1.4294 3.6667 -0.1512 C 0 0 0 0 0 0 0 0 0 0 0 0 + -0.6654 3.9343 -1.2908 C 0 0 0 0 0 0 0 0 0 0 0 0 + -1.0907 3.4759 -2.5386 C 0 0 0 0 0 0 0 0 0 0 0 0 + -2.2816 2.7535 -2.6286 C 0 0 0 0 0 0 0 0 0 0 0 0 + -3.0159 2.5052 -1.5108 N 0 0 0 0 0 0 0 0 0 0 0 0 + -3.5757 -1.4603 2.2813 O 0 0 0 0 0 0 0 0 0 0 0 0 + -1.1426 -1.4278 3.2638 S 0 0 0 0 0 0 0 0 0 0 0 0 + -1.6146 -3.1773 3.5499 C 0 0 0 0 0 0 0 0 0 0 0 0 + -0.3832 -4.0673 3.4587 C 0 0 0 0 0 0 0 0 0 0 0 0 + -0.3710 -1.4840 0.3255 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.1841 -0.2868 -0.2428 C 0 0 0 0 0 0 0 0 0 0 0 0 + -0.5671 0.6425 -0.6398 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.6698 -0.1776 -0.4483 C 0 0 1 0 0 0 0 0 0 0 0 0 + 2.1026 -0.9109 -1.7406 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.4383 0.1696 -2.7808 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.5048 1.4025 -1.9711 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.8963 2.5140 -2.4189 O 0 0 0 0 0 0 0 0 0 0 0 0 + 2.0600 1.2136 -0.6406 N 0 0 0 0 0 0 0 0 0 0 0 0 + 2.1172 2.2181 0.4222 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3864 2.0603 1.2106 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4086 1.2653 2.3685 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6006 1.0889 3.0775 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7778 1.6981 2.6327 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7648 2.4813 1.4759 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.5753 2.6588 0.7629 C 0 0 0 0 0 0 0 0 0 0 0 0 + -0.3056 -3.7085 -5.0302 H 0 0 0 0 0 0 0 0 0 0 0 0 + -1.2019 -5.1514 -3.2235 H 0 0 0 0 0 0 0 0 0 0 0 0 + -2.3063 -4.1428 -1.2592 H 0 0 0 0 0 0 0 0 0 0 0 0 + -1.6271 -0.2161 -2.9253 H 0 0 0 0 0 0 0 0 0 0 0 0 + -0.5325 -1.2432 -4.8772 H 0 0 0 0 0 0 0 0 0 0 0 0 + -3.6657 -1.9300 -0.5849 H 0 0 0 0 0 0 0 0 0 0 0 0 + -2.8196 -0.3960 -0.8677 H 0 0 0 0 0 0 0 0 0 0 0 0 + -1.9038 -2.8218 0.7617 H 0 0 0 0 0 0 0 0 0 0 0 0 + -4.3135 0.6378 0.8949 H 0 0 0 0 0 0 0 0 0 0 0 0 + -4.5088 2.9499 0.7135 H 0 0 0 0 0 0 0 0 0 0 0 0 + -3.1210 3.1589 1.8239 H 0 0 0 0 0 0 0 0 0 0 0 0 + -1.0899 4.0139 0.8171 H 0 0 0 0 0 0 0 0 0 0 0 0 + 0.2547 4.4979 -1.2060 H 0 0 0 0 0 0 0 0 0 0 0 0 + -0.5033 3.6789 -3.4264 H 0 0 0 0 0 0 0 0 0 0 0 0 + -2.6247 2.3925 -3.5882 H 0 0 0 0 0 0 0 0 0 0 0 0 + -4.1786 -1.4981 1.4998 H 0 0 0 0 0 0 0 0 0 0 0 0 + -2.0470 -3.2611 4.5699 H 0 0 0 0 0 0 0 0 0 0 0 0 + -2.3768 -3.5437 2.8342 H 0 0 0 0 0 0 0 0 0 0 0 0 + 0.3279 -3.8104 4.2703 H 0 0 0 0 0 0 0 0 0 0 0 0 + -0.6820 -5.1302 3.5699 H 0 0 0 0 0 0 0 0 0 0 0 0 + 0.1190 -3.9345 2.4790 H 0 0 0 0 0 0 0 0 0 0 0 0 + 0.2898 -2.2690 0.5267 H 0 0 0 0 0 0 0 0 0 0 0 0 + 2.2005 -0.6040 0.4297 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3234 -1.6045 -2.1260 H 0 0 0 0 0 0 0 0 0 0 0 0 + 3.0176 -1.5082 -1.5308 H 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4109 -0.0355 -3.2792 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1.6224 0.2597 -3.5312 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1.2334 2.1093 1.0873 H 0 0 0 0 0 0 0 0 0 0 0 0 + 2.0652 3.2388 -0.0143 H 0 0 0 0 0 0 0 0 0 0 0 0 + 2.5047 0.7827 2.7199 H 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6129 0.4788 3.9707 H 0 0 0 0 0 0 0 0 0 0 0 0 + 6.6999 1.5618 3.1831 H 0 0 0 0 0 0 0 0 0 0 0 0 + 6.6781 2.9482 1.1301 H 0 0 0 0 0 0 0 0 0 0 0 0 + 4.5804 3.2622 -0.1359 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 + 2 3 1 0 + 3 4 2 0 + 4 5 1 0 + 5 6 2 0 + 4 7 1 0 + 7 8 1 0 + 8 9 1 0 + 9 10 1 0 + 10 11 2 0 + 10 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 + 18 19 2 0 + 9 20 1 1 + 9 21 1 0 + 21 22 1 0 + 22 23 1 0 + 8 24 1 0 + 24 25 1 0 + 25 26 2 0 + 25 27 1 0 + 27 28 1 0 + 28 29 1 0 + 29 30 1 0 + 30 31 2 0 + 30 32 1 0 + 32 33 1 0 + 33 34 1 0 + 34 35 2 0 + 35 36 1 0 + 36 37 2 0 + 37 38 1 0 + 38 39 2 0 + 6 1 1 0 + 19 14 1 0 + 32 27 1 0 + 39 34 1 0 + 1 40 1 0 + 2 41 1 0 + 3 42 1 0 + 5 43 1 0 + 6 44 1 0 + 7 45 1 0 + 7 46 1 0 + 8 47 1 1 + 12 48 1 0 + 13 49 1 0 + 13 50 1 0 + 15 51 1 0 + 16 52 1 0 + 17 53 1 0 + 18 54 1 0 + 20 55 1 0 + 22 56 1 0 + 22 57 1 0 + 23 58 1 0 + 23 59 1 0 + 23 60 1 0 + 24 61 1 0 + 27 62 1 1 + 28 63 1 0 + 28 64 1 0 + 29 65 1 0 + 29 66 1 0 + 33 67 1 0 + 33 68 1 0 + 35 69 1 0 + 36 70 1 0 + 37 71 1 0 + 38 72 1 0 + 39 73 1 0 +M END diff --git a/example/covalent_docking/prepared.pdbqt b/example/covalent_docking/prepared.pdbqt new file mode 100644 index 00000000..f1afbb74 --- /dev/null +++ b/example/covalent_docking/prepared.pdbqt @@ -0,0 +1,81 @@ +BEGIN_RES CYS 6 +REMARK SMILES CCS[C@@](O)(C(=O)NCc1ccccn1)[C@@H](Cc1ccccc1)NC(=O)[C@H]1CCC(=O)N1Cc1ccccc1 +REMARK SMILES IDX 1 1 2 2 3 3 4 4 16 5 17 6 18 7 21 8 20 9 22 10 19 11 23 12 +REMARK SMILES IDX 24 13 25 14 26 16 27 17 28 18 32 19 29 20 30 21 31 22 33 23 +REMARK SMILES IDX 34 24 35 25 39 26 36 27 38 28 37 29 6 30 7 31 8 32 9 34 +REMARK SMILES IDX 10 35 11 36 15 37 12 38 14 39 13 40 5 41 +REMARK H PARENT 24 15 8 33 5 42 +REMARK Flexibility Score: inf +ROOT +ATOM 1 CA UNL 1 8.151 -5.239 16.876 1.00 0.00 0.016 C +ENDROOT +BRANCH 1 2 +ATOM 2 CB UNL 1 8.885 -5.153 18.207 1.00 0.00 0.070 C +BRANCH 2 3 +ATOM 3 S UNL 1 9.799 -6.713 18.517 1.00 0.00 -0.116 SA +BRANCH 3 4 +ATOM 4 C UNL 1 11.498 -6.031 18.788 1.00 0.00 0.210 C +BRANCH 4 5 +ATOM 5 C UNL 1 12.081 -5.548 17.407 1.00 0.00 0.138 C +BRANCH 5 6 +ATOM 6 C UNL 1 13.519 -4.956 17.449 1.00 0.00 0.065 C +BRANCH 6 7 +ATOM 7 C UNL 1 14.041 -4.640 16.066 1.00 0.00 -0.046 A +ATOM 8 C UNL 1 14.942 -4.118 13.456 1.00 0.00 0.000 A +ATOM 9 C UNL 1 13.877 -3.385 13.988 1.00 0.00 0.000 A +ATOM 10 C UNL 1 15.569 -5.100 14.228 1.00 0.00 0.000 A +ATOM 11 C UNL 1 13.430 -3.640 15.289 1.00 0.00 0.004 A +ATOM 12 C UNL 1 15.125 -5.359 15.529 1.00 0.00 0.004 A +ENDBRANCH 6 7 +ENDBRANCH 5 6 +BRANCH 5 13 +ATOM 13 N UNL 1 11.947 -6.590 16.372 1.00 0.00 -0.347 N +ATOM 14 C UNL 1 12.806 -7.732 16.220 1.00 0.00 0.243 C +ATOM 15 H UNL 1 11.202 -6.453 15.651 1.00 0.00 0.164 HD +ATOM 16 O UNL 1 13.809 -7.884 16.966 1.00 0.00 -0.273 OA +BRANCH 14 17 +ATOM 17 C UNL 1 12.559 -8.708 15.103 1.00 0.00 0.175 C +ATOM 18 C UNL 1 13.139 -8.179 13.770 1.00 0.00 0.045 C +ATOM 19 N UNL 1 13.252 -9.965 15.358 1.00 0.00 -0.326 N +ATOM 20 C UNL 1 14.401 -9.004 13.468 1.00 0.00 0.103 C +ATOM 21 C UNL 1 14.296 -10.131 14.417 1.00 0.00 0.223 C +ATOM 22 O UNL 1 15.067 -11.128 14.407 1.00 0.00 -0.275 OA +BRANCH 19 23 +ATOM 23 C UNL 1 12.835 -10.962 16.344 1.00 0.00 0.156 C +BRANCH 23 24 +ATOM 24 C UNL 1 11.712 -11.793 15.791 1.00 0.00 -0.029 A +ATOM 25 C UNL 1 10.376 -11.431 16.031 1.00 0.00 0.005 A +ATOM 26 C UNL 1 11.989 -12.905 14.980 1.00 0.00 0.005 A +ATOM 27 C UNL 1 9.334 -12.184 15.482 1.00 0.00 0.000 A +ATOM 28 C UNL 1 10.943 -13.656 14.434 1.00 0.00 0.000 A +ATOM 29 C UNL 1 9.617 -13.297 14.685 1.00 0.00 0.000 A +ENDBRANCH 23 24 +ENDBRANCH 19 23 +ENDBRANCH 14 17 +ENDBRANCH 5 13 +ENDBRANCH 4 5 +BRANCH 4 30 +ATOM 30 C UNL 1 12.348 -7.128 19.417 1.00 0.00 0.265 C +ATOM 31 O UNL 1 12.063 -8.339 19.199 1.00 0.00 -0.271 OA +ATOM 32 N UNL 1 13.490 -6.814 20.233 1.00 0.00 -0.347 N +ATOM 33 H UNL 1 13.724 -5.821 20.449 1.00 0.00 0.164 HD +BRANCH 32 34 +ATOM 34 C UNL 1 14.376 -7.848 20.763 1.00 0.00 0.172 C +BRANCH 34 35 +ATOM 35 C UNL 1 15.248 -8.391 19.670 1.00 0.00 0.060 A +ATOM 36 C UNL 1 15.109 -9.715 19.221 1.00 0.00 0.026 A +ATOM 37 N UNL 1 16.178 -7.580 19.093 1.00 0.00 -0.259 NA +ATOM 38 C UNL 1 15.932 -10.177 18.191 1.00 0.00 0.004 A +ATOM 39 C UNL 1 16.984 -8.014 18.086 1.00 0.00 0.111 A +ATOM 40 C UNL 1 16.876 -9.324 17.617 1.00 0.00 0.020 A +ENDBRANCH 34 35 +ENDBRANCH 32 34 +ENDBRANCH 4 30 +BRANCH 4 41 +ATOM 41 O UNL 1 11.358 -4.970 19.707 1.00 0.00 -0.369 OA +ATOM 42 H UNL 1 12.174 -4.412 19.701 1.00 0.00 0.213 HD +ENDBRANCH 4 41 +ENDBRANCH 3 4 +ENDBRANCH 2 3 +ENDBRANCH 1 2 +END_RES CYS 6 diff --git a/example/covalent_docking/prepared_output_reference.pdbqt b/example/covalent_docking/prepared_output_reference.pdbqt new file mode 100644 index 00000000..f1afbb74 --- /dev/null +++ b/example/covalent_docking/prepared_output_reference.pdbqt @@ -0,0 +1,81 @@ +BEGIN_RES CYS 6 +REMARK SMILES CCS[C@@](O)(C(=O)NCc1ccccn1)[C@@H](Cc1ccccc1)NC(=O)[C@H]1CCC(=O)N1Cc1ccccc1 +REMARK SMILES IDX 1 1 2 2 3 3 4 4 16 5 17 6 18 7 21 8 20 9 22 10 19 11 23 12 +REMARK SMILES IDX 24 13 25 14 26 16 27 17 28 18 32 19 29 20 30 21 31 22 33 23 +REMARK SMILES IDX 34 24 35 25 39 26 36 27 38 28 37 29 6 30 7 31 8 32 9 34 +REMARK SMILES IDX 10 35 11 36 15 37 12 38 14 39 13 40 5 41 +REMARK H PARENT 24 15 8 33 5 42 +REMARK Flexibility Score: inf +ROOT +ATOM 1 CA UNL 1 8.151 -5.239 16.876 1.00 0.00 0.016 C +ENDROOT +BRANCH 1 2 +ATOM 2 CB UNL 1 8.885 -5.153 18.207 1.00 0.00 0.070 C +BRANCH 2 3 +ATOM 3 S UNL 1 9.799 -6.713 18.517 1.00 0.00 -0.116 SA +BRANCH 3 4 +ATOM 4 C UNL 1 11.498 -6.031 18.788 1.00 0.00 0.210 C +BRANCH 4 5 +ATOM 5 C UNL 1 12.081 -5.548 17.407 1.00 0.00 0.138 C +BRANCH 5 6 +ATOM 6 C UNL 1 13.519 -4.956 17.449 1.00 0.00 0.065 C +BRANCH 6 7 +ATOM 7 C UNL 1 14.041 -4.640 16.066 1.00 0.00 -0.046 A +ATOM 8 C UNL 1 14.942 -4.118 13.456 1.00 0.00 0.000 A +ATOM 9 C UNL 1 13.877 -3.385 13.988 1.00 0.00 0.000 A +ATOM 10 C UNL 1 15.569 -5.100 14.228 1.00 0.00 0.000 A +ATOM 11 C UNL 1 13.430 -3.640 15.289 1.00 0.00 0.004 A +ATOM 12 C UNL 1 15.125 -5.359 15.529 1.00 0.00 0.004 A +ENDBRANCH 6 7 +ENDBRANCH 5 6 +BRANCH 5 13 +ATOM 13 N UNL 1 11.947 -6.590 16.372 1.00 0.00 -0.347 N +ATOM 14 C UNL 1 12.806 -7.732 16.220 1.00 0.00 0.243 C +ATOM 15 H UNL 1 11.202 -6.453 15.651 1.00 0.00 0.164 HD +ATOM 16 O UNL 1 13.809 -7.884 16.966 1.00 0.00 -0.273 OA +BRANCH 14 17 +ATOM 17 C UNL 1 12.559 -8.708 15.103 1.00 0.00 0.175 C +ATOM 18 C UNL 1 13.139 -8.179 13.770 1.00 0.00 0.045 C +ATOM 19 N UNL 1 13.252 -9.965 15.358 1.00 0.00 -0.326 N +ATOM 20 C UNL 1 14.401 -9.004 13.468 1.00 0.00 0.103 C +ATOM 21 C UNL 1 14.296 -10.131 14.417 1.00 0.00 0.223 C +ATOM 22 O UNL 1 15.067 -11.128 14.407 1.00 0.00 -0.275 OA +BRANCH 19 23 +ATOM 23 C UNL 1 12.835 -10.962 16.344 1.00 0.00 0.156 C +BRANCH 23 24 +ATOM 24 C UNL 1 11.712 -11.793 15.791 1.00 0.00 -0.029 A +ATOM 25 C UNL 1 10.376 -11.431 16.031 1.00 0.00 0.005 A +ATOM 26 C UNL 1 11.989 -12.905 14.980 1.00 0.00 0.005 A +ATOM 27 C UNL 1 9.334 -12.184 15.482 1.00 0.00 0.000 A +ATOM 28 C UNL 1 10.943 -13.656 14.434 1.00 0.00 0.000 A +ATOM 29 C UNL 1 9.617 -13.297 14.685 1.00 0.00 0.000 A +ENDBRANCH 23 24 +ENDBRANCH 19 23 +ENDBRANCH 14 17 +ENDBRANCH 5 13 +ENDBRANCH 4 5 +BRANCH 4 30 +ATOM 30 C UNL 1 12.348 -7.128 19.417 1.00 0.00 0.265 C +ATOM 31 O UNL 1 12.063 -8.339 19.199 1.00 0.00 -0.271 OA +ATOM 32 N UNL 1 13.490 -6.814 20.233 1.00 0.00 -0.347 N +ATOM 33 H UNL 1 13.724 -5.821 20.449 1.00 0.00 0.164 HD +BRANCH 32 34 +ATOM 34 C UNL 1 14.376 -7.848 20.763 1.00 0.00 0.172 C +BRANCH 34 35 +ATOM 35 C UNL 1 15.248 -8.391 19.670 1.00 0.00 0.060 A +ATOM 36 C UNL 1 15.109 -9.715 19.221 1.00 0.00 0.026 A +ATOM 37 N UNL 1 16.178 -7.580 19.093 1.00 0.00 -0.259 NA +ATOM 38 C UNL 1 15.932 -10.177 18.191 1.00 0.00 0.004 A +ATOM 39 C UNL 1 16.984 -8.014 18.086 1.00 0.00 0.111 A +ATOM 40 C UNL 1 16.876 -9.324 17.617 1.00 0.00 0.020 A +ENDBRANCH 34 35 +ENDBRANCH 32 34 +ENDBRANCH 4 30 +BRANCH 4 41 +ATOM 41 O UNL 1 11.358 -4.970 19.707 1.00 0.00 -0.369 OA +ATOM 42 H UNL 1 12.174 -4.412 19.701 1.00 0.00 0.213 HD +ENDBRANCH 4 41 +ENDBRANCH 3 4 +ENDBRANCH 2 3 +ENDBRANCH 1 2 +END_RES CYS 6 diff --git a/example/covalent_docking/protein.pdb b/example/covalent_docking/protein.pdb new file mode 100644 index 00000000..42d7ec6f --- /dev/null +++ b/example/covalent_docking/protein.pdb @@ -0,0 +1,399 @@ +ATOM 1 N PHE 1 2.919 1.979 13.161 1.00 0.00 N +ATOM 2 H1 PHE 1 2.397 2.669 13.682 1.00 0.00 H +ATOM 3 H2 PHE 1 2.324 1.600 12.438 1.00 0.00 H +ATOM 4 H3 PHE 1 3.821 2.366 12.922 1.00 0.00 H +ATOM 5 CA PHE 1 3.207 0.849 14.060 1.00 0.00 C +ATOM 6 HA PHE 1 2.772 -0.067 13.660 1.00 0.00 H +ATOM 7 CB PHE 1 4.713 0.656 14.191 1.00 0.00 C +ATOM 8 HB2 PHE 1 5.128 1.646 14.383 1.00 0.00 H +ATOM 9 HB3 PHE 1 4.941 -0.002 15.029 1.00 0.00 H +ATOM 10 CG PHE 1 5.449 0.105 12.998 1.00 0.00 C +ATOM 11 CD1 PHE 1 5.130 -1.126 12.444 1.00 0.00 C +ATOM 12 HD1 PHE 1 4.279 -1.682 12.837 1.00 0.00 H +ATOM 13 CE1 PHE 1 5.881 -1.652 11.401 1.00 0.00 C +ATOM 14 HE1 PHE 1 5.612 -2.617 10.970 1.00 0.00 H +ATOM 15 CZ PHE 1 6.968 -0.954 10.909 1.00 0.00 C +ATOM 16 HZ PHE 1 7.594 -1.385 10.128 1.00 0.00 H +ATOM 17 CE2 PHE 1 7.256 0.287 11.410 1.00 0.00 C +ATOM 18 HE2 PHE 1 8.071 0.868 10.979 1.00 0.00 H +ATOM 19 CD2 PHE 1 6.516 0.806 12.461 1.00 0.00 C +ATOM 20 HD2 PHE 1 6.771 1.780 12.878 1.00 0.00 H +ATOM 21 C PHE 1 2.639 1.160 15.436 1.00 0.00 C +ATOM 22 O PHE 1 2.765 2.306 15.908 1.00 0.00 O +ATOM 23 N LEU 2 2.085 0.136 16.064 1.00 0.00 N +ATOM 24 H LEU 2 2.042 -0.746 15.573 1.00 0.00 H +ATOM 25 CA LEU 2 1.522 0.206 17.426 1.00 0.00 C +ATOM 26 HA LEU 2 1.592 1.220 17.819 1.00 0.00 H +ATOM 27 CB LEU 2 0.048 -0.195 17.370 1.00 0.00 C +ATOM 28 HB2 LEU 2 0.069 -1.244 17.073 1.00 0.00 H +ATOM 29 HB3 LEU 2 -0.359 -0.111 18.377 1.00 0.00 H +ATOM 30 CG LEU 2 -0.831 0.592 16.398 1.00 0.00 C +ATOM 31 HG LEU 2 -0.362 0.583 15.414 1.00 0.00 H +ATOM 32 CD1 LEU 2 -2.217 -0.024 16.304 1.00 0.00 C +ATOM 33 HD11 LEU 2 -2.686 -0.015 17.288 1.00 0.00 H +ATOM 34 HD12 LEU 2 -2.825 0.553 15.607 1.00 0.00 H +ATOM 35 HD13 LEU 2 -2.135 -1.052 15.950 1.00 0.00 H +ATOM 36 CD2 LEU 2 -0.936 2.050 16.823 1.00 0.00 C +ATOM 37 HD21 LEU 2 0.058 2.497 16.838 1.00 0.00 H +ATOM 38 HD22 LEU 2 -1.566 2.590 16.117 1.00 0.00 H +ATOM 39 HD23 LEU 2 -1.375 2.108 17.819 1.00 0.00 H +ATOM 40 C LEU 2 2.297 -0.744 18.332 1.00 0.00 C +ATOM 41 O LEU 2 3.145 -1.507 17.839 1.00 0.00 O +ATOM 42 N ASN 3 1.971 -0.737 19.615 1.00 0.00 N +ATOM 43 H ASN 3 1.342 -0.026 19.960 1.00 0.00 H +ATOM 44 CA ASN 3 2.517 -1.722 20.581 1.00 0.00 C +ATOM 45 HA ASN 3 3.587 -1.550 20.697 1.00 0.00 H +ATOM 46 CB ASN 3 1.854 -1.609 21.951 1.00 0.00 C +ATOM 47 HB2 ASN 3 0.778 -1.723 21.817 1.00 0.00 H +ATOM 48 HB3 ASN 3 2.225 -2.405 22.596 1.00 0.00 H +ATOM 49 CG ASN 3 2.119 -0.282 22.621 1.00 0.00 C +ATOM 50 OD1 ASN 3 3.077 0.402 22.282 1.00 0.00 O +ATOM 51 ND2 ASN 3 1.283 0.078 23.581 1.00 0.00 N +ATOM 52 HD21 ASN 3 1.417 0.957 24.060 1.00 0.00 H +ATOM 53 HD22 ASN 3 0.514 -0.528 23.830 1.00 0.00 H +ATOM 54 C ASN 3 2.301 -3.129 20.022 1.00 0.00 C +ATOM 55 O ASN 3 1.180 -3.427 19.556 1.00 0.00 O +ATOM 56 N GLY 4 3.344 -3.952 20.044 1.00 0.00 N +ATOM 57 H GLY 4 4.221 -3.607 20.406 1.00 0.00 H +ATOM 58 CA GLY 4 3.285 -5.341 19.567 1.00 0.00 C +ATOM 59 HA2 GLY 4 3.951 -5.940 20.188 1.00 0.00 H +ATOM 60 HA3 GLY 4 2.261 -5.696 19.687 1.00 0.00 H +ATOM 61 C GLY 4 3.694 -5.494 18.113 1.00 0.00 C +ATOM 62 O GLY 4 3.712 -6.649 17.649 1.00 0.00 O +ATOM 63 N SER 5 4.046 -4.404 17.423 1.00 0.00 N +ATOM 64 H SER 5 3.971 -3.507 17.882 1.00 0.00 H +ATOM 65 CA SER 5 4.488 -4.435 16.001 1.00 0.00 C +ATOM 66 HA SER 5 3.908 -5.187 15.466 1.00 0.00 H +ATOM 67 CB SER 5 4.299 -3.113 15.322 1.00 0.00 C +ATOM 68 HB2 SER 5 4.660 -3.188 14.296 1.00 0.00 H +ATOM 69 HB3 SER 5 3.237 -2.868 15.315 1.00 0.00 H +ATOM 70 OG SER 5 5.013 -2.096 16.000 1.00 0.00 O +ATOM 71 HG SER 5 4.880 -1.258 15.551 1.00 0.00 H +ATOM 72 C SER 5 5.955 -4.854 15.873 1.00 0.00 C +ATOM 73 O SER 5 6.369 -5.172 14.752 1.00 0.00 O +ATOM 74 N CYS 6 6.730 -4.858 16.953 1.00 0.00 N +ATOM 75 H CYS 6 6.379 -4.499 17.829 1.00 0.00 H +ATOM 76 CA CYS 6 8.150 -5.239 16.874 1.00 0.00 C +ATOM 77 HA CYS 6 8.640 -4.575 16.162 1.00 0.00 H +ATOM 78 CB CYS 6 8.886 -5.153 18.209 1.00 0.00 C +ATOM 79 HB2 CYS 6 9.772 -5.788 18.188 1.00 0.00 H +ATOM 80 HB3 CYS 6 9.183 -4.123 18.405 1.00 0.00 H +ATOM 81 SG CYS 6 7.926 -5.680 19.645 1.00 0.00 S +ATOM 82 HG CYS 6 8.883 -5.458 20.541 1.00 0.00 H +ATOM 83 C CYS 6 8.254 -6.623 16.226 1.00 0.00 C +ATOM 84 O CYS 6 7.473 -7.533 16.567 1.00 0.00 O +ATOM 85 N GLY 7 9.229 -6.776 15.333 1.00 0.00 N +ATOM 86 H GLY 7 9.854 -6.000 15.168 1.00 0.00 H +ATOM 87 CA GLY 7 9.444 -8.018 14.573 1.00 0.00 C +ATOM 88 HA2 GLY 7 10.516 -8.155 14.433 1.00 0.00 H +ATOM 89 HA3 GLY 7 9.044 -8.850 15.153 1.00 0.00 H +ATOM 90 C GLY 7 8.768 -7.993 13.214 1.00 0.00 C +ATOM 91 O GLY 7 9.066 -8.879 12.407 1.00 0.00 O +ATOM 92 N SER 8 7.882 -7.027 12.955 1.00 0.00 N +ATOM 93 H SER 8 7.519 -6.473 13.718 1.00 0.00 H +ATOM 94 CA SER 8 7.375 -6.757 11.585 1.00 0.00 C +ATOM 95 HA SER 8 6.850 -7.638 11.215 1.00 0.00 H +ATOM 96 CB SER 8 6.426 -5.589 11.568 1.00 0.00 C +ATOM 97 HB2 SER 8 6.945 -4.723 11.979 1.00 0.00 H +ATOM 98 HB3 SER 8 6.152 -5.389 10.532 1.00 0.00 H +ATOM 99 OG SER 8 5.252 -5.842 12.328 1.00 0.00 O +ATOM 100 HG SER 8 4.676 -5.075 12.291 1.00 0.00 H +ATOM 101 C SER 8 8.562 -6.484 10.662 1.00 0.00 C +ATOM 102 O SER 8 9.535 -5.876 11.109 1.00 0.00 O +ATOM 103 N VAL 9 8.464 -6.882 9.405 1.00 0.00 N +ATOM 104 H VAL 9 7.651 -7.396 9.096 1.00 0.00 H +ATOM 105 CA VAL 9 9.597 -6.727 8.463 1.00 0.00 C +ATOM 106 HA VAL 9 10.405 -6.115 8.865 1.00 0.00 H +ATOM 107 CB VAL 9 10.177 -8.082 8.028 1.00 0.00 C +ATOM 108 HB VAL 9 10.990 -7.903 7.324 1.00 0.00 H +ATOM 109 CG1 VAL 9 10.702 -8.862 9.220 1.00 0.00 C +ATOM 110 HG11 VAL 9 9.889 -9.042 9.924 1.00 0.00 H +ATOM 111 HG12 VAL 9 11.106 -9.816 8.881 1.00 0.00 H +ATOM 112 HG13 VAL 9 11.488 -8.289 9.712 1.00 0.00 H +ATOM 113 CG2 VAL 9 9.193 -8.914 7.235 1.00 0.00 C +ATOM 114 HG21 VAL 9 8.901 -8.373 6.335 1.00 0.00 H +ATOM 115 HG22 VAL 9 9.658 -9.859 6.955 1.00 0.00 H +ATOM 116 HG23 VAL 9 8.310 -9.110 7.843 1.00 0.00 H +ATOM 117 C VAL 9 9.257 -5.852 7.258 1.00 0.00 C +ATOM 118 O VAL 9 8.085 -5.713 6.848 1.00 0.00 O +ATOM 119 N GLY 10 10.334 -5.320 6.701 1.00 0.00 N +ATOM 120 H GLY 10 11.201 -5.467 7.197 1.00 0.00 H +ATOM 121 CA GLY 10 10.369 -4.555 5.454 1.00 0.00 C +ATOM 122 HA2 GLY 10 9.354 -4.358 5.110 1.00 0.00 H +ATOM 123 HA3 GLY 10 10.888 -3.610 5.612 1.00 0.00 H +ATOM 124 C GLY 10 11.101 -5.347 4.396 1.00 0.00 C +ATOM 125 O GLY 10 12.061 -6.074 4.733 1.00 0.00 O +ATOM 126 N PHE 11 10.685 -5.212 3.142 1.00 0.00 N +ATOM 127 H PHE 11 9.959 -4.547 2.917 1.00 0.00 H +ATOM 128 CA PHE 11 11.219 -6.060 2.056 1.00 0.00 C +ATOM 129 HA PHE 11 12.295 -6.192 2.168 1.00 0.00 H +ATOM 130 CB PHE 11 10.548 -7.434 2.121 1.00 0.00 C +ATOM 131 HB2 PHE 11 10.924 -8.113 1.356 1.00 0.00 H +ATOM 132 HB3 PHE 11 10.728 -7.862 3.107 1.00 0.00 H +ATOM 133 CG PHE 11 9.055 -7.372 1.945 1.00 0.00 C +ATOM 134 CD1 PHE 11 8.225 -7.079 3.018 1.00 0.00 C +ATOM 135 HD1 PHE 11 8.661 -6.914 4.004 1.00 0.00 H +ATOM 136 CE1 PHE 11 6.851 -6.995 2.844 1.00 0.00 C +ATOM 137 HE1 PHE 11 6.207 -6.768 3.694 1.00 0.00 H +ATOM 138 CZ PHE 11 6.302 -7.197 1.602 1.00 0.00 C +ATOM 139 HZ PHE 11 5.223 -7.121 1.465 1.00 0.00 H +ATOM 140 CE2 PHE 11 7.111 -7.495 0.533 1.00 0.00 C +ATOM 141 HE2 PHE 11 6.668 -7.680 -0.446 1.00 0.00 H +ATOM 142 CD2 PHE 11 8.486 -7.561 0.695 1.00 0.00 C +ATOM 143 HD2 PHE 11 9.127 -7.763 -0.163 1.00 0.00 H +ATOM 144 C PHE 11 11.002 -5.408 0.694 1.00 0.00 C +ATOM 145 O PHE 11 10.146 -4.533 0.529 1.00 0.00 O +ATOM 146 N ASN 12 11.777 -5.901 -0.262 1.00 0.00 N +ATOM 147 H ASN 12 12.579 -6.440 0.032 1.00 0.00 H +ATOM 148 CA ASN 12 11.580 -5.671 -1.706 1.00 0.00 C +ATOM 149 HA ASN 12 10.640 -5.142 -1.862 1.00 0.00 H +ATOM 150 CB ASN 12 12.713 -4.838 -2.299 1.00 0.00 C +ATOM 151 HB2 ASN 12 13.648 -5.234 -1.903 1.00 0.00 H +ATOM 152 HB3 ASN 12 12.709 -4.936 -3.385 1.00 0.00 H +ATOM 153 CG ASN 12 12.622 -3.373 -1.946 1.00 0.00 C +ATOM 154 OD1 ASN 12 11.998 -2.596 -2.666 1.00 0.00 O +ATOM 155 ND2 ASN 12 13.264 -2.985 -0.860 1.00 0.00 N +ATOM 156 HD21 ASN 12 13.235 -2.015 -0.579 1.00 0.00 H +ATOM 157 HD22 ASN 12 13.781 -3.660 -0.315 1.00 0.00 H +ATOM 158 C ASN 12 11.477 -7.044 -2.360 1.00 0.00 C +ATOM 159 O ASN 12 11.932 -8.022 -1.769 1.00 0.00 O +ATOM 160 N ILE 13 10.888 -7.110 -3.542 1.00 0.00 N +ATOM 161 H ILE 13 10.374 -6.315 -3.894 1.00 0.00 H +ATOM 162 CA ILE 13 10.864 -8.371 -4.332 1.00 0.00 C +ATOM 163 HA ILE 13 11.534 -9.129 -3.926 1.00 0.00 H +ATOM 164 CB ILE 13 9.434 -8.939 -4.410 1.00 0.00 C +ATOM 165 HB ILE 13 8.803 -8.247 -4.967 1.00 0.00 H +ATOM 166 CG2 ILE 13 9.447 -10.291 -5.112 1.00 0.00 C +ATOM 167 HG21 ILE 13 10.078 -10.984 -4.555 1.00 0.00 H +ATOM 168 HG22 ILE 13 8.432 -10.685 -5.162 1.00 0.00 H +ATOM 169 HG23 ILE 13 9.841 -10.173 -6.121 1.00 0.00 H +ATOM 170 CG1 ILE 13 8.784 -9.030 -3.025 1.00 0.00 C +ATOM 171 HG12 ILE 13 9.447 -9.628 -2.400 1.00 0.00 H +ATOM 172 HG13 ILE 13 8.731 -8.015 -2.630 1.00 0.00 H +ATOM 173 CD1 ILE 13 7.404 -9.643 -3.024 1.00 0.00 C +ATOM 174 HD11 ILE 13 7.456 -10.658 -3.418 1.00 0.00 H +ATOM 175 HD12 ILE 13 7.018 -9.669 -2.005 1.00 0.00 H +ATOM 176 HD13 ILE 13 6.740 -9.045 -3.648 1.00 0.00 H +ATOM 177 C ILE 13 11.483 -8.107 -5.710 1.00 0.00 C +ATOM 178 O ILE 13 11.157 -7.064 -6.313 1.00 0.00 O +ATOM 179 N ASP 14 12.378 -9.002 -6.148 1.00 0.00 N +ATOM 180 H ASP 14 12.785 -9.602 -5.445 1.00 0.00 H +ATOM 181 CA ASP 14 12.866 -9.125 -7.549 1.00 0.00 C +ATOM 182 HA ASP 14 12.429 -8.323 -8.144 1.00 0.00 H +ATOM 183 CB ASP 14 14.395 -9.035 -7.651 1.00 0.00 C +ATOM 184 HB2 ASP 14 14.681 -8.052 -7.277 1.00 0.00 H +ATOM 185 HB3 ASP 14 14.803 -9.805 -6.996 1.00 0.00 H +ATOM 186 CG ASP 14 14.946 -9.222 -9.061 1.00 0.00 C +ATOM 187 OD1 ASP 14 14.150 -9.160 -10.017 1.00 0.00 O +ATOM 188 OD2 ASP 14 16.174 -9.430 -9.194 1.00 0.00 O +ATOM 189 C ASP 14 12.329 -10.452 -8.105 1.00 0.00 C +ATOM 190 O ASP 14 12.867 -11.518 -7.741 1.00 0.00 O +ATOM 191 N TYR 15 11.302 -10.363 -8.953 1.00 0.00 N +ATOM 192 H TYR 15 11.016 -9.416 -9.159 1.00 0.00 H +ATOM 193 CA TYR 15 10.493 -11.480 -9.509 1.00 0.00 C +ATOM 194 HA TYR 15 9.568 -11.073 -9.917 1.00 0.00 H +ATOM 195 CB TYR 15 11.224 -12.241 -10.619 1.00 0.00 C +ATOM 196 HB2 TYR 15 11.487 -11.491 -11.365 1.00 0.00 H +ATOM 197 HB3 TYR 15 12.133 -12.706 -10.236 1.00 0.00 H +ATOM 198 CG TYR 15 10.349 -13.295 -11.253 1.00 0.00 C +ATOM 199 CD1 TYR 15 9.129 -12.947 -11.816 1.00 0.00 C +ATOM 200 HD1 TYR 15 8.839 -11.896 -11.815 1.00 0.00 H +ATOM 201 CE1 TYR 15 8.287 -13.898 -12.370 1.00 0.00 C +ATOM 202 HE1 TYR 15 7.336 -13.599 -12.810 1.00 0.00 H +ATOM 203 CZ TYR 15 8.658 -15.232 -12.364 1.00 0.00 C +ATOM 204 OH TYR 15 7.830 -16.167 -12.920 1.00 0.00 O +ATOM 205 HH TYR 15 7.026 -15.788 -13.282 1.00 0.00 H +ATOM 206 CE2 TYR 15 9.864 -15.604 -11.794 1.00 0.00 C +ATOM 207 HE2 TYR 15 10.163 -16.652 -11.781 1.00 0.00 H +ATOM 208 CD2 TYR 15 10.693 -14.639 -11.238 1.00 0.00 C +ATOM 209 HD2 TYR 15 11.637 -14.931 -10.777 1.00 0.00 H +ATOM 210 C TYR 15 10.020 -12.426 -8.399 1.00 0.00 C +ATOM 211 O TYR 15 8.921 -12.210 -7.871 1.00 0.00 O +ATOM 212 N ASP 16 10.800 -13.456 -8.061 1.00 0.00 N +ATOM 213 H ASP 16 11.703 -13.563 -8.500 1.00 0.00 H +ATOM 214 CA ASP 16 10.348 -14.509 -7.113 1.00 0.00 C +ATOM 215 HA ASP 16 9.318 -14.310 -6.817 1.00 0.00 H +ATOM 216 CB ASP 16 10.414 -15.899 -7.747 1.00 0.00 C +ATOM 217 HB2 ASP 16 10.132 -16.602 -6.963 1.00 0.00 H +ATOM 218 HB3 ASP 16 9.679 -15.939 -8.551 1.00 0.00 H +ATOM 219 CG ASP 16 11.780 -16.270 -8.292 1.00 0.00 C +ATOM 220 OD1 ASP 16 12.699 -15.426 -8.221 1.00 0.00 O +ATOM 221 OD2 ASP 16 11.908 -17.397 -8.807 1.00 0.00 O +ATOM 222 C ASP 16 11.170 -14.458 -5.824 1.00 0.00 C +ATOM 223 O ASP 16 10.929 -15.308 -4.958 1.00 0.00 O +ATOM 224 N CYS 17 12.098 -13.505 -5.703 1.00 0.00 N +ATOM 225 H CYS 17 12.163 -12.813 -6.436 1.00 0.00 H +ATOM 226 CA CYS 17 13.072 -13.440 -4.585 1.00 0.00 C +ATOM 227 HA CYS 17 12.992 -14.344 -3.982 1.00 0.00 H +ATOM 228 CB CYS 17 14.497 -13.325 -5.102 1.00 0.00 C +ATOM 229 HB2 CYS 17 14.741 -14.141 -5.782 1.00 0.00 H +ATOM 230 HB3 CYS 17 14.663 -12.372 -5.605 1.00 0.00 H +ATOM 231 SG CYS 17 15.714 -13.405 -3.765 1.00 0.00 S +ATOM 232 HG CYS 17 16.785 -13.279 -4.544 1.00 0.00 H +ATOM 233 C CYS 17 12.751 -12.265 -3.661 1.00 0.00 C +ATOM 234 O CYS 17 12.749 -11.104 -4.124 1.00 0.00 O +ATOM 235 N VAL 18 12.499 -12.562 -2.388 1.00 0.00 N +ATOM 236 H VAL 18 12.463 -13.531 -2.106 1.00 0.00 H +ATOM 237 CA VAL 18 12.221 -11.520 -1.366 1.00 0.00 C +ATOM 238 HA VAL 18 11.818 -10.606 -1.802 1.00 0.00 H +ATOM 239 CB VAL 18 11.256 -12.012 -0.279 1.00 0.00 C +ATOM 240 HB VAL 18 11.709 -12.859 0.237 1.00 0.00 H +ATOM 241 CG1 VAL 18 10.964 -10.905 0.723 1.00 0.00 C +ATOM 242 HG11 VAL 18 10.511 -10.058 0.208 1.00 0.00 H +ATOM 243 HG12 VAL 18 10.278 -11.275 1.485 1.00 0.00 H +ATOM 244 HG13 VAL 18 11.894 -10.587 1.195 1.00 0.00 H +ATOM 245 CG2 VAL 18 9.972 -12.568 -0.871 1.00 0.00 C +ATOM 246 HG21 VAL 18 10.207 -13.408 -1.525 1.00 0.00 H +ATOM 247 HG22 VAL 18 9.317 -12.905 -0.068 1.00 0.00 H +ATOM 248 HG23 VAL 18 9.470 -11.790 -1.446 1.00 0.00 H +ATOM 249 C VAL 18 13.547 -11.092 -0.743 1.00 0.00 C +ATOM 250 O VAL 18 14.228 -11.944 -0.158 1.00 0.00 O +ATOM 251 N SER 19 13.888 -9.810 -0.864 1.00 0.00 N +ATOM 252 H SER 19 13.356 -9.233 -1.500 1.00 0.00 H +ATOM 253 CA SER 19 15.057 -9.210 -0.184 1.00 0.00 C +ATOM 254 HA SER 19 15.735 -10.005 0.128 1.00 0.00 H +ATOM 255 CB SER 19 15.807 -8.263 -1.086 1.00 0.00 C +ATOM 256 HB2 SER 19 15.092 -7.610 -1.586 1.00 0.00 H +ATOM 257 HB3 SER 19 16.486 -7.662 -0.481 1.00 0.00 H +ATOM 258 OG SER 19 16.551 -8.982 -2.059 1.00 0.00 O +ATOM 259 HG SER 19 17.021 -8.364 -2.623 1.00 0.00 H +ATOM 260 C SER 19 14.560 -8.531 1.088 1.00 0.00 C +ATOM 261 O SER 19 13.945 -7.452 0.996 1.00 0.00 O +ATOM 262 N PHE 20 14.790 -9.165 2.237 1.00 0.00 N +ATOM 263 H PHE 20 15.215 -10.081 2.220 1.00 0.00 H +ATOM 264 CA PHE 20 14.412 -8.592 3.546 1.00 0.00 C +ATOM 265 HA PHE 20 13.442 -8.101 3.467 1.00 0.00 H +ATOM 266 CB PHE 20 14.320 -9.686 4.602 1.00 0.00 C +ATOM 267 HB2 PHE 20 15.244 -10.263 4.635 1.00 0.00 H +ATOM 268 HB3 PHE 20 14.137 -9.238 5.579 1.00 0.00 H +ATOM 269 CG PHE 20 13.207 -10.669 4.365 1.00 0.00 C +ATOM 270 CD1 PHE 20 11.892 -10.340 4.668 1.00 0.00 C +ATOM 271 HD1 PHE 20 11.668 -9.359 5.086 1.00 0.00 H +ATOM 272 CE1 PHE 20 10.868 -11.249 4.443 1.00 0.00 C +ATOM 273 HE1 PHE 20 9.839 -10.984 4.686 1.00 0.00 H +ATOM 274 CZ PHE 20 11.153 -12.485 3.913 1.00 0.00 C +ATOM 275 HZ PHE 20 10.348 -13.195 3.723 1.00 0.00 H +ATOM 276 CE2 PHE 20 12.453 -12.826 3.622 1.00 0.00 C +ATOM 277 HE2 PHE 20 12.676 -13.817 3.227 1.00 0.00 H +ATOM 278 CD2 PHE 20 13.478 -11.916 3.829 1.00 0.00 C +ATOM 279 HD2 PHE 20 14.503 -12.181 3.569 1.00 0.00 H +ATOM 280 C PHE 20 15.455 -7.549 3.934 1.00 0.00 C +ATOM 281 O PHE 20 16.659 -7.872 3.961 1.00 0.00 O +ATOM 282 N CYS 21 15.006 -6.338 4.242 1.00 0.00 N +ATOM 283 H CYS 21 14.013 -6.152 4.228 1.00 0.00 H +ATOM 284 CA CYS 21 15.924 -5.220 4.548 1.00 0.00 C +ATOM 285 HA CYS 21 16.944 -5.600 4.598 1.00 0.00 H +ATOM 286 CB CYS 21 15.863 -4.131 3.491 1.00 0.00 C +ATOM 287 HB2 CYS 21 16.480 -3.282 3.783 1.00 0.00 H +ATOM 288 HB3 CYS 21 16.205 -4.514 2.530 1.00 0.00 H +ATOM 289 SG CYS 21 14.203 -3.470 3.206 1.00 0.00 S +ATOM 290 HG CYS 21 14.560 -2.596 2.269 1.00 0.00 H +ATOM 291 C CYS 21 15.658 -4.589 5.912 1.00 0.00 C +ATOM 292 O CYS 21 16.509 -3.830 6.353 1.00 0.00 O +ATOM 293 N TYR 22 14.563 -4.898 6.589 1.00 0.00 N +ATOM 294 H TYR 22 13.942 -5.621 6.255 1.00 0.00 H +ATOM 295 CA TYR 22 14.192 -4.170 7.824 1.00 0.00 C +ATOM 296 HA TYR 22 15.099 -3.846 8.334 1.00 0.00 H +ATOM 297 CB TYR 22 13.335 -2.940 7.524 1.00 0.00 C +ATOM 298 HB2 TYR 22 13.907 -2.325 6.829 1.00 0.00 H +ATOM 299 HB3 TYR 22 12.437 -3.309 7.028 1.00 0.00 H +ATOM 300 CG TYR 22 12.942 -2.109 8.726 1.00 0.00 C +ATOM 301 CD1 TYR 22 13.834 -1.214 9.297 1.00 0.00 C +ATOM 302 HD1 TYR 22 14.831 -1.126 8.865 1.00 0.00 H +ATOM 303 CE1 TYR 22 13.483 -0.441 10.392 1.00 0.00 C +ATOM 304 HE1 TYR 22 14.205 0.256 10.818 1.00 0.00 H +ATOM 305 CZ TYR 22 12.225 -0.561 10.952 1.00 0.00 C +ATOM 306 OH TYR 22 11.898 0.197 12.050 1.00 0.00 O +ATOM 307 HH TYR 22 12.614 0.768 12.338 1.00 0.00 H +ATOM 308 CE2 TYR 22 11.316 -1.437 10.383 1.00 0.00 C +ATOM 309 HE2 TYR 22 10.310 -1.518 10.795 1.00 0.00 H +ATOM 310 CD2 TYR 22 11.681 -2.207 9.295 1.00 0.00 C +ATOM 311 HD2 TYR 22 10.971 -2.912 8.864 1.00 0.00 H +ATOM 312 C TYR 22 13.443 -5.110 8.753 1.00 0.00 C +ATOM 313 O TYR 22 12.575 -5.860 8.293 1.00 0.00 O +ATOM 314 N MET 23 13.767 -5.026 10.035 1.00 0.00 N +ATOM 315 H MET 23 14.633 -4.571 10.287 1.00 0.00 H +ATOM 316 CA MET 23 12.932 -5.582 11.112 1.00 0.00 C +ATOM 317 HA MET 23 11.986 -5.924 10.693 1.00 0.00 H +ATOM 318 CB MET 23 13.614 -6.759 11.801 1.00 0.00 C +ATOM 319 HB2 MET 23 13.788 -7.537 11.058 1.00 0.00 H +ATOM 320 HB3 MET 23 14.569 -6.417 12.199 1.00 0.00 H +ATOM 321 CG MET 23 12.772 -7.314 12.922 1.00 0.00 C +ATOM 322 HG2 MET 23 12.821 -6.592 13.738 1.00 0.00 H +ATOM 323 HG3 MET 23 11.750 -7.370 12.548 1.00 0.00 H +ATOM 324 SD MET 23 13.268 -8.934 13.534 1.00 0.00 S +ATOM 325 CE MET 23 12.539 -10.006 12.291 1.00 0.00 C +ATOM 326 HE1 MET 23 12.955 -9.764 11.313 1.00 0.00 H +ATOM 327 HE2 MET 23 12.760 -11.046 12.532 1.00 0.00 H +ATOM 328 HE3 MET 23 11.459 -9.860 12.272 1.00 0.00 H +ATOM 329 C MET 23 12.673 -4.470 12.115 1.00 0.00 C +ATOM 330 O MET 23 13.608 -3.769 12.506 1.00 0.00 O +ATOM 331 N HIE 24 11.424 -4.282 12.470 1.00 0.00 N +ATOM 332 H HIE 24 10.711 -4.900 12.109 1.00 0.00 H +ATOM 333 CA HIE 24 11.006 -3.160 13.332 1.00 0.00 C +ATOM 334 HA HIE 24 11.549 -2.253 13.068 1.00 0.00 H +ATOM 335 CB HIE 24 9.527 -2.912 13.136 1.00 0.00 C +ATOM 336 HB2 HIE 24 9.283 -2.694 12.096 1.00 0.00 H +ATOM 337 HB3 HIE 24 8.942 -3.767 13.474 1.00 0.00 H +ATOM 338 CG HIE 24 9.073 -1.747 13.931 1.00 0.00 C +ATOM 339 ND1 HIE 24 9.741 -0.539 13.868 1.00 0.00 N +ATOM 340 CE1 HIE 24 9.158 0.301 14.701 1.00 0.00 C +ATOM 341 HE1 HIE 24 9.553 1.308 14.838 1.00 0.00 H +ATOM 342 NE2 HIE 24 8.110 -0.311 15.255 1.00 0.00 N +ATOM 343 HE2 HIE 24 7.457 0.099 15.907 1.00 0.00 H +ATOM 344 CD2 HIE 24 8.057 -1.593 14.798 1.00 0.00 C +ATOM 345 HD2 HIE 24 7.278 -2.267 15.154 1.00 0.00 H +ATOM 346 C HIE 24 11.338 -3.467 14.788 1.00 0.00 C +ATOM 347 O HIE 24 10.979 -4.563 15.266 1.00 0.00 O +ATOM 348 N HIE 25 11.957 -2.518 15.481 1.00 0.00 N +ATOM 349 H HIE 25 12.288 -1.680 15.024 1.00 0.00 H +ATOM 350 CA HIE 25 12.256 -2.698 16.922 1.00 0.00 C +ATOM 351 HA HIE 25 11.842 -3.651 17.250 1.00 0.00 H +ATOM 352 CB HIE 25 13.754 -2.691 17.213 1.00 0.00 C +ATOM 353 HB2 HIE 25 14.244 -1.818 16.782 1.00 0.00 H +ATOM 354 HB3 HIE 25 13.892 -2.688 18.294 1.00 0.00 H +ATOM 355 CG HIE 25 14.477 -3.885 16.695 1.00 0.00 C +ATOM 356 ND1 HIE 25 15.217 -4.720 17.513 1.00 0.00 N +ATOM 357 CE1 HIE 25 15.783 -5.652 16.765 1.00 0.00 C +ATOM 358 HE1 HIE 25 16.418 -6.411 17.221 1.00 0.00 H +ATOM 359 NE2 HIE 25 15.427 -5.453 15.484 1.00 0.00 N +ATOM 360 HE2 HIE 25 15.708 -6.003 14.685 1.00 0.00 H +ATOM 361 CD2 HIE 25 14.604 -4.361 15.435 1.00 0.00 C +ATOM 362 HD2 HIE 25 14.188 -4.034 14.482 1.00 0.00 H +ATOM 363 C HIE 25 11.580 -1.664 17.807 1.00 0.00 C +ATOM 364 O HIE 25 10.998 -2.074 18.806 1.00 0.00 O +ATOM 365 N MET 26 11.814 -0.375 17.533 1.00 0.00 N +ATOM 366 H MET 26 12.147 -0.139 16.609 1.00 0.00 H +ATOM 367 CA MET 26 11.611 0.728 18.513 1.00 0.00 C +ATOM 368 HA MET 26 11.105 0.339 19.397 1.00 0.00 H +ATOM 369 CB MET 26 12.949 1.342 18.945 1.00 0.00 C +ATOM 370 HB2 MET 26 13.320 1.907 18.090 1.00 0.00 H +ATOM 371 HB3 MET 26 12.724 2.027 19.762 1.00 0.00 H +ATOM 372 CG MET 26 14.017 0.341 19.397 1.00 0.00 C +ATOM 373 HG2 MET 26 14.153 -0.377 18.588 1.00 0.00 H +ATOM 374 HG3 MET 26 14.942 0.898 19.547 1.00 0.00 H +ATOM 375 SD MET 26 13.605 -0.548 20.917 1.00 0.00 S +ATOM 376 CE MET 26 13.640 0.795 22.102 1.00 0.00 C +ATOM 377 HE1 MET 26 12.903 1.548 21.821 1.00 0.00 H +ATOM 378 HE2 MET 26 13.405 0.411 23.095 1.00 0.00 H +ATOM 379 HE3 MET 26 14.633 1.245 22.113 1.00 0.00 H +ATOM 380 C MET 26 10.756 1.853 17.918 1.00 0.00 C +ATOM 381 O MET 26 10.811 2.091 16.700 1.00 0.00 O +ATOM 382 N GLU 27 10.020 2.551 18.781 1.00 0.00 N +ATOM 383 H GLU 27 9.839 2.152 19.691 1.00 0.00 H +ATOM 384 CA GLU 27 9.409 3.868 18.454 1.00 0.00 C +ATOM 385 HA GLU 27 9.556 4.071 17.393 1.00 0.00 H +ATOM 386 CB GLU 27 7.907 3.904 18.756 1.00 0.00 C +ATOM 387 HB2 GLU 27 7.450 3.050 18.255 1.00 0.00 H +ATOM 388 HB3 GLU 27 7.785 3.800 19.834 1.00 0.00 H +ATOM 389 CG GLU 27 7.228 5.193 18.288 1.00 0.00 C +ATOM 390 HG2 GLU 27 7.504 5.966 19.005 1.00 0.00 H +ATOM 391 HG3 GLU 27 7.664 5.426 17.317 1.00 0.00 H +ATOM 392 CD GLU 27 5.711 5.136 18.163 1.00 0.00 C +ATOM 393 OE1 GLU 27 5.019 5.350 19.177 1.00 0.00 O +ATOM 394 OE2 GLU 27 5.218 4.884 17.052 1.00 0.00 O +ATOM 395 C GLU 27 10.149 4.938 19.257 1.00 0.00 C +ATOM 396 O GLU 27 10.241 4.785 20.484 1.00 0.00 O +ATOM 397 OXT GLU 27 10.655 5.904 18.691 1.00 0.00 O +TER 398 GLU 27 +END diff --git a/example/covalent_docking/run.sh b/example/covalent_docking/run.sh new file mode 100644 index 00000000..13089145 --- /dev/null +++ b/example/covalent_docking/run.sh @@ -0,0 +1,7 @@ +mk_prepare_ligand.py\ + -i ligand_including_cys_sidechain.sdf\ + --receptor protein.pdb\ + --rec_residue ":CYS:6"\ + --tether_smarts "NC(=O)C(O)(C)SCC"\ + --tether_smarts_indices 9 8\ + -o prepared.pdbqt diff --git a/scripts/mk_copy_coords.py b/scripts/mk_export.py similarity index 100% rename from scripts/mk_copy_coords.py rename to scripts/mk_export.py diff --git a/setup.py b/setup.py index 54e59e8a..c1d20176 100644 --- a/setup.py +++ b/setup.py @@ -21,7 +21,7 @@ def find_files(directory): setup( name="meeko", - version='0.3.3', + version='0.4.0', author="Forli Lab", author_email="forli@scripps.edu", url="https://github.com/ccsb-scripps/meeko", From bc5c4a854b4db0dbdfd1868864c40f22886c9130 Mon Sep 17 00:00:00 2001 From: diogom Date: Tue, 8 Nov 2022 15:38:28 -0800 Subject: [PATCH 03/12] fix setup.py, add note to README --- README.md | 12 +++++++++++- setup.py | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7dcb1dcd..7cb54bd2 100644 --- a/README.md +++ b/README.md @@ -87,6 +87,16 @@ mk_export.py vina_results.pdbqt -o vina_results.sdf mk_export.py autodock-gpu_results.dlg -o autodock-gpu_results.sdf ``` +Making RDKit molecules from SMILES is safer than guessing bond orders +from the coordinates, specially because the PDBQT lacks hydrogens bonded +to carbon. As an example, consider the following conversion, in which +OpenBabel adds an extra double bond, not because it has a bad algorithm, +but because this is a nearly impossible task. +```console +$ obabel -:"C1C=CCO1" -o pdbqt --gen3d | obabel -i pdbqt -o smi +[C]1=[C][C]=[C]O1 +``` + ## Python tutorial #### 1. making PDBQT strings for Vina or for AutoDock-GPU @@ -221,4 +231,4 @@ mk_prepare_ligand.py\ --tether_smarts "NC(=O)C(O)(C)SCC"\ --tether_smarts_indices 9 8\ -o prepared.pdbqt -``` \ No newline at end of file +``` diff --git a/setup.py b/setup.py index c1d20176..a87aad61 100644 --- a/setup.py +++ b/setup.py @@ -30,7 +30,7 @@ def find_files(directory): long_description_content_type="text/markdown", packages=find_packages(), scripts=["scripts/mk_prepare_ligand.py", - "scripts/mk_copy_coords.py"], + "scripts/mk_export.py"], #"scripts/dry.py", #"scripts/mapwater.py", #"scripts/wet.py"], From 0e2f0d83d84adeb5c9000671e3f5989704bcad53 Mon Sep 17 00:00:00 2001 From: diogom Date: Wed, 9 Nov 2022 17:10:11 -0800 Subject: [PATCH 04/12] add docking energies to output SDF --- meeko/molecule_pdbqt.py | 28 +++++++++++++++++++++++----- meeko/rdkit_mol_create.py | 21 ++++++++++++++++++++- scripts/mk_export.py | 24 ++++-------------------- 3 files changed, 47 insertions(+), 26 deletions(-) diff --git a/meeko/molecule_pdbqt.py b/meeko/molecule_pdbqt.py index dc5898e4..3426292e 100644 --- a/meeko/molecule_pdbqt.py +++ b/meeko/molecule_pdbqt.py @@ -62,9 +62,18 @@ def _read_ligand_pdbqt_file(pdbqt_string, poses_to_read=-1, energy_range=-1, is_ 'glue': [], 'reactive': [], 'metal': [], 'mol_index': {}, } - pose_data = {'n_poses': None, 'active_atoms': [], 'free_energies': [], - 'index_map': {}, 'pdbqt_string': [], - 'smiles': {}, 'smiles_index_map': {}, 'smiles_h_parent': {}} + pose_data = { + 'n_poses': None, + 'active_atoms': [], + 'free_energies': [], + 'intermolecular_energies': [], + 'internal_energies': [], + 'index_map': {}, + 'pdbqt_string': [], + 'smiles': {}, + 'smiles_index_map': {}, + 'smiles_h_parent': {}, + } buffer_index_map = {} buffer_smiles = None @@ -176,24 +185,33 @@ def _read_ligand_pdbqt_file(pdbqt_string, poses_to_read=-1, energy_range=-1, is_ buffer_smiles_h_parent.extend(integers) elif line.startswith('REMARK SMILES') and is_first_pose: # must check after SMILES IDX buffer_smiles = line.split()[2] - elif line.startswith('REMARK VINA RESULT') or line.startswith('USER Estimated Free Energy of Binding'): + elif line.startswith('REMARK VINA RESULT') or line.startswith('USER Estimated Free Energy of Binding ='): # Read free energy from output PDBQT files try: # Vina energy = float(line.split()[3]) except: # AD4 - energy = float(line.split()[7]) + energy = float(line[45:].split()[0]) # no guarantee of space between = and number if energy_best_pose is None: energy_best_pose = energy energy_current_pose = energy + # NOTE this assumes poses are sorted by increasing energy diff_energy = energy_current_pose - energy_best_pose if (energy_range <= diff_energy and energy_range != -1): break pose_data['free_energies'].append(energy) + elif not is_dlg and line.startswith('REMARK INTER:'): + pose_data['intermolecular_energies'].append(float(line.split()[2])) + elif not is_dlg and line.startswith('REMARK INTRA:'): + pose_data['internal_energies'].append(float(line.split()[2])) + elif is_dlg and line.startswith('USER (1) Final Intermolecular Energy ='): + pose_data['intermolecular_energies'].append(float(line[45:].split()[0])) + elif is_dlg and line.startswith('USER (2) Final Total Internal Energy ='): + pose_data['internal_energies'].append(float(line[45:].split()[0])) elif line.startswith('BEGIN_RES'): location = 'flexible_residue' elif line.startswith('END_RES'): diff --git a/meeko/rdkit_mol_create.py b/meeko/rdkit_mol_create.py index b77632a2..80a67e2d 100644 --- a/meeko/rdkit_mol_create.py +++ b/meeko/rdkit_mol_create.py @@ -8,6 +8,7 @@ from rdkit import Chem from rdkit.Geometry import Point3D from rdkit.Chem import AllChem +from rdkit.six import StringIO import json import os @@ -332,4 +333,22 @@ def _verify_flexres(cls): if len(expected_names) != len(set(expected_names)): raise RuntimeError("repeated atom names in cls.flexres[%s]" % resname) -RDKitMolCreate._verify_flexres() + @staticmethod + def write_sd_string(pdbqt_mol): + sio = StringIO() + f = Chem.SDWriter(sio) + mol_list = RDKitMolCreate.from_pdbqt_mol(pdbqt_mol) + failures = [i for i, mol in enumerate(mol_list) if mol is None] + combined_mol = RDKitMolCreate.combine_rdkit_mols(mol_list) + for conformer in combined_mol.GetConformers(): + i = conformer.GetId() + data = { + "free_energy": pdbqt_mol._pose_data["free_energies"][i], + "intermolecular_energy": pdbqt_mol._pose_data["intermolecular_energies"][i], + "internal_energy": pdbqt_mol._pose_data["internal_energies"][i], + } + combined_mol.SetProp("meeko", json.dumps(data)) + f.write(combined_mol, i) + f.close() + output_string = sio.getvalue() + return output_string, failures diff --git a/scripts/mk_export.py b/scripts/mk_export.py index cde2223e..7c9cfe98 100755 --- a/scripts/mk_export.py +++ b/scripts/mk_export.py @@ -9,7 +9,6 @@ import warnings from rdkit import Chem -from rdkit.six import StringIO from meeko import PDBQTMolecule from meeko import RDKitMolCreate @@ -56,8 +55,6 @@ def cmd_lineparser(): suffix_name = args.suffix_name redirect_stdout = args.redirect_stdout - output_string = '' - is_dlg = docking_results_filename.endswith('.dlg') pdbqt_mol = PDBQTMolecule.from_file(docking_results_filename, is_dlg=is_dlg, skip_typing=True) @@ -76,25 +73,12 @@ def cmd_lineparser(): for pose in pdbqt_mol: copy_obmol = ob.OBMol(ori_obmol) # connectivity may be corrupted by removing and adding Hs multiple times pose.copy_coordinates_to_obmol(copy_obmol) - output_string += conv.WriteString(copy_obmol) + output_string = conv.WriteString(copy_obmol) else: # RDKit mol from SMILES in docking output PDBQT remarks - if pdbqt_mol._pose_data['smiles'] is None: - msg = "\n\n \"REMARK SMILES\" not found in %s.\n" % docking_results_filename - msg += " Consider using -i/--original_input\n" - raise RuntimeError(msg) - sio = StringIO() - f = Chem.SDWriter(sio) - mol_list = RDKitMolCreate.from_pdbqt_mol(pdbqt_mol) - for i, mol in enumerate(mol_list): - if mol is None: - warnings.warn("molecule %d not converted to RDKit/SD File" % i) - combined_mol = RDKitMolCreate.combine_rdkit_mols(mol_list) - for conformer in combined_mol.GetConformers(): - f.write(combined_mol, conformer.GetId()) - f.close() - output_string += sio.getvalue() + output_string, failures = RDKitMolCreate.write_sd_string(pdbqt_mol) output_format = 'sdf' - + for i in failures: + warnings.warn("molecule %d not converted to RDKit/SD File" % i) if not redirect_stdout: if output_filename is None: output_filename = '%s%s.%s' % (os.path.splitext(docking_results_filename)[0], suffix_name, output_format) From fd73a474791eb115960efa91fba1fea493d38141 Mon Sep 17 00:00:00 2001 From: diogom Date: Wed, 9 Nov 2022 19:04:29 -0800 Subject: [PATCH 05/12] error message for failed PDBQT to SDF in mk_export.py --- meeko/rdkit_mol_create.py | 2 ++ scripts/mk_export.py | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/meeko/rdkit_mol_create.py b/meeko/rdkit_mol_create.py index 80a67e2d..4ba6163f 100644 --- a/meeko/rdkit_mol_create.py +++ b/meeko/rdkit_mol_create.py @@ -340,6 +340,8 @@ def write_sd_string(pdbqt_mol): mol_list = RDKitMolCreate.from_pdbqt_mol(pdbqt_mol) failures = [i for i, mol in enumerate(mol_list) if mol is None] combined_mol = RDKitMolCreate.combine_rdkit_mols(mol_list) + if combined_mol is None: + return "", failures for conformer in combined_mol.GetConformers(): i = conformer.GetId() data = { diff --git a/scripts/mk_export.py b/scripts/mk_export.py index 7c9cfe98..4b305696 100755 --- a/scripts/mk_export.py +++ b/scripts/mk_export.py @@ -79,6 +79,12 @@ def cmd_lineparser(): output_format = 'sdf' for i in failures: warnings.warn("molecule %d not converted to RDKit/SD File" % i) + if len(failures) == len(pdbqt_mol._atom_annotations["mol_index"]): + msg = "\nCould not convert to RDKit. Maybe meeko was not used for preparing\n" + msg += "the input PDBQT for docking, and the SMILES string is missing?\n" + msg += "Except for standard protein sidechains, all ligands and flexible residues\n" + msg += "require a REMARK SMILES line in the PDBQT, which is added automatically by meeko." + raise RuntimeError(msg) if not redirect_stdout: if output_filename is None: output_filename = '%s%s.%s' % (os.path.splitext(docking_results_filename)[0], suffix_name, output_format) From c97b67ca64977caf5a19c33721856f9e0ac0abcb Mon Sep 17 00:00:00 2001 From: diogom Date: Thu, 10 Nov 2022 19:15:36 -0800 Subject: [PATCH 06/12] simplified parsing in _read_ligand_pdbqt_file() --- meeko/molecule_pdbqt.py | 91 ++++++++++++++++++++--------------------- 1 file changed, 45 insertions(+), 46 deletions(-) diff --git a/meeko/molecule_pdbqt.py b/meeko/molecule_pdbqt.py index 3426292e..9e2c2a0b 100644 --- a/meeko/molecule_pdbqt.py +++ b/meeko/molecule_pdbqt.py @@ -166,52 +166,51 @@ def _read_ligand_pdbqt_file(pdbqt_string, poses_to_read=-1, energy_range=-1, is_ buffer_smiles = None buffer_smiles_index_map = [] buffer_smiles_h_parent = [] - elif line.startswith('REMARK') or line.startswith('USER'): - if line.startswith('REMARK INDEX MAP') and is_first_pose: - integers = [int(integer) for integer in line.split()[3:]] - if len(integers) % 2 == 1: - raise RuntimeError("Number of indices in INDEX MAP is odd") - for j in range(int(len(integers) / 2)): - buffer_index_map[integers[j*2]] = integers[j*2 + 1] - elif line.startswith('REMARK SMILES IDX') and is_first_pose: - integers = [int(integer) for integer in line.split()[3:]] - if len(integers) % 2 == 1: - raise RuntimeError("Number of indices in SMILES IDX is odd") - buffer_smiles_index_map.extend(integers) - elif line.startswith('REMARK H PARENT') and is_first_pose: - integers = [int(integer) for integer in line.split()[3:]] - if len(integers) % 2 == 1: - raise RuntimeError("Number of indices in H PARENT is odd") - buffer_smiles_h_parent.extend(integers) - elif line.startswith('REMARK SMILES') and is_first_pose: # must check after SMILES IDX - buffer_smiles = line.split()[2] - elif line.startswith('REMARK VINA RESULT') or line.startswith('USER Estimated Free Energy of Binding ='): - # Read free energy from output PDBQT files - try: - # Vina - energy = float(line.split()[3]) - except: - # AD4 - energy = float(line[45:].split()[0]) # no guarantee of space between = and number - - if energy_best_pose is None: - energy_best_pose = energy - energy_current_pose = energy - - # NOTE this assumes poses are sorted by increasing energy - diff_energy = energy_current_pose - energy_best_pose - if (energy_range <= diff_energy and energy_range != -1): - break - - pose_data['free_energies'].append(energy) - elif not is_dlg and line.startswith('REMARK INTER:'): - pose_data['intermolecular_energies'].append(float(line.split()[2])) - elif not is_dlg and line.startswith('REMARK INTRA:'): - pose_data['internal_energies'].append(float(line.split()[2])) - elif is_dlg and line.startswith('USER (1) Final Intermolecular Energy ='): - pose_data['intermolecular_energies'].append(float(line[45:].split()[0])) - elif is_dlg and line.startswith('USER (2) Final Total Internal Energy ='): - pose_data['internal_energies'].append(float(line[45:].split()[0])) + elif line.startswith('REMARK INDEX MAP') and is_first_pose: + integers = [int(integer) for integer in line.split()[3:]] + if len(integers) % 2 == 1: + raise RuntimeError("Number of indices in INDEX MAP is odd") + for j in range(int(len(integers) / 2)): + buffer_index_map[integers[j*2]] = integers[j*2 + 1] + elif line.startswith('REMARK SMILES IDX') and is_first_pose: + integers = [int(integer) for integer in line.split()[3:]] + if len(integers) % 2 == 1: + raise RuntimeError("Number of indices in SMILES IDX is odd") + buffer_smiles_index_map.extend(integers) + elif line.startswith('REMARK H PARENT') and is_first_pose: + integers = [int(integer) for integer in line.split()[3:]] + if len(integers) % 2 == 1: + raise RuntimeError("Number of indices in H PARENT is odd") + buffer_smiles_h_parent.extend(integers) + elif line.startswith('REMARK SMILES') and is_first_pose: # must check after SMILES IDX + buffer_smiles = line.split()[2] + elif line.startswith('REMARK VINA RESULT') or line.startswith('USER Estimated Free Energy of Binding ='): + # Read free energy from output PDBQT files + try: + # Vina + energy = float(line.split()[3]) + except: + # AD4 + energy = float(line[45:].split()[0]) # no guarantee of space between = and number + + if energy_best_pose is None: + energy_best_pose = energy + energy_current_pose = energy + + # NOTE this assumes poses are sorted by increasing energy + diff_energy = energy_current_pose - energy_best_pose + if (energy_range <= diff_energy and energy_range != -1): + break + + pose_data['free_energies'].append(energy) + elif not is_dlg and line.startswith('REMARK INTER:'): + pose_data['intermolecular_energies'].append(float(line.split()[2])) + elif not is_dlg and line.startswith('REMARK INTRA:'): + pose_data['internal_energies'].append(float(line.split()[2])) + elif is_dlg and line.startswith('USER (1) Final Intermolecular Energy ='): + pose_data['intermolecular_energies'].append(float(line[45:].split()[0])) + elif is_dlg and line.startswith('USER (2) Final Total Internal Energy ='): + pose_data['internal_energies'].append(float(line[45:].split()[0])) elif line.startswith('BEGIN_RES'): location = 'flexible_residue' elif line.startswith('END_RES'): From b794dd876ba899107daab21c26cd13bd60d675c2 Mon Sep 17 00:00:00 2001 From: diogom Date: Thu, 10 Nov 2022 19:16:36 -0800 Subject: [PATCH 07/12] add forgotten test for flexres conversion to RDKit --- test/rdkitmol_from_docking_data/arg_his.pdbqt | 909 ++++++++++++++++++ test/rdkitmol_from_docking_test.py | 5 + 2 files changed, 914 insertions(+) create mode 100644 test/rdkitmol_from_docking_data/arg_his.pdbqt diff --git a/test/rdkitmol_from_docking_data/arg_his.pdbqt b/test/rdkitmol_from_docking_data/arg_his.pdbqt new file mode 100644 index 00000000..2e7e7d6d --- /dev/null +++ b/test/rdkitmol_from_docking_data/arg_his.pdbqt @@ -0,0 +1,909 @@ +MODEL 1 +REMARK VINA RESULT: -5.854 0.000 0.000 +REMARK INTER + INTRA: -9.996 +REMARK INTER: -7.738 +REMARK INTRA: -2.259 +REMARK UNBOUND: -2.431 +REMARK SMILES COC(=O)C1C(OC(=O)c2ccccc2)CC2CCC1N2C +REMARK SMILES IDX 21 1 20 2 17 3 5 4 19 5 18 6 16 7 6 8 22 9 7 10 8 11 9 12 +REMARK SMILES IDX 10 13 11 14 15 15 12 16 14 17 13 18 3 19 4 20 2 21 1 22 +REMARK H PARENT +REMARK Flexibility Score: inf +ROOT +ATOM 1 N UNL 1 32.067 53.811 55.304 1.00 0.00 -0.299 NA +ATOM 2 C UNL 1 33.330 54.448 54.875 1.00 0.00 0.074 C +ATOM 3 C UNL 1 31.041 54.631 54.636 1.00 0.00 0.060 C +ATOM 4 C UNL 1 33.582 54.032 53.403 1.00 0.00 0.157 C +ATOM 5 C UNL 1 33.045 55.950 54.991 1.00 0.00 0.022 C +ATOM 6 C UNL 1 31.527 56.072 54.824 1.00 0.00 0.021 C +ATOM 7 C UNL 1 31.044 54.207 53.154 1.00 0.00 0.065 C +ATOM 8 C UNL 1 32.410 54.425 52.483 1.00 0.00 0.194 C +ATOM 9 C UNL 1 31.913 53.777 56.757 1.00 0.00 0.106 C +ENDROOT +BRANCH 8 10 +ATOM 10 O UNL 1 32.478 53.732 51.244 1.00 0.00 -0.458 OA +BRANCH 10 11 +ATOM 11 C UNL 1 33.061 54.405 50.214 1.00 0.00 0.338 C +ATOM 12 O UNL 1 33.909 55.278 50.316 1.00 0.00 -0.246 OA +BRANCH 11 13 +ATOM 13 C UNL 1 32.528 53.937 48.910 1.00 0.00 0.060 A +ATOM 14 C UNL 1 32.368 52.582 48.702 1.00 0.00 0.015 A +ATOM 15 C UNL 1 32.208 54.872 47.946 1.00 0.00 0.015 A +ATOM 16 C UNL 1 31.868 52.143 47.476 1.00 0.00 0.001 A +ATOM 17 C UNL 1 31.707 54.432 46.721 1.00 0.00 0.001 A +ATOM 18 C UNL 1 31.537 53.067 46.486 1.00 0.00 0.000 A +ENDBRANCH 11 13 +ENDBRANCH 10 11 +ENDBRANCH 8 10 +BRANCH 4 19 +ATOM 19 C UNL 1 33.871 52.555 53.345 1.00 0.00 0.314 C +ATOM 20 O UNL 1 33.211 51.705 53.927 1.00 0.00 -0.252 OA +BRANCH 19 21 +ATOM 21 O UNL 1 34.962 52.335 52.558 1.00 0.00 -0.469 OA +ATOM 22 C UNL 1 35.975 53.344 52.615 1.00 0.00 0.282 C +ENDBRANCH 19 21 +ENDBRANCH 4 19 +TORSDOF 5 +BEGIN_RES HIS A 237 +REMARK 2 active torsions: +REMARK status: ('A' for Active; 'I' for Inactive) +REMARK 1 A between atoms: CA and CB +REMARK 2 A between atoms: CB and CG +ROOT +ATOM 1 CA HIS A 237 33.427 62.330 68.260 1.00 85.81 0.182 C +ENDROOT +BRANCH 1 2 +ATOM 2 CB HIS A 237 34.294 63.591 68.234 1.00 79.66 0.095 C +BRANCH 2 3 +ATOM 3 CG HIS A 237 35.298 63.612 67.124 1.00101.64 0.053 A +ATOM 4 ND1 HIS A 237 35.273 62.713 66.078 1.00101.55 -0.247 NA +ATOM 5 CE1 HIS A 237 36.273 62.971 65.255 1.00 84.31 0.207 A +ATOM 6 NE2 HIS A 237 36.948 64.004 65.728 1.00 92.30 -0.359 N +ATOM 7 CD2 HIS A 237 36.359 64.424 66.896 1.00 93.39 0.116 A +ATOM 8 HE2 HIS A 237 37.643 64.356 65.364 1.00 92.30 0.166 HD +ENDBRANCH 2 3 +ENDBRANCH 1 2 +END_RES HIS A 237 +BEGIN_RES ARG A 261 +REMARK 4 active torsions: +REMARK status: ('A' for Active; 'I' for Inactive) +REMARK 3 A between atoms: CA and CB +REMARK 4 A between atoms: CB and CG +REMARK 5 A between atoms: CG and CD +REMARK 6 A between atoms: CD and NE +REMARK I between atoms: NE and CZ +REMARK I between atoms: CZ and NH1 +REMARK I between atoms: CZ and NH2 +ROOT +ATOM 9 CA ARG A 261 32.457 60.823 54.306 1.00 64.82 0.176 C +ENDROOT +BRANCH 9 10 +ATOM 10 CB ARG A 261 33.495 59.810 53.816 1.00 43.46 0.036 C +BRANCH 10 11 +ATOM 11 CG ARG A 261 33.679 59.804 52.309 1.00 60.85 0.023 C +BRANCH 11 12 +ATOM 12 CD ARG A 261 34.828 58.906 51.894 1.00 53.91 0.138 C +BRANCH 12 13 +ATOM 13 NE ARG A 261 34.493 58.114 50.716 1.00 67.62 -0.227 N +ATOM 14 HE ARG A 261 34.091 57.364 50.837 1.00 67.62 0.177 HD +ATOM 15 CZ ARG A 261 34.771 58.477 49.469 1.00 79.43 0.665 C +ATOM 16 NH1 ARG A 261 35.396 59.624 49.232 1.00 58.62 -0.235 N +ATOM 17 NH2 ARG A 261 34.425 57.692 48.457 1.00 80.37 -0.235 N +ATOM 18 HH11 ARG A 261 35.622 60.133 49.887 1.00 58.62 0.174 HD +ATOM 19 HH12 ARG A 261 35.574 59.857 48.424 1.00 58.62 0.174 HD +ATOM 20 HH22 ARG A 261 34.604 57.927 47.649 1.00 80.37 0.174 HD +ATOM 21 HH21 ARG A 261 34.021 56.948 48.609 1.00 80.37 0.174 HD +ENDBRANCH 12 13 +ENDBRANCH 11 12 +ENDBRANCH 10 11 +ENDBRANCH 9 10 +END_RES ARG A 261 +ENDMDL +MODEL 2 +REMARK VINA RESULT: -5.785 3.390 6.702 +REMARK INTER + INTRA: -9.907 +REMARK INTER: -7.219 +REMARK INTRA: -2.688 +REMARK UNBOUND: -2.431 +REMARK SMILES COC(=O)C1C(OC(=O)c2ccccc2)CC2CCC1N2C +REMARK SMILES IDX 21 1 20 2 17 3 5 4 19 5 18 6 16 7 6 8 22 9 7 10 8 11 9 12 +REMARK SMILES IDX 10 13 11 14 15 15 12 16 14 17 13 18 3 19 4 20 2 21 1 22 +REMARK H PARENT +REMARK Flexibility Score: inf +ROOT +ATOM 1 N UNL 1 35.364 57.638 57.245 1.00 0.00 -0.299 NA +ATOM 2 C UNL 1 34.227 57.255 58.109 1.00 0.00 0.074 C +ATOM 3 C UNL 1 36.450 56.766 57.726 1.00 0.00 0.060 C +ATOM 4 C UNL 1 33.703 55.886 57.607 1.00 0.00 0.157 C +ATOM 5 C UNL 1 34.847 57.140 59.507 1.00 0.00 0.022 C +ATOM 6 C UNL 1 36.320 56.806 59.253 1.00 0.00 0.021 C +ATOM 7 C UNL 1 36.164 55.361 57.158 1.00 0.00 0.065 C +ATOM 8 C UNL 1 34.804 54.809 57.614 1.00 0.00 0.194 C +ATOM 9 C UNL 1 35.693 59.058 57.333 1.00 0.00 0.106 C +ENDROOT +BRANCH 8 10 +ATOM 10 O UNL 1 34.427 53.687 56.827 1.00 0.00 -0.458 OA +BRANCH 10 11 +ATOM 11 C UNL 1 34.508 52.473 57.438 1.00 0.00 0.338 C +ATOM 12 O UNL 1 35.313 51.592 57.180 1.00 0.00 -0.246 OA +BRANCH 11 13 +ATOM 13 C UNL 1 33.467 52.343 58.489 1.00 0.00 0.060 A +ATOM 14 C UNL 1 33.842 51.930 59.752 1.00 0.00 0.015 A +ATOM 15 C UNL 1 32.158 52.639 58.171 1.00 0.00 0.015 A +ATOM 16 C UNL 1 32.865 51.807 60.739 1.00 0.00 0.001 A +ATOM 17 C UNL 1 31.180 52.517 59.159 1.00 0.00 0.001 A +ATOM 18 C UNL 1 31.534 52.101 60.443 1.00 0.00 0.000 A +ENDBRANCH 11 13 +ENDBRANCH 10 11 +ENDBRANCH 8 10 +BRANCH 4 19 +ATOM 19 C UNL 1 33.092 56.057 56.241 1.00 0.00 0.314 C +ATOM 20 O UNL 1 33.695 56.497 55.272 1.00 0.00 -0.252 OA +BRANCH 19 21 +ATOM 21 O UNL 1 31.791 55.649 56.269 1.00 0.00 -0.469 OA +ATOM 22 C UNL 1 31.401 54.769 55.211 1.00 0.00 0.282 C +ENDBRANCH 19 21 +ENDBRANCH 4 19 +TORSDOF 5 +BEGIN_RES HIS A 237 +REMARK 2 active torsions: +REMARK status: ('A' for Active; 'I' for Inactive) +REMARK 1 A between atoms: CA and CB +REMARK 2 A between atoms: CB and CG +ROOT +ATOM 1 CA HIS A 237 33.427 62.330 68.260 1.00 85.81 0.182 C +ENDROOT +BRANCH 1 2 +ATOM 2 CB HIS A 237 34.294 63.591 68.234 1.00 79.66 0.095 C +BRANCH 2 3 +ATOM 3 CG HIS A 237 35.439 63.519 67.272 1.00101.64 0.053 A +ATOM 4 ND1 HIS A 237 35.460 62.649 66.202 1.00101.55 -0.247 NA +ATOM 5 CE1 HIS A 237 36.588 62.806 65.533 1.00 84.31 0.207 A +ATOM 6 NE2 HIS A 237 37.300 63.745 66.128 1.00 92.30 -0.359 N +ATOM 7 CD2 HIS A 237 36.604 64.207 67.220 1.00 93.39 0.116 A +ATOM 8 HE2 HIS A 237 38.074 64.022 65.875 1.00 92.30 0.166 HD +ENDBRANCH 2 3 +ENDBRANCH 1 2 +END_RES HIS A 237 +BEGIN_RES ARG A 261 +REMARK 4 active torsions: +REMARK status: ('A' for Active; 'I' for Inactive) +REMARK 3 A between atoms: CA and CB +REMARK 4 A between atoms: CB and CG +REMARK 5 A between atoms: CG and CD +REMARK 6 A between atoms: CD and NE +REMARK I between atoms: NE and CZ +REMARK I between atoms: CZ and NH1 +REMARK I between atoms: CZ and NH2 +ROOT +ATOM 9 CA ARG A 261 32.457 60.823 54.306 1.00 64.82 0.176 C +ENDROOT +BRANCH 9 10 +ATOM 10 CB ARG A 261 33.495 59.810 53.816 1.00 43.46 0.036 C +BRANCH 10 11 +ATOM 11 CG ARG A 261 33.650 59.776 52.306 1.00 60.85 0.023 C +BRANCH 11 12 +ATOM 12 CD ARG A 261 34.493 58.596 51.862 1.00 53.91 0.138 C +BRANCH 12 13 +ATOM 13 NE ARG A 261 34.028 57.349 52.457 1.00 67.62 -0.227 N +ATOM 14 HE ARG A 261 33.655 57.387 53.230 1.00 67.62 0.177 HD +ATOM 15 CZ ARG A 261 34.145 56.157 51.881 1.00 79.43 0.665 C +ATOM 16 NH1 ARG A 261 34.719 56.046 50.690 1.00 58.62 -0.235 N +ATOM 17 NH2 ARG A 261 33.690 55.075 52.499 1.00 80.37 -0.235 N +ATOM 18 HH11 ARG A 261 35.017 56.747 50.289 1.00 58.62 0.174 HD +ATOM 19 HH12 ARG A 261 34.794 55.274 50.319 1.00 58.62 0.174 HD +ATOM 20 HH22 ARG A 261 33.765 54.303 52.126 1.00 80.37 0.174 HD +ATOM 21 HH21 ARG A 261 33.319 55.145 53.272 1.00 80.37 0.174 HD +ENDBRANCH 12 13 +ENDBRANCH 11 12 +ENDBRANCH 10 11 +ENDBRANCH 9 10 +END_RES ARG A 261 +ENDMDL +MODEL 3 +REMARK VINA RESULT: -5.566 4.375 7.759 +REMARK INTER + INTRA: -9.625 +REMARK INTER: -7.013 +REMARK INTRA: -2.612 +REMARK UNBOUND: -2.431 +REMARK SMILES COC(=O)C1C(OC(=O)c2ccccc2)CC2CCC1N2C +REMARK SMILES IDX 21 1 20 2 17 3 5 4 19 5 18 6 16 7 6 8 22 9 7 10 8 11 9 12 +REMARK SMILES IDX 10 13 11 14 15 15 12 16 14 17 13 18 3 19 4 20 2 21 1 22 +REMARK H PARENT +REMARK Flexibility Score: inf +ROOT +ATOM 1 N UNL 1 33.121 54.338 55.613 1.00 0.00 -0.299 NA +ATOM 2 C UNL 1 32.050 55.113 56.275 1.00 0.00 0.074 C +ATOM 3 C UNL 1 33.916 55.383 54.944 1.00 0.00 0.060 C +ATOM 4 C UNL 1 32.674 55.800 57.516 1.00 0.00 0.157 C +ATOM 5 C UNL 1 31.628 56.141 55.218 1.00 0.00 0.022 C +ATOM 6 C UNL 1 32.870 56.326 54.340 1.00 0.00 0.021 C +ATOM 7 C UNL 1 34.748 56.070 56.045 1.00 0.00 0.065 C +ATOM 8 C UNL 1 33.869 56.697 57.139 1.00 0.00 0.194 C +ATOM 9 C UNL 1 32.606 53.333 54.687 1.00 0.00 0.106 C +ENDROOT +BRANCH 8 10 +ATOM 10 O UNL 1 34.646 57.022 58.285 1.00 0.00 -0.458 OA +BRANCH 10 11 +ATOM 11 C UNL 1 34.918 58.343 58.468 1.00 0.00 0.338 C +ATOM 12 O UNL 1 35.062 59.175 57.585 1.00 0.00 -0.246 OA +BRANCH 11 13 +ATOM 13 C UNL 1 35.022 58.664 59.914 1.00 0.00 0.060 A +ATOM 14 C UNL 1 34.662 59.924 60.346 1.00 0.00 0.015 A +ATOM 15 C UNL 1 35.475 57.691 60.781 1.00 0.00 0.015 A +ATOM 16 C UNL 1 34.761 60.225 61.704 1.00 0.00 0.001 A +ATOM 17 C UNL 1 35.573 57.992 62.140 1.00 0.00 0.001 A +ATOM 18 C UNL 1 35.215 59.260 62.601 1.00 0.00 0.000 A +ENDBRANCH 11 13 +ENDBRANCH 10 11 +ENDBRANCH 8 10 +BRANCH 4 19 +ATOM 19 C UNL 1 33.056 54.752 58.527 1.00 0.00 0.314 C +ATOM 20 O UNL 1 34.200 54.557 58.914 1.00 0.00 -0.252 OA +BRANCH 19 21 +ATOM 21 O UNL 1 31.940 54.077 58.927 1.00 0.00 -0.469 OA +ATOM 22 C UNL 1 32.108 52.668 59.111 1.00 0.00 0.282 C +ENDBRANCH 19 21 +ENDBRANCH 4 19 +TORSDOF 5 +BEGIN_RES HIS A 237 +REMARK 2 active torsions: +REMARK status: ('A' for Active; 'I' for Inactive) +REMARK 1 A between atoms: CA and CB +REMARK 2 A between atoms: CB and CG +ROOT +ATOM 1 CA HIS A 237 33.427 62.330 68.260 1.00 85.81 0.182 C +ENDROOT +BRANCH 1 2 +ATOM 2 CB HIS A 237 34.294 63.591 68.234 1.00 79.66 0.095 C +BRANCH 2 3 +ATOM 3 CG HIS A 237 35.412 63.536 67.240 1.00101.64 0.053 A +ATOM 4 ND1 HIS A 237 35.453 62.617 66.213 1.00101.55 -0.247 NA +ATOM 5 CE1 HIS A 237 36.549 62.804 65.500 1.00 84.31 0.207 A +ATOM 6 NE2 HIS A 237 37.222 63.812 66.026 1.00 92.30 -0.359 N +ATOM 7 CD2 HIS A 237 36.532 64.288 67.116 1.00 93.39 0.116 A +ATOM 8 HE2 HIS A 237 37.970 64.120 65.735 1.00 92.30 0.166 HD +ENDBRANCH 2 3 +ENDBRANCH 1 2 +END_RES HIS A 237 +BEGIN_RES ARG A 261 +REMARK 4 active torsions: +REMARK status: ('A' for Active; 'I' for Inactive) +REMARK 3 A between atoms: CA and CB +REMARK 4 A between atoms: CB and CG +REMARK 5 A between atoms: CG and CD +REMARK 6 A between atoms: CD and NE +REMARK I between atoms: NE and CZ +REMARK I between atoms: CZ and NH1 +REMARK I between atoms: CZ and NH2 +ROOT +ATOM 9 CA ARG A 261 32.457 60.823 54.306 1.00 64.82 0.176 C +ENDROOT +BRANCH 9 10 +ATOM 10 CB ARG A 261 33.495 59.810 53.816 1.00 43.46 0.036 C +BRANCH 10 11 +ATOM 11 CG ARG A 261 33.701 59.826 52.312 1.00 60.85 0.023 C +BRANCH 11 12 +ATOM 12 CD ARG A 261 35.173 59.744 51.953 1.00 53.91 0.138 C +BRANCH 12 13 +ATOM 13 NE ARG A 261 36.019 60.209 53.047 1.00 67.62 -0.227 N +ATOM 14 HE ARG A 261 36.007 59.763 53.781 1.00 67.62 0.177 HD +ATOM 15 CZ ARG A 261 36.805 61.278 52.980 1.00 79.43 0.665 C +ATOM 16 NH1 ARG A 261 36.852 62.002 51.869 1.00 58.62 -0.235 N +ATOM 17 NH2 ARG A 261 37.543 61.624 54.027 1.00 80.37 -0.235 N +ATOM 18 HH11 ARG A 261 36.373 61.780 51.190 1.00 58.62 0.174 HD +ATOM 19 HH12 ARG A 261 37.362 62.693 51.828 1.00 58.62 0.174 HD +ATOM 20 HH22 ARG A 261 38.052 62.316 53.984 1.00 80.37 0.174 HD +ATOM 21 HH21 ARG A 261 37.512 61.157 54.748 1.00 80.37 0.174 HD +ENDBRANCH 12 13 +ENDBRANCH 11 12 +ENDBRANCH 10 11 +ENDBRANCH 9 10 +END_RES ARG A 261 +ENDMDL +MODEL 4 +REMARK VINA RESULT: -5.332 2.098 5.422 +REMARK INTER + INTRA: -9.321 +REMARK INTER: -6.739 +REMARK INTRA: -2.582 +REMARK UNBOUND: -2.431 +REMARK SMILES COC(=O)C1C(OC(=O)c2ccccc2)CC2CCC1N2C +REMARK SMILES IDX 21 1 20 2 17 3 5 4 19 5 18 6 16 7 6 8 22 9 7 10 8 11 9 12 +REMARK SMILES IDX 10 13 11 14 15 15 12 16 14 17 13 18 3 19 4 20 2 21 1 22 +REMARK H PARENT +REMARK Flexibility Score: inf +ROOT +ATOM 1 N UNL 1 34.798 53.650 50.540 1.00 0.00 -0.299 NA +ATOM 2 C UNL 1 33.554 52.913 50.848 1.00 0.00 0.074 C +ATOM 3 C UNL 1 34.316 55.019 50.290 1.00 0.00 0.060 C +ATOM 4 C UNL 1 33.127 53.306 52.285 1.00 0.00 0.157 C +ATOM 5 C UNL 1 32.553 53.426 49.806 1.00 0.00 0.022 C +ATOM 6 C UNL 1 33.054 54.827 49.442 1.00 0.00 0.021 C +ATOM 7 C UNL 1 33.999 55.628 51.670 1.00 0.00 0.065 C +ATOM 8 C UNL 1 32.933 54.827 52.435 1.00 0.00 0.194 C +ATOM 9 C UNL 1 35.527 53.086 49.407 1.00 0.00 0.106 C +ENDROOT +BRANCH 8 10 +ATOM 10 O UNL 1 32.905 55.206 53.805 1.00 0.00 -0.458 OA +BRANCH 10 11 +ATOM 11 C UNL 1 31.718 55.031 54.449 1.00 0.00 0.338 C +ATOM 12 O UNL 1 30.616 54.995 53.925 1.00 0.00 -0.246 OA +BRANCH 11 13 +ATOM 13 C UNL 1 31.930 54.884 55.911 1.00 0.00 0.060 A +ATOM 14 C UNL 1 32.338 55.982 56.640 1.00 0.00 0.015 A +ATOM 15 C UNL 1 31.711 53.654 56.496 1.00 0.00 0.015 A +ATOM 16 C UNL 1 32.537 55.844 58.014 1.00 0.00 0.001 A +ATOM 17 C UNL 1 31.909 53.515 57.870 1.00 0.00 0.001 A +ATOM 18 C UNL 1 32.323 54.611 58.629 1.00 0.00 0.000 A +ENDBRANCH 11 13 +ENDBRANCH 10 11 +ENDBRANCH 8 10 +BRANCH 4 19 +ATOM 19 C UNL 1 34.131 52.767 53.269 1.00 0.00 0.314 C +ATOM 20 O UNL 1 35.287 53.161 53.353 1.00 0.00 -0.252 OA +BRANCH 19 21 +ATOM 21 O UNL 1 33.551 51.793 54.027 1.00 0.00 -0.469 OA +ATOM 22 C UNL 1 34.320 51.347 55.147 1.00 0.00 0.282 C +ENDBRANCH 19 21 +ENDBRANCH 4 19 +TORSDOF 5 +BEGIN_RES HIS A 237 +REMARK 2 active torsions: +REMARK status: ('A' for Active; 'I' for Inactive) +REMARK 1 A between atoms: CA and CB +REMARK 2 A between atoms: CB and CG +ROOT +ATOM 1 CA HIS A 237 33.427 62.330 68.260 1.00 85.81 0.182 C +ENDROOT +BRANCH 1 2 +ATOM 2 CB HIS A 237 34.294 63.591 68.234 1.00 79.66 0.095 C +BRANCH 2 3 +ATOM 3 CG HIS A 237 35.523 63.464 67.387 1.00101.64 0.053 A +ATOM 4 ND1 HIS A 237 35.540 62.761 66.201 1.00101.55 -0.247 NA +ATOM 5 CE1 HIS A 237 36.751 62.820 65.676 1.00 84.31 0.207 A +ATOM 6 NE2 HIS A 237 37.520 63.534 66.478 1.00 92.30 -0.359 N +ATOM 7 CD2 HIS A 237 36.776 63.949 67.556 1.00 93.39 0.116 A +ATOM 8 HE2 HIS A 237 38.352 63.711 66.347 1.00 92.30 0.166 HD +ENDBRANCH 2 3 +ENDBRANCH 1 2 +END_RES HIS A 237 +BEGIN_RES ARG A 261 +REMARK 4 active torsions: +REMARK status: ('A' for Active; 'I' for Inactive) +REMARK 3 A between atoms: CA and CB +REMARK 4 A between atoms: CB and CG +REMARK 5 A between atoms: CG and CD +REMARK 6 A between atoms: CD and NE +REMARK I between atoms: NE and CZ +REMARK I between atoms: CZ and NH1 +REMARK I between atoms: CZ and NH2 +ROOT +ATOM 9 CA ARG A 261 32.457 60.823 54.306 1.00 64.82 0.176 C +ENDROOT +BRANCH 9 10 +ATOM 10 CB ARG A 261 33.495 59.810 53.816 1.00 43.46 0.036 C +BRANCH 10 11 +ATOM 11 CG ARG A 261 33.472 59.589 52.314 1.00 60.85 0.023 C +BRANCH 11 12 +ATOM 12 CD ARG A 261 34.502 60.452 51.611 1.00 53.91 0.138 C +BRANCH 12 13 +ATOM 13 NE ARG A 261 34.093 60.775 50.249 1.00 67.62 -0.227 N +ATOM 14 HE ARG A 261 34.124 60.149 49.661 1.00 67.62 0.177 HD +ATOM 15 CZ ARG A 261 33.676 61.975 49.859 1.00 79.43 0.665 C +ATOM 16 NH1 ARG A 261 33.616 62.975 50.730 1.00 58.62 -0.235 N +ATOM 17 NH2 ARG A 261 33.321 62.176 48.597 1.00 80.37 -0.235 N +ATOM 18 HH11 ARG A 261 33.848 62.846 51.549 1.00 58.62 0.174 HD +ATOM 19 HH12 ARG A 261 33.346 63.750 50.476 1.00 58.62 0.174 HD +ATOM 20 HH22 ARG A 261 33.052 62.952 48.344 1.00 80.37 0.174 HD +ATOM 21 HH21 ARG A 261 33.361 61.529 48.031 1.00 80.37 0.174 HD +ENDBRANCH 12 13 +ENDBRANCH 11 12 +ENDBRANCH 10 11 +ENDBRANCH 9 10 +END_RES ARG A 261 +ENDMDL +MODEL 5 +REMARK VINA RESULT: -5.287 2.249 3.241 +REMARK INTER + INTRA: -9.264 +REMARK INTER: -6.647 +REMARK INTRA: -2.617 +REMARK UNBOUND: -2.431 +REMARK SMILES COC(=O)C1C(OC(=O)c2ccccc2)CC2CCC1N2C +REMARK SMILES IDX 21 1 20 2 17 3 5 4 19 5 18 6 16 7 6 8 22 9 7 10 8 11 9 12 +REMARK SMILES IDX 10 13 11 14 15 15 12 16 14 17 13 18 3 19 4 20 2 21 1 22 +REMARK H PARENT +REMARK Flexibility Score: inf +ROOT +ATOM 1 N UNL 1 32.146 53.311 57.695 1.00 0.00 -0.299 NA +ATOM 2 C UNL 1 33.611 53.329 57.889 1.00 0.00 0.074 C +ATOM 3 C UNL 1 31.855 54.689 57.264 1.00 0.00 0.060 C +ATOM 4 C UNL 1 34.265 53.306 56.484 1.00 0.00 0.157 C +ATOM 5 C UNL 1 33.874 54.658 58.607 1.00 0.00 0.022 C +ATOM 6 C UNL 1 32.712 55.564 58.185 1.00 0.00 0.021 C +ATOM 7 C UNL 1 32.301 54.788 55.791 1.00 0.00 0.065 C +ATOM 8 C UNL 1 33.797 54.485 55.610 1.00 0.00 0.194 C +ATOM 9 C UNL 1 31.418 52.925 58.901 1.00 0.00 0.106 C +ENDROOT +BRANCH 8 10 +ATOM 10 O UNL 1 34.102 54.259 54.240 1.00 0.00 -0.458 OA +BRANCH 10 11 +ATOM 11 C UNL 1 34.172 55.367 53.452 1.00 0.00 0.338 C +ATOM 12 O UNL 1 34.570 56.468 53.797 1.00 0.00 -0.246 OA +BRANCH 11 13 +ATOM 13 C UNL 1 33.691 55.068 52.079 1.00 0.00 0.060 A +ATOM 14 C UNL 1 32.741 54.083 51.904 1.00 0.00 0.015 A +ATOM 15 C UNL 1 34.210 55.786 51.020 1.00 0.00 0.015 A +ATOM 16 C UNL 1 32.291 53.802 50.615 1.00 0.00 0.001 A +ATOM 17 C UNL 1 33.758 55.505 49.730 1.00 0.00 0.001 A +ATOM 18 C UNL 1 32.798 54.513 49.528 1.00 0.00 0.000 A +ENDBRANCH 11 13 +ENDBRANCH 10 11 +ENDBRANCH 8 10 +BRANCH 4 19 +ATOM 19 C UNL 1 33.992 51.978 55.829 1.00 0.00 0.314 C +ATOM 20 O UNL 1 32.979 51.724 55.192 1.00 0.00 -0.252 OA +BRANCH 19 21 +ATOM 21 O UNL 1 35.036 51.132 56.060 1.00 0.00 -0.469 OA +ATOM 22 C UNL 1 35.787 50.751 54.903 1.00 0.00 0.282 C +ENDBRANCH 19 21 +ENDBRANCH 4 19 +TORSDOF 5 +BEGIN_RES HIS A 237 +REMARK 2 active torsions: +REMARK status: ('A' for Active; 'I' for Inactive) +REMARK 1 A between atoms: CA and CB +REMARK 2 A between atoms: CB and CG +ROOT +ATOM 1 CA HIS A 237 33.427 62.330 68.260 1.00 85.81 0.182 C +ENDROOT +BRANCH 1 2 +ATOM 2 CB HIS A 237 34.294 63.591 68.234 1.00 79.66 0.095 C +BRANCH 2 3 +ATOM 3 CG HIS A 237 35.597 63.415 67.518 1.00101.64 0.053 A +ATOM 4 ND1 HIS A 237 35.702 63.443 66.143 1.00101.55 -0.247 NA +ATOM 5 CE1 HIS A 237 36.963 63.261 65.797 1.00 84.31 0.207 A +ATOM 6 NE2 HIS A 237 37.682 63.116 66.895 1.00 92.30 -0.359 N +ATOM 7 CD2 HIS A 237 36.851 63.208 67.986 1.00 93.39 0.116 A +ATOM 8 HE2 HIS A 237 38.531 62.984 66.924 1.00 92.30 0.166 HD +ENDBRANCH 2 3 +ENDBRANCH 1 2 +END_RES HIS A 237 +BEGIN_RES ARG A 261 +REMARK 4 active torsions: +REMARK status: ('A' for Active; 'I' for Inactive) +REMARK 3 A between atoms: CA and CB +REMARK 4 A between atoms: CB and CG +REMARK 5 A between atoms: CG and CD +REMARK 6 A between atoms: CD and NE +REMARK I between atoms: NE and CZ +REMARK I between atoms: CZ and NH1 +REMARK I between atoms: CZ and NH2 +ROOT +ATOM 9 CA ARG A 261 32.457 60.823 54.306 1.00 64.82 0.176 C +ENDROOT +BRANCH 9 10 +ATOM 10 CB ARG A 261 33.495 59.810 53.816 1.00 43.46 0.036 C +BRANCH 10 11 +ATOM 11 CG ARG A 261 33.664 59.790 52.307 1.00 60.85 0.023 C +BRANCH 11 12 +ATOM 12 CD ARG A 261 35.127 59.723 51.914 1.00 53.91 0.138 C +BRANCH 12 13 +ATOM 13 NE ARG A 261 35.624 61.020 51.470 1.00 67.62 -0.227 N +ATOM 14 HE ARG A 261 35.345 61.320 50.714 1.00 67.62 0.177 HD +ATOM 15 CZ ARG A 261 36.480 61.768 52.157 1.00 79.43 0.665 C +ATOM 16 NH1 ARG A 261 36.943 61.346 53.327 1.00 58.62 -0.235 N +ATOM 17 NH2 ARG A 261 36.875 62.938 51.673 1.00 80.37 -0.235 N +ATOM 18 HH11 ARG A 261 36.689 60.586 53.641 1.00 58.62 0.174 HD +ATOM 19 HH12 ARG A 261 37.497 61.831 53.771 1.00 58.62 0.174 HD +ATOM 20 HH22 ARG A 261 37.429 63.423 52.118 1.00 80.37 0.174 HD +ATOM 21 HH21 ARG A 261 36.577 63.213 50.915 1.00 80.37 0.174 HD +ENDBRANCH 12 13 +ENDBRANCH 11 12 +ENDBRANCH 10 11 +ENDBRANCH 9 10 +END_RES ARG A 261 +ENDMDL +MODEL 6 +REMARK VINA RESULT: -5.200 2.252 5.598 +REMARK INTER + INTRA: -9.151 +REMARK INTER: -6.794 +REMARK INTRA: -2.357 +REMARK UNBOUND: -2.431 +REMARK SMILES COC(=O)C1C(OC(=O)c2ccccc2)CC2CCC1N2C +REMARK SMILES IDX 21 1 20 2 17 3 5 4 19 5 18 6 16 7 6 8 22 9 7 10 8 11 9 12 +REMARK SMILES IDX 10 13 11 14 15 15 12 16 14 17 13 18 3 19 4 20 2 21 1 22 +REMARK H PARENT +REMARK Flexibility Score: inf +ROOT +ATOM 1 N UNL 1 34.815 53.658 50.249 1.00 0.00 -0.299 NA +ATOM 2 C UNL 1 33.604 52.865 50.553 1.00 0.00 0.074 C +ATOM 3 C UNL 1 34.286 55.026 50.113 1.00 0.00 0.060 C +ATOM 4 C UNL 1 33.225 53.146 52.029 1.00 0.00 0.157 C +ATOM 5 C UNL 1 32.548 53.418 49.588 1.00 0.00 0.022 C +ATOM 6 C UNL 1 32.996 54.855 49.303 1.00 0.00 0.021 C +ATOM 7 C UNL 1 34.008 55.530 51.544 1.00 0.00 0.065 C +ATOM 8 C UNL 1 32.996 54.647 52.291 1.00 0.00 0.194 C +ATOM 9 C UNL 1 35.513 53.195 49.053 1.00 0.00 0.106 C +ENDROOT +BRANCH 8 10 +ATOM 10 O UNL 1 33.013 54.930 53.684 1.00 0.00 -0.458 OA +BRANCH 10 11 +ATOM 11 C UNL 1 31.810 54.873 54.320 1.00 0.00 0.338 C +ATOM 12 O UNL 1 30.715 54.846 53.782 1.00 0.00 -0.246 OA +BRANCH 11 13 +ATOM 13 C UNL 1 31.995 54.844 55.793 1.00 0.00 0.060 A +ATOM 14 C UNL 1 32.258 56.025 56.456 1.00 0.00 0.015 A +ATOM 15 C UNL 1 31.895 53.636 56.454 1.00 0.00 0.015 A +ATOM 16 C UNL 1 32.433 55.998 57.839 1.00 0.00 0.001 A +ATOM 17 C UNL 1 32.068 53.609 57.838 1.00 0.00 0.001 A +ATOM 18 C UNL 1 32.337 54.791 58.531 1.00 0.00 0.000 A +ENDBRANCH 11 13 +ENDBRANCH 10 11 +ENDBRANCH 8 10 +BRANCH 4 19 +ATOM 19 C UNL 1 34.282 52.571 52.934 1.00 0.00 0.314 C +ATOM 20 O UNL 1 35.450 52.935 52.939 1.00 0.00 -0.252 OA +BRANCH 19 21 +ATOM 21 O UNL 1 33.732 51.605 53.723 1.00 0.00 -0.469 OA +ATOM 22 C UNL 1 34.512 51.223 54.860 1.00 0.00 0.282 C +ENDBRANCH 19 21 +ENDBRANCH 4 19 +TORSDOF 5 +BEGIN_RES HIS A 237 +REMARK 2 active torsions: +REMARK status: ('A' for Active; 'I' for Inactive) +REMARK 1 A between atoms: CA and CB +REMARK 2 A between atoms: CB and CG +ROOT +ATOM 1 CA HIS A 237 33.427 62.330 68.260 1.00 85.81 0.182 C +ENDROOT +BRANCH 1 2 +ATOM 2 CB HIS A 237 34.294 63.591 68.234 1.00 79.66 0.095 C +BRANCH 2 3 +ATOM 3 CG HIS A 237 35.618 63.402 67.560 1.00101.64 0.053 A +ATOM 4 ND1 HIS A 237 35.836 63.733 66.240 1.00101.55 -0.247 NA +ATOM 5 CE1 HIS A 237 37.088 63.458 65.921 1.00 84.31 0.207 A +ATOM 6 NE2 HIS A 237 37.691 62.960 66.985 1.00 92.30 -0.359 N +ATOM 7 CD2 HIS A 237 36.793 62.914 68.025 1.00 93.39 0.116 A +ATOM 8 HE2 HIS A 237 38.511 62.706 67.022 1.00 92.30 0.166 HD +ENDBRANCH 2 3 +ENDBRANCH 1 2 +END_RES HIS A 237 +BEGIN_RES ARG A 261 +REMARK 4 active torsions: +REMARK status: ('A' for Active; 'I' for Inactive) +REMARK 3 A between atoms: CA and CB +REMARK 4 A between atoms: CB and CG +REMARK 5 A between atoms: CG and CD +REMARK 6 A between atoms: CD and NE +REMARK I between atoms: NE and CZ +REMARK I between atoms: CZ and NH1 +REMARK I between atoms: CZ and NH2 +ROOT +ATOM 9 CA ARG A 261 32.457 60.823 54.306 1.00 64.82 0.176 C +ENDROOT +BRANCH 9 10 +ATOM 10 CB ARG A 261 33.495 59.810 53.816 1.00 43.46 0.036 C +BRANCH 10 11 +ATOM 11 CG ARG A 261 33.695 59.820 52.311 1.00 60.85 0.023 C +BRANCH 11 12 +ATOM 12 CD ARG A 261 35.163 59.938 51.948 1.00 53.91 0.138 C +BRANCH 12 13 +ATOM 13 NE ARG A 261 35.926 60.597 53.001 1.00 67.62 -0.227 N +ATOM 14 HE ARG A 261 35.724 61.410 53.195 1.00 67.62 0.177 HD +ATOM 15 CZ ARG A 261 36.913 60.023 53.680 1.00 79.43 0.665 C +ATOM 16 NH1 ARG A 261 37.265 58.771 53.413 1.00 58.62 -0.235 N +ATOM 17 NH2 ARG A 261 37.550 60.701 54.625 1.00 80.37 -0.235 N +ATOM 18 HH11 ARG A 261 36.853 58.330 52.800 1.00 58.62 0.174 HD +ATOM 19 HH12 ARG A 261 37.904 58.401 53.854 1.00 58.62 0.174 HD +ATOM 20 HH22 ARG A 261 38.189 60.330 55.065 1.00 80.37 0.174 HD +ATOM 21 HH21 ARG A 261 37.325 61.513 54.798 1.00 80.37 0.174 HD +ENDBRANCH 12 13 +ENDBRANCH 11 12 +ENDBRANCH 10 11 +ENDBRANCH 9 10 +END_RES ARG A 261 +ENDMDL +MODEL 7 +REMARK VINA RESULT: -5.198 4.146 6.466 +REMARK INTER + INTRA: -9.148 +REMARK INTER: -6.640 +REMARK INTRA: -2.508 +REMARK UNBOUND: -2.431 +REMARK SMILES COC(=O)C1C(OC(=O)c2ccccc2)CC2CCC1N2C +REMARK SMILES IDX 21 1 20 2 17 3 5 4 19 5 18 6 16 7 6 8 22 9 7 10 8 11 9 12 +REMARK SMILES IDX 10 13 11 14 15 15 12 16 14 17 13 18 3 19 4 20 2 21 1 22 +REMARK H PARENT +REMARK Flexibility Score: inf +ROOT +ATOM 1 N UNL 1 34.844 57.537 55.723 1.00 0.00 -0.299 NA +ATOM 2 C UNL 1 35.655 56.419 56.250 1.00 0.00 0.074 C +ATOM 3 C UNL 1 34.273 56.974 54.486 1.00 0.00 0.060 C +ATOM 4 C UNL 1 34.677 55.385 56.862 1.00 0.00 0.157 C +ATOM 5 C UNL 1 36.362 55.857 55.010 1.00 0.00 0.022 C +ATOM 6 C UNL 1 35.440 56.218 53.841 1.00 0.00 0.021 C +ATOM 7 C UNL 1 33.139 56.025 54.923 1.00 0.00 0.065 C +ATOM 8 C UNL 1 33.640 54.893 55.835 1.00 0.00 0.194 C +ATOM 9 C UNL 1 35.627 58.748 55.490 1.00 0.00 0.106 C +ENDROOT +BRANCH 8 10 +ATOM 10 O UNL 1 32.549 54.246 56.479 1.00 0.00 -0.458 OA +BRANCH 10 11 +ATOM 11 C UNL 1 32.668 52.900 56.647 1.00 0.00 0.338 C +ATOM 12 O UNL 1 32.794 52.074 55.757 1.00 0.00 -0.246 OA +BRANCH 11 13 +ATOM 13 C UNL 1 32.625 52.544 58.088 1.00 0.00 0.060 A +ATOM 14 C UNL 1 33.793 52.164 58.717 1.00 0.00 0.015 A +ATOM 15 C UNL 1 31.418 52.606 58.754 1.00 0.00 0.015 A +ATOM 16 C UNL 1 33.753 51.829 60.070 1.00 0.00 0.001 A +ATOM 17 C UNL 1 31.377 52.271 60.108 1.00 0.00 0.001 A +ATOM 18 C UNL 1 32.546 51.883 60.766 1.00 0.00 0.000 A +ENDBRANCH 11 13 +ENDBRANCH 10 11 +ENDBRANCH 8 10 +BRANCH 4 19 +ATOM 19 C UNL 1 34.023 55.978 58.082 1.00 0.00 0.314 C +ATOM 20 O UNL 1 32.978 56.614 58.058 1.00 0.00 -0.252 OA +BRANCH 19 21 +ATOM 21 O UNL 1 34.772 55.693 59.185 1.00 0.00 -0.469 OA +ATOM 22 C UNL 1 35.241 56.828 59.919 1.00 0.00 0.282 C +ENDBRANCH 19 21 +ENDBRANCH 4 19 +TORSDOF 5 +BEGIN_RES HIS A 237 +REMARK 2 active torsions: +REMARK status: ('A' for Active; 'I' for Inactive) +REMARK 1 A between atoms: CA and CB +REMARK 2 A between atoms: CB and CG +ROOT +ATOM 1 CA HIS A 237 33.427 62.330 68.260 1.00 85.81 0.182 C +ENDROOT +BRANCH 1 2 +ATOM 2 CB HIS A 237 34.294 63.591 68.234 1.00 79.66 0.095 C +BRANCH 2 3 +ATOM 3 CG HIS A 237 35.319 63.599 67.142 1.00101.64 0.053 A +ATOM 4 ND1 HIS A 237 35.255 62.754 66.054 1.00101.55 -0.247 NA +ATOM 5 CE1 HIS A 237 36.286 62.984 65.261 1.00 84.31 0.207 A +ATOM 6 NE2 HIS A 237 37.018 63.946 65.794 1.00 92.30 -0.359 N +ATOM 7 CD2 HIS A 237 36.434 64.348 66.972 1.00 93.39 0.116 A +ATOM 8 HE2 HIS A 237 37.741 64.268 65.460 1.00 92.30 0.166 HD +ENDBRANCH 2 3 +ENDBRANCH 1 2 +END_RES HIS A 237 +BEGIN_RES ARG A 261 +REMARK 4 active torsions: +REMARK status: ('A' for Active; 'I' for Inactive) +REMARK 3 A between atoms: CA and CB +REMARK 4 A between atoms: CB and CG +REMARK 5 A between atoms: CG and CD +REMARK 6 A between atoms: CD and NE +REMARK I between atoms: NE and CZ +REMARK I between atoms: CZ and NH1 +REMARK I between atoms: CZ and NH2 +ROOT +ATOM 9 CA ARG A 261 32.457 60.823 54.306 1.00 64.82 0.176 C +ENDROOT +BRANCH 9 10 +ATOM 10 CB ARG A 261 33.495 59.810 53.816 1.00 43.46 0.036 C +BRANCH 10 11 +ATOM 11 CG ARG A 261 33.728 59.851 52.316 1.00 60.85 0.023 C +BRANCH 11 12 +ATOM 12 CD ARG A 261 35.159 60.230 51.987 1.00 53.91 0.138 C +BRANCH 12 13 +ATOM 13 NE ARG A 261 35.327 60.513 50.567 1.00 67.62 -0.227 N +ATOM 14 HE ARG A 261 35.390 59.846 50.028 1.00 67.62 0.177 HD +ATOM 15 CZ ARG A 261 35.389 61.736 50.051 1.00 79.43 0.665 C +ATOM 16 NH1 ARG A 261 35.301 62.797 50.842 1.00 58.62 -0.235 N +ATOM 17 NH2 ARG A 261 35.541 61.897 48.743 1.00 80.37 -0.235 N +ATOM 18 HH11 ARG A 261 35.204 62.695 51.691 1.00 58.62 0.174 HD +ATOM 19 HH12 ARG A 261 35.341 63.588 50.507 1.00 58.62 0.174 HD +ATOM 20 HH22 ARG A 261 35.581 62.688 48.409 1.00 80.37 0.174 HD +ATOM 21 HH21 ARG A 261 35.599 61.210 48.229 1.00 80.37 0.174 HD +ENDBRANCH 12 13 +ENDBRANCH 11 12 +ENDBRANCH 10 11 +ENDBRANCH 9 10 +END_RES ARG A 261 +ENDMDL +MODEL 8 +REMARK VINA RESULT: -5.146 6.447 9.629 +REMARK INTER + INTRA: -9.081 +REMARK INTER: -6.500 +REMARK INTRA: -2.581 +REMARK UNBOUND: -2.431 +REMARK SMILES COC(=O)C1C(OC(=O)c2ccccc2)CC2CCC1N2C +REMARK SMILES IDX 21 1 20 2 17 3 5 4 19 5 18 6 16 7 6 8 22 9 7 10 8 11 9 12 +REMARK SMILES IDX 10 13 11 14 15 15 12 16 14 17 13 18 3 19 4 20 2 21 1 22 +REMARK H PARENT +REMARK Flexibility Score: inf +ROOT +ATOM 1 N UNL 1 32.186 67.224 50.690 1.00 0.00 -0.299 NA +ATOM 2 C UNL 1 33.349 66.510 50.123 1.00 0.00 0.074 C +ATOM 3 C UNL 1 31.383 67.543 49.497 1.00 0.00 0.060 C +ATOM 4 C UNL 1 32.876 65.085 49.739 1.00 0.00 0.157 C +ATOM 5 C UNL 1 33.719 67.332 48.883 1.00 0.00 0.022 C +ATOM 6 C UNL 1 32.412 68.010 48.462 1.00 0.00 0.021 C +ATOM 7 C UNL 1 30.691 66.231 49.075 1.00 0.00 0.065 C +ATOM 8 C UNL 1 31.696 65.116 48.748 1.00 0.00 0.194 C +ATOM 9 C UNL 1 32.563 68.408 51.457 1.00 0.00 0.106 C +ENDROOT +BRANCH 8 10 +ATOM 10 O UNL 1 31.046 63.853 48.689 1.00 0.00 -0.458 OA +BRANCH 10 11 +ATOM 11 C UNL 1 31.402 63.045 47.653 1.00 0.00 0.338 C +ATOM 12 O UNL 1 32.542 62.727 47.351 1.00 0.00 -0.246 OA +BRANCH 11 13 +ATOM 13 C UNL 1 30.203 62.580 46.911 1.00 0.00 0.060 A +ATOM 14 C UNL 1 29.401 63.513 46.287 1.00 0.00 0.015 A +ATOM 15 C UNL 1 29.929 61.228 46.869 1.00 0.00 0.015 A +ATOM 16 C UNL 1 28.275 63.076 45.591 1.00 0.00 0.001 A +ATOM 17 C UNL 1 28.802 60.790 46.172 1.00 0.00 0.001 A +ATOM 18 C UNL 1 27.975 61.715 45.533 1.00 0.00 0.000 A +ENDBRANCH 11 13 +ENDBRANCH 10 11 +ENDBRANCH 8 10 +BRANCH 4 19 +ATOM 19 C UNL 1 32.542 64.316 50.989 1.00 0.00 0.314 C +ATOM 20 O UNL 1 31.770 64.714 51.851 1.00 0.00 -0.252 OA +BRANCH 19 21 +ATOM 21 O UNL 1 33.225 63.136 50.996 1.00 0.00 -0.469 OA +ATOM 22 C UNL 1 34.492 63.156 50.333 1.00 0.00 0.282 C +ENDBRANCH 19 21 +ENDBRANCH 4 19 +TORSDOF 5 +BEGIN_RES HIS A 237 +REMARK 2 active torsions: +REMARK status: ('A' for Active; 'I' for Inactive) +REMARK 1 A between atoms: CA and CB +REMARK 2 A between atoms: CB and CG +ROOT +ATOM 1 CA HIS A 237 33.427 62.330 68.260 1.00 85.81 0.182 C +ENDROOT +BRANCH 1 2 +ATOM 2 CB HIS A 237 34.294 63.591 68.234 1.00 79.66 0.095 C +BRANCH 2 3 +ATOM 3 CG HIS A 237 35.578 63.428 67.481 1.00101.64 0.053 A +ATOM 4 ND1 HIS A 237 36.625 64.318 67.591 1.00101.55 -0.247 NA +ATOM 5 CE1 HIS A 237 37.619 63.923 66.816 1.00 84.31 0.207 A +ATOM 6 NE2 HIS A 237 37.256 62.808 66.206 1.00 92.30 -0.359 N +ATOM 7 CD2 HIS A 237 35.983 62.478 66.605 1.00 93.39 0.116 A +ATOM 8 HE2 HIS A 237 37.737 62.363 65.650 1.00 92.30 0.166 HD +ENDBRANCH 2 3 +ENDBRANCH 1 2 +END_RES HIS A 237 +BEGIN_RES ARG A 261 +REMARK 4 active torsions: +REMARK status: ('A' for Active; 'I' for Inactive) +REMARK 3 A between atoms: CA and CB +REMARK 4 A between atoms: CB and CG +REMARK 5 A between atoms: CG and CD +REMARK 6 A between atoms: CD and NE +REMARK I between atoms: NE and CZ +REMARK I between atoms: CZ and NH1 +REMARK I between atoms: CZ and NH2 +ROOT +ATOM 9 CA ARG A 261 32.457 60.823 54.306 1.00 64.82 0.176 C +ENDROOT +BRANCH 9 10 +ATOM 10 CB ARG A 261 33.495 59.810 53.816 1.00 43.46 0.036 C +BRANCH 10 11 +ATOM 11 CG ARG A 261 33.712 59.836 52.314 1.00 60.85 0.023 C +BRANCH 11 12 +ATOM 12 CD ARG A 261 35.182 59.970 51.968 1.00 53.91 0.138 C +BRANCH 12 13 +ATOM 13 NE ARG A 261 35.963 60.433 53.109 1.00 67.62 -0.227 N +ATOM 14 HE ARG A 261 35.721 60.176 53.893 1.00 67.62 0.177 HD +ATOM 15 CZ ARG A 261 37.022 61.229 53.016 1.00 79.43 0.665 C +ATOM 16 NH1 ARG A 261 37.431 61.657 51.828 1.00 58.62 -0.235 N +ATOM 17 NH2 ARG A 261 37.673 61.598 54.111 1.00 80.37 -0.235 N +ATOM 18 HH11 ARG A 261 37.009 61.420 51.117 1.00 58.62 0.174 HD +ATOM 19 HH12 ARG A 261 38.118 62.172 51.770 1.00 58.62 0.174 HD +ATOM 20 HH22 ARG A 261 38.359 62.113 54.052 1.00 80.37 0.174 HD +ATOM 21 HH21 ARG A 261 37.408 61.322 54.882 1.00 80.37 0.174 HD +ENDBRANCH 12 13 +ENDBRANCH 11 12 +ENDBRANCH 10 11 +ENDBRANCH 9 10 +END_RES ARG A 261 +ENDMDL +MODEL 9 +REMARK VINA RESULT: -4.965 6.632 10.836 +REMARK INTER + INTRA: -8.848 +REMARK INTER: -6.417 +REMARK INTRA: -2.431 +REMARK UNBOUND: -2.431 +REMARK SMILES COC(=O)C1C(OC(=O)c2ccccc2)CC2CCC1N2C +REMARK SMILES IDX 21 1 20 2 17 3 5 4 19 5 18 6 16 7 6 8 22 9 7 10 8 11 9 12 +REMARK SMILES IDX 10 13 11 14 15 15 12 16 14 17 13 18 3 19 4 20 2 21 1 22 +REMARK H PARENT +REMARK Flexibility Score: inf +ROOT +ATOM 1 N UNL 1 31.509 63.862 45.989 1.00 0.00 -0.299 NA +ATOM 2 C UNL 1 31.986 62.840 46.943 1.00 0.00 0.074 C +ATOM 3 C UNL 1 30.273 64.352 46.623 1.00 0.00 0.060 C +ATOM 4 C UNL 1 32.595 63.586 48.157 1.00 0.00 0.157 C +ATOM 5 C UNL 1 30.715 62.076 47.334 1.00 0.00 0.022 C +ATOM 6 C UNL 1 29.579 63.083 47.130 1.00 0.00 0.021 C +ATOM 7 C UNL 1 30.712 65.273 47.779 1.00 0.00 0.065 C +ATOM 8 C UNL 1 31.581 64.542 48.815 1.00 0.00 0.194 C +ATOM 9 C UNL 1 31.288 63.329 44.647 1.00 0.00 0.106 C +ENDROOT +BRANCH 8 10 +ATOM 10 O UNL 1 32.234 65.471 49.670 1.00 0.00 -0.458 OA +BRANCH 10 11 +ATOM 11 C UNL 1 31.793 65.511 50.957 1.00 0.00 0.338 C +ATOM 12 O UNL 1 31.787 64.576 51.743 1.00 0.00 -0.246 OA +BRANCH 11 13 +ATOM 13 C UNL 1 31.305 66.869 51.305 1.00 0.00 0.060 A +ATOM 14 C UNL 1 32.118 67.701 52.047 1.00 0.00 0.015 A +ATOM 15 C UNL 1 30.053 67.258 50.874 1.00 0.00 0.015 A +ATOM 16 C UNL 1 31.659 68.976 52.374 1.00 0.00 0.001 A +ATOM 17 C UNL 1 29.594 68.534 51.200 1.00 0.00 0.001 A +ATOM 18 C UNL 1 30.397 69.393 51.950 1.00 0.00 0.000 A +ENDBRANCH 11 13 +ENDBRANCH 10 11 +ENDBRANCH 8 10 +BRANCH 4 19 +ATOM 19 C UNL 1 33.846 64.304 47.725 1.00 0.00 0.314 C +ATOM 20 O UNL 1 33.901 65.071 46.773 1.00 0.00 -0.252 OA +BRANCH 19 21 +ATOM 21 O UNL 1 34.876 63.964 48.551 1.00 0.00 -0.469 OA +ATOM 22 C UNL 1 35.643 65.060 49.059 1.00 0.00 0.282 C +ENDBRANCH 19 21 +ENDBRANCH 4 19 +TORSDOF 5 +BEGIN_RES HIS A 237 +REMARK 2 active torsions: +REMARK status: ('A' for Active; 'I' for Inactive) +REMARK 1 A between atoms: CA and CB +REMARK 2 A between atoms: CB and CG +ROOT +ATOM 1 CA HIS A 237 33.427 62.330 68.260 1.00 85.81 0.182 C +ENDROOT +BRANCH 1 2 +ATOM 2 CB HIS A 237 34.294 63.591 68.234 1.00 79.66 0.095 C +BRANCH 2 3 +ATOM 3 CG HIS A 237 35.568 63.434 67.462 1.00101.64 0.053 A +ATOM 4 ND1 HIS A 237 35.599 62.976 66.162 1.00101.55 -0.247 NA +ATOM 5 CE1 HIS A 237 36.851 62.941 65.741 1.00 84.31 0.207 A +ATOM 6 NE2 HIS A 237 37.633 63.359 66.720 1.00 92.30 -0.359 N +ATOM 7 CD2 HIS A 237 36.855 63.674 67.808 1.00 93.39 0.116 A +ATOM 8 HE2 HIS A 237 38.490 63.424 66.683 1.00 92.30 0.166 HD +ENDBRANCH 2 3 +ENDBRANCH 1 2 +END_RES HIS A 237 +BEGIN_RES ARG A 261 +REMARK 4 active torsions: +REMARK status: ('A' for Active; 'I' for Inactive) +REMARK 3 A between atoms: CA and CB +REMARK 4 A between atoms: CB and CG +REMARK 5 A between atoms: CG and CD +REMARK 6 A between atoms: CD and NE +REMARK I between atoms: NE and CZ +REMARK I between atoms: CZ and NH1 +REMARK I between atoms: CZ and NH2 +ROOT +ATOM 9 CA ARG A 261 32.457 60.823 54.306 1.00 64.82 0.176 C +ENDROOT +BRANCH 9 10 +ATOM 10 CB ARG A 261 33.495 59.810 53.816 1.00 43.46 0.036 C +BRANCH 10 11 +ATOM 11 CG ARG A 261 33.699 59.824 52.312 1.00 60.85 0.023 C +BRANCH 11 12 +ATOM 12 CD ARG A 261 35.166 59.689 51.950 1.00 53.91 0.138 C +BRANCH 12 13 +ATOM 13 NE ARG A 261 35.907 60.909 52.250 1.00 67.62 -0.227 N +ATOM 14 HE ARG A 261 36.124 61.056 53.068 1.00 67.62 0.177 HD +ATOM 15 CZ ARG A 261 36.267 61.807 51.339 1.00 79.43 0.665 C +ATOM 16 NH1 ARG A 261 35.950 61.626 50.063 1.00 58.62 -0.235 N +ATOM 17 NH2 ARG A 261 36.943 62.887 51.706 1.00 80.37 -0.235 N +ATOM 18 HH11 ARG A 261 35.510 60.926 49.824 1.00 58.62 0.174 HD +ATOM 19 HH12 ARG A 261 36.185 62.208 49.476 1.00 58.62 0.174 HD +ATOM 20 HH22 ARG A 261 37.177 63.469 51.117 1.00 80.37 0.174 HD +ATOM 21 HH21 ARG A 261 37.148 63.007 52.533 1.00 80.37 0.174 HD +ENDBRANCH 12 13 +ENDBRANCH 11 12 +ENDBRANCH 10 11 +ENDBRANCH 9 10 +END_RES ARG A 261 +ENDMDL diff --git a/test/rdkitmol_from_docking_test.py b/test/rdkitmol_from_docking_test.py index 96ff2055..b554e14a 100644 --- a/test/rdkitmol_from_docking_test.py +++ b/test/rdkitmol_from_docking_test.py @@ -16,6 +16,7 @@ def run(fpath, nr_expected_none, is_dlg, skip_typing): pdbqtmol = PDBQTMolecule.from_file(fpath, is_dlg=is_dlg, skip_typing=skip_typing) mols = RDKitMolCreate.from_pdbqt_mol(pdbqtmol) + print(fpath, len(mols)) assert(mols.count(None) == nr_expected_none) nr_conformers = set() for mol in mols: @@ -50,3 +51,7 @@ def test_22_flexres(): def test_phe_badphe(): fpath = datadir / "arg_gln_asn_phe_badphe.pdbqt" run(fpath, nr_expected_none=1, is_dlg=False, skip_typing=True) + +def test_arg_his(): + fpath = datadir / "arg_his.pdbqt" + run(fpath, nr_expected_none=0, is_dlg=False, skip_typing=True) From 72b34efae13cfd6da5747541062bf2e3322f5b43 Mon Sep 17 00:00:00 2001 From: diogom Date: Sat, 12 Nov 2022 12:10:15 -0800 Subject: [PATCH 08/12] error for no conformer, warning for 2D --- meeko/molsetup.py | 28 ++++++++++++++++++++++------ scripts/mk_prepare_ligand.py | 2 ++ test/skip_bad_mols_test.py | 23 +++++++++++++++++++++++ 3 files changed, 47 insertions(+), 6 deletions(-) diff --git a/meeko/molsetup.py b/meeko/molsetup.py index 95b362a2..d6601d9e 100644 --- a/meeko/molsetup.py +++ b/meeko/molsetup.py @@ -6,8 +6,8 @@ from copy import deepcopy from collections import defaultdict, OrderedDict -import inspect import json +import warnings import numpy as np from rdkit import Chem @@ -78,11 +78,6 @@ def __init__(self, mol, keep_chorded_rings=False, keep_equivalent_rings=False, """initialize a molecule template, either from scratch (template is None) or by using an existing setup (template is an instance of MoleculeSetup """ - stack = inspect.stack() - the_class = stack[1][0].f_locals["self"].__class__.__name__ - the_method = stack[1][0].f_code.co_name - #print("I was called by {}.{}()".format(the_class, the_method)) - #print("Setup initialized with:", mol, "template:", template) self.mol = mol self.atom_pseudo = [] @@ -544,6 +539,24 @@ def get_smiles_and_order(self): class RDKitMoleculeSetup(MoleculeSetup): + warned_not3D = False + + def __init__(self, mol, keep_chorded_rings=False, keep_equivalent_rings=False, + assign_charges=True, template=None): + nr_conformers = mol.GetNumConformers() + if nr_conformers == 0: + raise ValueError("RDKit molecule does not have a conformer. Need 3D coordinates.") + elif nr_conformers > 1: + msg = "RDKit molecule has multiple conformers. Considering only the first one." + warnings.warn(msg) + super().__init__( + mol, + keep_chorded_rings, + keep_equivalent_rings, + assign_charges, + template) + + def get_smiles_and_order(self): # 3D SDF files written by other toolkits (OEChem, ChemAxon) @@ -616,6 +629,9 @@ def init_atom(self, assign_charges): """ initialize the atom table information """ # extract the coordinates c = self.mol.GetConformers()[0] + if not c.Is3D() and not RDKitMoleculeSetup.warned_not3D: + warnings.warn("RDKit molecule not labeled as 3D. This warning won't show again.") + RDKitMoleculeSetup.warned_not3D = True coords = c.GetPositions() # extract/generate charges if assign_charges: diff --git a/scripts/mk_prepare_ligand.py b/scripts/mk_prepare_ligand.py index e2b0d0db..d746b772 100755 --- a/scripts/mk_prepare_ligand.py +++ b/scripts/mk_prepare_ligand.py @@ -289,6 +289,8 @@ def get_duplicates_info_string(self): preparator.prepare(mol) pdbqt_string = preparator.write_pdbqt_string() mol_name = preparator.setup.name # setup.name may be None + if args.multimol_prefix is not None: + mol_name = '%s-%d' % (args.multimol_prefix, input_mol_counter) output(pdbqt_string, mol_name) if args.verbose: preparator.show_setup() diff --git a/test/skip_bad_mols_test.py b/test/skip_bad_mols_test.py index d22264e0..8e721058 100644 --- a/test/skip_bad_mols_test.py +++ b/test/skip_bad_mols_test.py @@ -1,6 +1,9 @@ from meeko import MoleculePreparation from rdkit import Chem +from rdkit.Chem import rdDistGeom import warnings +import pytest + def test(): p = Chem.SmilesParserParams() @@ -13,3 +16,23 @@ def test(): for w in cought: print(w) assert(mk_prep.is_ok == False) + +mk_prep = MoleculePreparation() + +def test_no_conformer(): + mol = Chem.MolFromSmiles("C1CCCOC1") + mol = Chem.AddHs(mol) + with pytest.raises(ValueError) as e: + mk_prep.prepare(mol) + assert(str(e.value).endswith("Need 3D coordinates.")) + +def test_multi_conf(): + mol = Chem.MolFromSmiles("C1CNC(=O)OC1") + mol = Chem.AddHs(mol) + nr_conf = 2 + param = rdDistGeom.ETKDGv3() + rdDistGeom.EmbedMultipleConfs(mol, nr_conf, param) + with pytest.warns(UserWarning, match=r"RDKit molecule has multiple conformers"): + mk_prep.prepare(mol) + + From 2200be4200dcf711db1c51fec687567a69b67cf1 Mon Sep 17 00:00:00 2001 From: diogom Date: Sat, 12 Nov 2022 16:23:07 -0800 Subject: [PATCH 09/12] fix writing SDF without docking energies --- meeko/rdkit_mol_create.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/meeko/rdkit_mol_create.py b/meeko/rdkit_mol_create.py index 4ba6163f..667e7e36 100644 --- a/meeko/rdkit_mol_create.py +++ b/meeko/rdkit_mol_create.py @@ -342,14 +342,20 @@ def write_sd_string(pdbqt_mol): combined_mol = RDKitMolCreate.combine_rdkit_mols(mol_list) if combined_mol is None: return "", failures + nr_conformers = combined_mol.GetNumConformers() + property_names = { + "free_energy": "free_energies", + "intermolecular_energy": "intermolecular_energies", + "internal_energy": "internal_energies", + } + props = {} + for prop_sdf, prop_pdbqt in property_names.items(): + if nr_conformers == len(pdbqt_mol._pose_data[prop_pdbqt]): + props[prop_sdf] = prop_pdbqt for conformer in combined_mol.GetConformers(): i = conformer.GetId() - data = { - "free_energy": pdbqt_mol._pose_data["free_energies"][i], - "intermolecular_energy": pdbqt_mol._pose_data["intermolecular_energies"][i], - "internal_energy": pdbqt_mol._pose_data["internal_energies"][i], - } - combined_mol.SetProp("meeko", json.dumps(data)) + data = {k: pdbqt_mol._pose_data[v][i] for k, v in props.items()} + if len(data): combined_mol.SetProp("meeko", json.dumps(data)) f.write(combined_mol, i) f.close() output_string = sio.getvalue() From 8987007784c074af4ab395b48e059641cd177ddd Mon Sep 17 00:00:00 2001 From: diogom Date: Sat, 12 Nov 2022 16:24:34 -0800 Subject: [PATCH 10/12] change LICENSE from Apache 2.0 to L-GPL v2.1 --- LICENSE | 705 ++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 504 insertions(+), 201 deletions(-) diff --git a/LICENSE b/LICENSE index 261eeb9e..8000a6fa 100644 --- a/LICENSE +++ b/LICENSE @@ -1,201 +1,504 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random + Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! From 2579eac15c49a8ca18f3ca5ae26b69cfc15497ba Mon Sep 17 00:00:00 2001 From: diogom Date: Sat, 12 Nov 2022 16:29:37 -0800 Subject: [PATCH 11/12] add __version__ to meeko/__init__ --- meeko/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meeko/__init__.py b/meeko/__init__.py index 02728df2..961c5d2a 100644 --- a/meeko/__init__.py +++ b/meeko/__init__.py @@ -4,6 +4,8 @@ # Meeko # +__version__ = "0.4.0" + try: import openbabel except ImportError: From 15cd3fe65c8a7bc2b5824d5d0a6c2525867ed066 Mon Sep 17 00:00:00 2001 From: diogom Date: Mon, 14 Nov 2022 12:27:24 -0800 Subject: [PATCH 12/12] suffix -again for repeated mol names with --multimol_outdir --- scripts/mk_prepare_ligand.py | 59 +++++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 24 deletions(-) diff --git a/scripts/mk_prepare_ligand.py b/scripts/mk_prepare_ligand.py index d746b772..ee3df15d 100755 --- a/scripts/mk_prepare_ligand.py +++ b/scripts/mk_prepare_ligand.py @@ -164,30 +164,41 @@ def __init__(self, multimol_output_dir, multimol_prefix, redirect_stdout, output if multimol_output_dir is None: multimol_output_dir = '.' self.multimol_output_dir = multimol_output_dir + self.multimol_prefix = multimol_prefix self.redirect_stdout = redirect_stdout self.output_filename = output_filename self.is_multimol = is_multimol - self.duplicate_names = [] - self.visited_names = [] + self.visited_filenames = set() + self.duplicate_filenames = set() + self.visited_molnames = set() + self.duplicate_molnames = set() self.num_files_written = 0 + self.counter = 0 def __call__(self, pdbqt_string, mol_name, sufix=None): + self.counter += 1 + if mol_name in self.visited_molnames: + self.duplicate_molnames.add(mol_name) + self.visited_molnames.add(mol_name) name = mol_name + if self.multimol_prefix is not None: + name = '%s-%d' % (args.multimol_prefix, self.counter) if sufix is not None: name += '_%s' % sufix if self.is_multimol: - if name in self.visited_names: - self.duplicate_names.append(name) - is_duplicate = True - else: - self.visited_names.append(name) - is_duplicate = False - if is_duplicate: - print("Warning: not writing %s because of duplicate filename" % (name), file=sys.stderr) - else: - fpath = os.path.join(self.multimol_output_dir, name + '.pdbqt') - print(pdbqt_string, end='', file=open(fpath, 'w')) - self.num_files_written += 1 + if name in self.visited_filenames: + self.duplicate_filenames.add(name) + repeat_id = 1 + newname = name + "-again%d" % repeat_id + while newname in self.visited_filenames: + repeat_id += 1 + newname = name + "-again%d" % repeat_id + print("Renaming %s to %s to disambiguate filename" % (name, newname), file=sys.stderr) + name = newname + self.visited_filenames.add(name) + fpath = os.path.join(self.multimol_output_dir, name + '.pdbqt') + print(pdbqt_string, end='', file=open(fpath, 'w')) + self.num_files_written += 1 elif self.redirect_stdout: print(pdbqt_string, end='') else: @@ -207,11 +218,16 @@ def _mkdir(self, multimol_output_dir): def get_duplicates_info_string(self): if not self.is_multimol: return None - if len(self.duplicate_names): - d = self.duplicate_names - string = "Warning: %d output PDBQTs not written due to duplicate filenames, e.g. %s" % (len(d), d[0]) + if len(self.duplicate_molnames): + # with multimol_prefix with can have duplicate molecule names, + # but not duplicate filenames. This warning is for such cases. + string = "Warning: %d molecules have duplicated names" % len(self.duplicate_molnames) else: - string = "No duplicate molecule filenames were found" + string = "No duplicate molecule molecule names were found" + # if we have duplicate_filenames, we also have duplicate molecule names, + # but it suffices to return the string below + if len(self.duplicate_filenames): + string = "Warning: %d molecules with repeated names were suffixed with -again" % len(self.duplicate_filenames) return string @@ -270,7 +286,6 @@ def get_duplicates_info_string(self): is_valid = mol is not None elif backend == 'ob': is_valid = mol.NumAtoms() > 0 - input_mol_counter += int(is_valid==True) input_mol_skipped += int(is_valid==False) if not is_valid: continue @@ -282,19 +297,15 @@ def get_duplicates_info_string(self): res, chain, num = cov_lig.res_id pdbqt_string = preparator.adapt_pdbqt_for_autodock4_flexres(pdbqt_string, res, chain, num) mol_name = preparator.setup.name - if args.multimol_prefix is not None: - mol_name = '%s-%d' % (args.multimol_prefix, input_mol_counter) output(pdbqt_string, mol_name, sufix=cov_lig.label) else: preparator.prepare(mol) pdbqt_string = preparator.write_pdbqt_string() mol_name = preparator.setup.name # setup.name may be None - if args.multimol_prefix is not None: - mol_name = '%s-%d' % (args.multimol_prefix, input_mol_counter) output(pdbqt_string, mol_name) if args.verbose: preparator.show_setup() if output.is_multimol: - print("Input molecules processed: %d, skipped: %d" % (input_mol_counter, input_mol_skipped)) + print("Input molecules processed: %d, skipped: %d" % (output.counter, input_mol_skipped)) print("PDBQT files written: %d" % (output.num_files_written)) print(output.get_duplicates_info_string())