This feature is available since version 2.0.0
NOTE: Since version 2.1.7 it is not needed to specify protected_ids
to avoid failures of MolDrug. However, on this tutorial we will let the workaround for user with older versions. May be that the specified CReM parameters completely remove any similarity between a solution and the reference structure for constraint docking; only in this specific scenarios you should protect some atoms in order to preserve some MCS.
import tempfile, os, requests, gzip, shutil, yaml
from multiprocessing import cpu_count
from moldrug.data import ligands, boxes, receptor_pdbqt, receptor_pdb, constraintref
from moldrug import utils
tmp_path = tempfile.TemporaryDirectory()
import numpy as np
from rdkit import Chem
def atom_ids_list(smiles:str) -> list[int]:
"""Return a list of atom IDs for the molecule
Parameters
----------
smiles : str
The SMILES string of the molecule
Returns
-------
list[int]
List of atoms IDs
"""
return list(range(Chem.MolFromSmiles(smiles).GetNumAtoms()))
# Setting the working directory (you could change it but it MUST be an absolute path)
wd = tmp_path.name
# os.makedirs('wd_tutorial', exist_ok=True)
# wd = os.path.abspath('wd_tutorial')
# Getting the data
lig = ligands.r_x0161
box = boxes.r_x0161
with open(os.path.join(wd, 'x0161.pdbqt'), 'w') as f:
f.write(receptor_pdbqt.r_x0161)
with open(os.path.join(wd, 'x0161.pdb'), 'w') as f:
f.write(receptor_pdb.r_x0161)
with open(os.path.join(wd, 'ref.sdf'), 'w') as f:
f.write(constraintref.r_x0161)
# Getting the CReM data base
url = "http://www.qsar4u.com/files/cremdb/replacements02_sc2.db.gz"
r = requests.get(url, allow_redirects=True)
crem_dbgz_path = os.path.join(wd,'crem.db.gz')
crem_db_path = os.path.join(wd,'crem.db')
open(crem_dbgz_path, 'wb').write(r.content)
with gzip.open(crem_dbgz_path, 'rb') as f_in:
with open(crem_db_path, 'wb') as f_out:
shutil.copyfileobj(f_in, f_out)
print(lig)
print(atom_ids_list(lig))
print(box)
print(wd, os.listdir(wd))
COC(=O)C=1C=CC(=CC1)S(=O)(=O)N [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] {'A': {'boxcenter': [12.11, 1.84, 23.56], 'boxsize': [22.5, 22.5, 22.5]}} /var/folders/fl/txtwcjh94vs_gkm_s21h8w7m0000gn/T/tmphs9lvmia ['x0161.pdbqt', 'crem.db.gz', 'ref.sdf', 'crem.db', 'x0161.pdb']
MolDrug's version 2.0.4 tried to fix some issues with constraint docking (see release description). If follow jobs are needed and mutate_crem_kwargs
allows changes in heavy atoms; it MUST be specified the keyword protected_ids
for mutate_crem_kwargs
. This is needed because during the generation of constraint conformers constraint_ref
is used as fix core. Therefore if a generated molecule does not have this core, an error happens. On version 2.0.0 the core was guessed based on MCS but some error happened (see this RDKit bug). You have then two possibles work around:
mutate_crem_kwargs
that only allow grow operations (min_size = max_size = 0
). In this way the core will be preserved.protected_ids
inside mutate_crem_kwargs
. Those IDs are the atom indexes of seed_mol
that correspond to the atoms of constraint_ref
.On this tutorial we will use the second strategy. In this case constraint_ref
is the same as seed_mol
but with some specific conformation state. Therefore we could use the the result of atom_ids_list
function (specified above) to get the protected_ids list of atoms.
config ={
"01_grow": {
"type": "GA",
"njobs": 6,
"seed_mol": lig,
"AddHs": True,
"costfunc": "Cost",
"costfunc_kwargs": {
"vina_executable": "/Users/klimt/GIT/docking/vina_1.2.5_mac_x86_64", # You should change to the proper vina executable
"receptor_pdbqt_path": os.path.join(wd, 'x0161.pdbqt'),
"boxcenter": box['A']['boxcenter'],
"boxsize": box['A']['boxsize'],
"exhaustiveness": 4,
"ncores": int(cpu_count() / 6),
"num_modes": 1,
"constraint": True,
"constraint_type": "score_only", # local_only
"constraint_ref": os.path.join(wd, 'ref.sdf'),
"constraint_receptor_pdb_path": os.path.join(wd, 'x0161.pdb'),
"constraint_num_conf": 100,
"constraint_minimum_conf_rms": 0.01
},
"crem_db_path": crem_db_path,
"maxiter": 2,
"popsize": 10,
"beta": 0.001,
"pc": 0.5,
"get_similar": False,
"mutate_crem_kwargs": {
"radius": 3,
"min_size": 0,
"max_size": 0,
"min_inc": -5,
"max_inc": 6,
"protected_ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
"ncores": 12
},
"save_pop_every_gen": 10,
"deffnm": "01_grow"
},
"02_allow_grow": {
"mutate_crem_kwargs": {
"radius": 3,
"min_size": 0,
"max_size": 2,
"min_inc": -5,
"max_inc": 3,
"protected_ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
"ncores": 12
},
"maxiter": 2,
"deffnm": "02_allow_grow"
},
"03_pure_mutate": {
"mutate_crem_kwargs": {
"radius": 3,
"min_size": 1,
"max_size": 8,
"min_inc": -5,
"max_inc": 3,
"protected_ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
"ncores": 12
},
"maxiter": 2,
"deffnm": "03_pure_mutate"
},
"04_local": {
"mutate_crem_kwargs": {
"radius": 3,
"min_size": 0,
"max_size": 1,
"min_inc": -1,
"max_inc": 1,
"protected_ids": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
"ncores": 12
},
"maxiter": 2,
"deffnm": "04_local"
}
}
# Save the config as a yaml file
with open(os.path.join(wd, 'config.yml'), 'w') as f:
yaml.dump(config, f)
os.listdir(wd)
['x0161.pdbqt', 'crem.db.gz', 'ref.sdf', 'config.yml', 'crem.db', 'x0161.pdb']
cwd = os.getcwd()
os.chdir(wd)
! moldrug config.yml
os.chdir(cwd)
os.listdir(wd)
os.chdir(cwd)
Started at Mon Sep 4 18:24:41 2023 You are using moldrug: 3.4.0. CommandLineHelper(yaml_file='config.yml', fitness=None, outdir=None, continuation=False) Creating the first population with 10 members: 0%| | 0/10 [00:00<?, ?it/s]/opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) 10%|████▍ | 1/10 [00:02<00:23, 2.57s/it]/opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) 100%|███████████████████████████████████████████| 10/10 [00:44<00:00, 4.48s/it] Initial Population: Best Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0) Accepted rate: 10 / 10 File 01_grow_pop.sdf was createad! Evaluating generation 1 / 2: 0%| | 0/5 [00:00<?, ?it/s]/opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) 100%|█████████████████████████████████████████████| 5/5 [00:28<00:00, 5.63s/it] Generation 1: Best Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0). Accepted rate: 0 / 5 Evaluating generation 2 / 2: 0%| | 0/5 [00:00<?, ?it/s]/opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) 100%|█████████████████████████████████████████████| 5/5 [00:28<00:00, 5.64s/it] File 01_grow_pop.sdf was createad! Generation 2: Best Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0). Accepted rate: 0 / 5 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ The simulation finished successfully after 2 generations with a population of 10 individuals. A total number of 20 Individuals were seen during the simulation. Initial Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0) Final Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0) The cost function dropped in 0.0 units. =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Note: Check the running warnings and erorrs in error.tar.gz file! =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Total time (2 generations): 119.01 (s). Finished at Mon Sep 4 18:26:40 2023. File 01_grow_pop.sdf was createad! The follow job 02_allow_grow started. File 02_allow_grow_pop.sdf was createad! Evaluating generation 3 / 4: 0%| | 0/5 [00:00<?, ?it/s]/opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) 100%|█████████████████████████████████████████████| 5/5 [00:33<00:00, 6.63s/it] Generation 3: Best Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0). Accepted rate: 0 / 5 Evaluating generation 4 / 4: 0%| | 0/5 [00:00<?, ?it/s]/opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) 100%|█████████████████████████████████████████████| 5/5 [00:47<00:00, 9.42s/it] File 02_allow_grow_pop.sdf was createad! Generation 4: Best Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0). Accepted rate: 0 / 5 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ The simulation finished successfully after 4 generations with a population of 10 individuals. A total number of 30 Individuals were seen during the simulation. Initial Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0) Final Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0) The cost function dropped in 0.0 units. =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Total time (2 generations): 95.61 (s). Finished at Mon Sep 4 18:28:16 2023. File 02_allow_grow_pop.sdf was createad! The job 02_allow_grow finished! The follow job 03_pure_mutate started. File 03_pure_mutate_pop.sdf was createad! Evaluating generation 5 / 6: 0%| | 0/5 [00:00<?, ?it/s]/opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) 40%|██████████████████ | 2/5 [00:39<00:59, 19.96s/it] /Users/klimt/GIT/moldrug/moldrug/utils.py:1349: UserWarning: Parallelization did not work. Trying with serial... warn("Parallelization did not work. Trying with serial...") 0%| | 0/5 [00:00<?, ?it/s]/opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) 20%|█████████ | 1/5 [00:05<00:20, 5.07s/it]/opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) 40%|██████████████████ | 2/5 [00:44<01:16, 25.58s/it]/opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) 60%|███████████████████████████ | 3/5 [01:01<00:43, 21.51s/it]/opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) 80%|████████████████████████████████████ | 4/5 [01:10<00:16, 16.55s/it]/opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) 100%|█████████████████████████████████████████████| 5/5 [01:21<00:00, 16.22s/it] Generation 5: Best Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0). Accepted rate: 0 / 5 Note: The mutation on Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0) did not work, it will be returned the same individual Evaluating generation 6 / 6: 0%| | 0/4 [00:00<?, ?it/s]/opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) 100%|█████████████████████████████████████████████| 4/4 [00:33<00:00, 8.36s/it] File 03_pure_mutate_pop.sdf was createad! Generation 6: Best Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0). Accepted rate: 0 / 4 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ The simulation finished successfully after 6 generations with a population of 10 individuals. A total number of 39 Individuals were seen during the simulation. Initial Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0) Final Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0) The cost function dropped in 0.0 units. =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Total time (2 generations): 168.88 (s). Finished at Mon Sep 4 18:31:05 2023. File 03_pure_mutate_pop.sdf was createad! The job 03_pure_mutate finished! The follow job 04_local started. File 04_local_pop.sdf was createad! Evaluating generation 7 / 8: 0%| | 0/5 [00:00<?, ?it/s]/opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) 100%|█████████████████████████████████████████████| 5/5 [00:33<00:00, 6.65s/it] Generation 7: Best Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0). Accepted rate: 0 / 5 Evaluating generation 8 / 8: 0%| | 0/5 [00:00<?, ?it/s]/opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:230: DeprecationWarning: MoleculePreparation.write_pdbqt_string() is deprecated in Meeko v0.5. Pass the MoleculeSetup instance to PDBQTWriterLegacy.write_string(). MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) /opt/homebrew/Caskroom/miniconda/base/envs/moldrug/lib/python3.9/site-packages/meeko/preparation.py:93: DeprecationWarning: MoleculePreparation.setup is deprecated in Meeko v0.5. MoleculePreparation.prepare() returns a list of MoleculeSetup instances. warnings.warn(msg, DeprecationWarning) 100%|█████████████████████████████████████████████| 5/5 [00:19<00:00, 3.99s/it] File 04_local_pop.sdf was createad! Generation 8: Best Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0). Accepted rate: 0 / 5 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ The simulation finished successfully after 8 generations with a population of 10 individuals. A total number of 49 Individuals were seen during the simulation. Initial Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0) Final Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0) The cost function dropped in 0.0 units. =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Total time (2 generations): 68.29 (s). Finished at Mon Sep 4 18:32:13 2023. File 04_local_pop.sdf was createad! The job 04_local finished!
os.listdir(wd)
['02_allow_grow_pop.sdf', '04_local_pop.sdf', '01_grow_result.pbz2', 'x0161.pdbqt', '03_pure_mutate_pop.sdf', '04_local_result.pbz2', '01_grow_pop.sdf', '03_pure_mutate_result.pbz2', 'crem.db.gz', '03_pure_mutate_pop.pbz2', 'ref.sdf', 'config.yml', 'error.tar.gz', '02_allow_grow_result.pbz2', 'crem.db', '01_grow_pop.pbz2', '02_allow_grow_pop.pbz2', '04_local_pop.pbz2', 'x0161.pdb']
# import nglview as nv
# import parmed as pmd
# from ipywidgets import IntSlider, VBox
# parms = pmd.rdkit.from_sdf(os.path.join(wd, '04_local_pop.sdf')) # require parmed, rdkit
# parms
[<Structure 23 atoms; 1 residues; 23 bonds; NOT parameterized>, <Structure 36 atoms; 1 residues; 36 bonds; NOT parameterized>, <Structure 26 atoms; 1 residues; 26 bonds; NOT parameterized>, <Structure 37 atoms; 1 residues; 37 bonds; NOT parameterized>, <Structure 29 atoms; 1 residues; 29 bonds; NOT parameterized>, <Structure 34 atoms; 1 residues; 34 bonds; NOT parameterized>, <Structure 34 atoms; 1 residues; 34 bonds; NOT parameterized>, <Structure 29 atoms; 1 residues; 29 bonds; NOT parameterized>, <Structure 34 atoms; 1 residues; 34 bonds; NOT parameterized>, <Structure 32 atoms; 1 residues; 32 bonds; NOT parameterized>]
# view = nv.NGLWidget()
# slider = IntSlider(max=len(parms)-1)
# def show_one_ligand(change):
# val = change['new']
# view.show_only([val])
# slider.observe(show_one_ligand, 'value')
# VBox([view, slider])
VBox(children=(NGLWidget(), IntSlider(value=0, max=9)))
# for p in parms:
# view.add_structure(nv.ParmEdTrajectory(p))
# view.show_only([0])
result = utils.decompress_pickle(os.path.join(wd, '04_local_result.pbz2'))
valid_individuals_vina_score = [individual.vina_score for individual in result.pop if individual.vina_score != np.inf]
print(f"avg = {np.average(valid_individuals_vina_score)}")
print(f"min = {min(valid_individuals_vina_score)}")
print(f"max = {max(valid_individuals_vina_score)}")
avg = -3.5055 min = -4.942 max = -0.549
# Save the new config as a yaml file
new_config = config.copy()
new_config['01_grow']['costfunc_kwargs']['constraint_type'] = 'local_only'
with open(os.path.join(wd, 'new_config.yml'), 'w') as f:
yaml.dump(config, f)
os.listdir(wd)
['02_allow_grow_pop.sdf', '04_local_pop.sdf', 'new_config.yml', '01_grow_result.pbz2', 'x0161.pdbqt', '03_pure_mutate_pop.sdf', '04_local_result.pbz2', '01_grow_pop.sdf', '03_pure_mutate_result.pbz2', 'crem.db.gz', '03_pure_mutate_pop.pbz2', 'ref.sdf', 'config.yml', 'error.tar.gz', '02_allow_grow_result.pbz2', 'crem.db', '01_grow_pop.pbz2', '02_allow_grow_pop.pbz2', '04_local_pop.pbz2', 'x0161.pdb']
cwd = os.getcwd()
os.chdir(wd)
! moldrug new_config.yml
os.chdir(cwd)
os.listdir(wd)
os.chdir(cwd)
Started at Mon Sep 4 18:32:14 2023 You are using moldrug: 3.4.0. CommandLineHelper(yaml_file='new_config.yml', fitness=None, outdir=None, continuation=False) Creating the first population with 10 members: 100%|███████████████████████████████████████████| 10/10 [00:52<00:00, 5.20s/it] Initial Population: Best Individual: Individual(idx = 8, smiles = COC(=O)c1ccc(S(=O)(=O)NN=C(N)N)cc1, cost = 1.0) Accepted rate: 10 / 10 File 01_grow_pop.sdf was createad! Evaluating generation 1 / 2: 100%|█████████████████████████████████████████████| 5/5 [01:19<00:00, 16.00s/it] Generation 1: Best Individual: Individual(idx = 12, smiles = NC(N)=NNS(=O)(=O)c1ccc(C(=O)OCC(F)(F)F)cc1, cost = 0.8812342926598279). Accepted rate: 1 / 5 Evaluating generation 2 / 2: 100%|█████████████████████████████████████████████| 5/5 [01:39<00:00, 19.89s/it] File 01_grow_pop.sdf was createad! Generation 2: Best Individual: Individual(idx = 12, smiles = NC(N)=NNS(=O)(=O)c1ccc(C(=O)OCC(F)(F)F)cc1, cost = 0.8812342926598279). Accepted rate: 0 / 5 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ The simulation finished successfully after 2 generations with a population of 10 individuals. A total number of 20 Individuals were seen during the simulation. Initial Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0) Final Individual: Individual(idx = 12, smiles = NC(N)=NNS(=O)(=O)c1ccc(C(=O)OCC(F)(F)F)cc1, cost = 0.8812342926598279) The cost function dropped in 0.11876570734017211 units. =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Total time (2 generations): 248.75 (s). Finished at Mon Sep 4 18:36:23 2023. File 01_grow_pop.sdf was createad! The follow job 02_allow_grow started. File 02_allow_grow_pop.sdf was createad! Evaluating generation 3 / 4: 100%|█████████████████████████████████████████████| 5/5 [01:33<00:00, 18.65s/it] Generation 3: Best Individual: Individual(idx = 12, smiles = NC(N)=NNS(=O)(=O)c1ccc(C(=O)OCC(F)(F)F)cc1, cost = 0.8812342926598279). Accepted rate: 0 / 5 Evaluating generation 4 / 4: 100%|█████████████████████████████████████████████| 5/5 [01:12<00:00, 14.41s/it] File 02_allow_grow_pop.sdf was createad! Generation 4: Best Individual: Individual(idx = 12, smiles = NC(N)=NNS(=O)(=O)c1ccc(C(=O)OCC(F)(F)F)cc1, cost = 0.8812342926598279). Accepted rate: 0 / 5 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ The simulation finished successfully after 4 generations with a population of 10 individuals. A total number of 30 Individuals were seen during the simulation. Initial Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0) Final Individual: Individual(idx = 12, smiles = NC(N)=NNS(=O)(=O)c1ccc(C(=O)OCC(F)(F)F)cc1, cost = 0.8812342926598279) The cost function dropped in 0.11876570734017211 units. =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Total time (2 generations): 180.65 (s). Finished at Mon Sep 4 18:39:24 2023. File 02_allow_grow_pop.sdf was createad! The job 02_allow_grow finished! The follow job 03_pure_mutate started. File 03_pure_mutate_pop.sdf was createad! Evaluating generation 5 / 6: 20%|█████████ | 1/5 [00:12<00:51, 12.88s/it] /Users/klimt/GIT/moldrug/moldrug/utils.py:1349: UserWarning: Parallelization did not work. Trying with serial... warn("Parallelization did not work. Trying with serial...") 100%|█████████████████████████████████████████████| 5/5 [02:53<00:00, 34.76s/it] Generation 5: Best Individual: Individual(idx = 12, smiles = NC(N)=NNS(=O)(=O)c1ccc(C(=O)OCC(F)(F)F)cc1, cost = 0.8812342926598279). Accepted rate: 1 / 5 Evaluating generation 6 / 6: 100%|█████████████████████████████████████████████| 5/5 [01:04<00:00, 12.90s/it] File 03_pure_mutate_pop.sdf was createad! Generation 6: Best Individual: Individual(idx = 12, smiles = NC(N)=NNS(=O)(=O)c1ccc(C(=O)OCC(F)(F)F)cc1, cost = 0.8812342926598279). Accepted rate: 0 / 5 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ The simulation finished successfully after 6 generations with a population of 10 individuals. A total number of 40 Individuals were seen during the simulation. Initial Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0) Final Individual: Individual(idx = 12, smiles = NC(N)=NNS(=O)(=O)c1ccc(C(=O)OCC(F)(F)F)cc1, cost = 0.8812342926598279) The cost function dropped in 0.11876570734017211 units. =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Total time (2 generations): 267.81 (s). Finished at Mon Sep 4 18:43:52 2023. File 03_pure_mutate_pop.sdf was createad! The job 03_pure_mutate finished! The follow job 04_local started. File 04_local_pop.sdf was createad! Evaluating generation 7 / 8: 100%|█████████████████████████████████████████████| 5/5 [01:22<00:00, 16.51s/it] Generation 7: Best Individual: Individual(idx = 12, smiles = NC(N)=NNS(=O)(=O)c1ccc(C(=O)OCC(F)(F)F)cc1, cost = 0.8812342926598279). Accepted rate: 0 / 5 Evaluating generation 8 / 8: 100%|█████████████████████████████████████████████| 3/3 [00:17<00:00, 5.76s/it] File 04_local_pop.sdf was createad! Generation 8: Best Individual: Individual(idx = 12, smiles = NC(N)=NNS(=O)(=O)c1ccc(C(=O)OCC(F)(F)F)cc1, cost = 0.8812342926598279). Accepted rate: 0 / 3 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ The simulation finished successfully after 8 generations with a population of 10 individuals. A total number of 48 Individuals were seen during the simulation. Initial Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 1.0) Final Individual: Individual(idx = 12, smiles = NC(N)=NNS(=O)(=O)c1ccc(C(=O)OCC(F)(F)F)cc1, cost = 0.8812342926598279) The cost function dropped in 0.11876570734017211 units. =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Total time (2 generations): 113.96 (s). Finished at Mon Sep 4 18:45:46 2023. File 04_local_pop.sdf was createad! The job 04_local finished!
# parms = pmd.rdkit.from_sdf(os.path.join(wd, '04_local_pop.sdf')) # require parmed, rdkit
# parms
# view = nv.NGLWidget()
# slider = IntSlider(max=len(parms)-1)
# def show_one_ligand(change):
# val = change['new']
# view.show_only([val])
# slider.observe(show_one_ligand, 'value')
# VBox([view, slider])
# for p in parms:
# view.add_structure(nv.ParmEdTrajectory(p))
# view.show_only([0])
result = utils.decompress_pickle(os.path.join(wd, '04_local_result.pbz2'))
valid_individuals_vina_score = [individual.vina_score for individual in result.pop if individual.vina_score != np.inf]
print(f"avg = {np.average(valid_individuals_vina_score)}")
print(f"min = {min(valid_individuals_vina_score)}")
print(f"max = {max(valid_individuals_vina_score)}")
avg = -5.402699999999999 min = -6.342 max = -4.724
As you can see now the fix core changes a little. On both examples (when you run the tutorial by yourself may be different) MolDrug can not optimize the cost function. Even so, the local_only strategy performs better respect to maximum and average cost. One of the main cause of this behavior is the desirability definition which is for vina_score:
'vina_score': {
'w': 1,
'SmallerTheBest': {
'Target': -12,
'UpperLimit': -6,
'r': 1
}
}
This means that if the vina score is not lower than -6 the cost function will be always 1. In this scenario all were are not optimizing over the generations the "best" individuals. In other words, it is important to see what is the behavior of our system (one small simulation) and then tune your parameters accordantly. On possibility for this system is change UpperLimit to, for example -4. There are a lot of other different options that you could play around (e.g. increase the generations, etc...). It is important to remark that this example is just for the tutorial, in a real project you may need to increase generations, tune the crem keywords, etc. I let it to you as a challenge. Happy simulations!
Just as a bonus I let you here how to change the desirability definition.
# Save the new config as a yaml file
tune_config = new_config.copy()
tune_config['01_grow']['costfunc_kwargs']['desirability'] = {
'qed': {
'w': 1,
'LargerTheBest': {
'LowerLimit': 0.1,
'Target': 0.75,
'r': 1
}
},
'sa_score': {
'w': 1,
'SmallerTheBest': {
'Target': 3,
'UpperLimit': 7,
'r': 1
}
},
'vina_score': {
'w': 1,
'SmallerTheBest': {
'Target': -8,
'UpperLimit': -3,
'r': 1
}
}
}
with open(os.path.join(wd, 'tune_config.yml'), 'w') as f:
yaml.dump(config, f)
os.listdir(wd)
['02_allow_grow_pop.sdf', '04_local_pop.sdf', 'new_config.yml', '01_grow_result.pbz2', 'x0161.pdbqt', '03_pure_mutate_pop.sdf', '04_local_result.pbz2', '01_grow_pop.sdf', '03_pure_mutate_result.pbz2', 'crem.db.gz', '03_pure_mutate_pop.pbz2', 'tune_config.yml', 'ref.sdf', 'config.yml', 'error.tar.gz', '02_allow_grow_result.pbz2', 'crem.db', '01_grow_pop.pbz2', '02_allow_grow_pop.pbz2', '04_local_pop.pbz2', 'x0161.pdb']
cwd = os.getcwd()
os.chdir(wd)
! moldrug tune_config.yml
os.chdir(cwd)
os.listdir(wd)
os.chdir(cwd)
Started at Mon Sep 4 18:45:47 2023 You are using moldrug: 3.4.0. CommandLineHelper(yaml_file='tune_config.yml', fitness=None, outdir=None, continuation=False) Creating the first population with 10 members: 100%|███████████████████████████████████████████| 10/10 [01:12<00:00, 7.27s/it] Initial Population: Best Individual: Individual(idx = 1, smiles = N#CCOC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 0.5520254583868194) Accepted rate: 10 / 10 File 01_grow_pop.sdf was createad! Evaluating generation 1 / 2: 100%|█████████████████████████████████████████████| 5/5 [01:32<00:00, 18.58s/it] Generation 1: Best Individual: Individual(idx = 1, smiles = N#CCOC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 0.5520254583868194). Accepted rate: 4 / 5 Evaluating generation 2 / 2: 100%|█████████████████████████████████████████████| 5/5 [01:23<00:00, 16.72s/it] File 01_grow_pop.sdf was createad! Generation 2: Best Individual: Individual(idx = 1, smiles = N#CCOC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 0.5520254583868194). Accepted rate: 2 / 5 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ The simulation finished successfully after 2 generations with a population of 10 individuals. A total number of 20 Individuals were seen during the simulation. Initial Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 0.6433856814869847) Final Individual: Individual(idx = 1, smiles = N#CCOC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 0.5520254583868194) The cost function dropped in 0.09136022310016534 units. =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Note: Check the running warnings and erorrs in error.tar.gz file! =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Total time (2 generations): 266.59 (s). Finished at Mon Sep 4 18:50:14 2023. File 01_grow_pop.sdf was createad! The follow job 02_allow_grow started. File 02_allow_grow_pop.sdf was createad! Evaluating generation 3 / 4: 100%|█████████████████████████████████████████████| 5/5 [01:35<00:00, 19.14s/it] Generation 3: Best Individual: Individual(idx = 1, smiles = N#CCOC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 0.5520254583868194). Accepted rate: 2 / 5 Evaluating generation 4 / 4: 100%|█████████████████████████████████████████████| 5/5 [01:00<00:00, 12.00s/it] File 02_allow_grow_pop.sdf was createad! Generation 4: Best Individual: Individual(idx = 1, smiles = N#CCOC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 0.5520254583868194). Accepted rate: 2 / 5 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ The simulation finished successfully after 4 generations with a population of 10 individuals. A total number of 30 Individuals were seen during the simulation. Initial Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 0.6433856814869847) Final Individual: Individual(idx = 1, smiles = N#CCOC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 0.5520254583868194) The cost function dropped in 0.09136022310016534 units. =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Total time (2 generations): 171.95 (s). Finished at Mon Sep 4 18:53:06 2023. File 02_allow_grow_pop.sdf was createad! The job 02_allow_grow finished! The follow job 03_pure_mutate started. File 03_pure_mutate_pop.sdf was createad! Evaluating generation 5 / 6: 100%|█████████████████████████████████████████████| 5/5 [00:59<00:00, 11.89s/it] Generation 5: Best Individual: Individual(idx = 31, smiles = CC(=O)NS(=O)(=O)c1ccc(C(=O)OCC#N)cc1, cost = 0.5443216491859986). Accepted rate: 2 / 5 Evaluating generation 6 / 6: 100%|█████████████████████████████████████████████| 4/4 [01:13<00:00, 18.31s/it] File 03_pure_mutate_pop.sdf was createad! Generation 6: Best Individual: Individual(idx = 31, smiles = CC(=O)NS(=O)(=O)c1ccc(C(=O)OCC#N)cc1, cost = 0.5443216491859986). Accepted rate: 1 / 4 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ The simulation finished successfully after 6 generations with a population of 10 individuals. A total number of 39 Individuals were seen during the simulation. Initial Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 0.6433856814869847) Final Individual: Individual(idx = 31, smiles = CC(=O)NS(=O)(=O)c1ccc(C(=O)OCC#N)cc1, cost = 0.5443216491859986) The cost function dropped in 0.09906403230098615 units. =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Note: Check the running warnings and erorrs in error.tar.gz file! =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Total time (2 generations): 148.44 (s). Finished at Mon Sep 4 18:55:34 2023. File 03_pure_mutate_pop.sdf was createad! The job 03_pure_mutate finished! The follow job 04_local started. File 04_local_pop.sdf was createad! Evaluating generation 7 / 8: 100%|█████████████████████████████████████████████| 5/5 [00:52<00:00, 10.51s/it] Generation 7: Best Individual: Individual(idx = 31, smiles = CC(=O)NS(=O)(=O)c1ccc(C(=O)OCC#N)cc1, cost = 0.5443216491859986). Accepted rate: 4 / 5 Evaluating generation 8 / 8: 100%|█████████████████████████████████████████████| 5/5 [00:39<00:00, 7.93s/it] File 04_local_pop.sdf was createad! Generation 8: Best Individual: Individual(idx = 45, smiles = N#CCOC(=O)c1ccc(S(=O)(=O)NC(=O)CF)cc1, cost = 0.5266695572213174). Accepted rate: 3 / 5 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ The simulation finished successfully after 8 generations with a population of 10 individuals. A total number of 49 Individuals were seen during the simulation. Initial Individual: Individual(idx = 0, smiles = COC(=O)c1ccc(S(N)(=O)=O)cc1, cost = 0.6433856814869847) Final Individual: Individual(idx = 45, smiles = N#CCOC(=O)c1ccc(S(=O)(=O)NC(=O)CF)cc1, cost = 0.5266695572213174) The cost function dropped in 0.11671612426566735 units. =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Total time (2 generations): 108.05 (s). Finished at Mon Sep 4 18:57:22 2023. File 04_local_pop.sdf was createad! The job 04_local finished!
result = utils.decompress_pickle(os.path.join(wd, '04_local_result.pbz2'))
valid_individuals_vina_score = [individual.vina_score for individual in result.pop if individual.vina_score != np.inf]
print(f"avg = {np.average(valid_individuals_vina_score)}")
print(f"min = {min(valid_individuals_vina_score)}")
print(f"max = {max(valid_individuals_vina_score)}")
avg = -5.1836 min = -5.727 max = -4.8
As you see the maximum is much lower than the rest of the examples. So, we get some improvements changing the desirability.