Hi Rafal,
There is no C++-level function to do that, but you can use Python
multiprocessing to achieve the same result with only a small efficiency
loss, due to the larger overhead of starting multiple processes as
compared to multiple threads:
from multiprocessing import Pool
from rdkit import Chem
from rdkit.Chem import rdDistGeom, ChemicalForceFields
mol = Chem.AddHs(Chem.MolFromSmiles(
"CCOCCn1c(C2CC[NH+](CCc3ccc(C(C)(C)C(=O)[O-])cc3)CC2)nc2ccccc21"))
def min_proc(mol_confid_tuple):
mol, confid = mol_confid_tuple
ffps = ChemicalForceFields.MMFFGetMoleculeProperties(mol)
ff = ChemicalForceFields.MMFFGetMoleculeForceField(
mol, ffps, confId=confid, ignoreInterfragInteractions=False)
ff.MMFFAddDistanceConstraint(1, 2, False, 1.2, 1.55, 1e05)
res=ff.Minimize(maxIts=200)
return (mol, confid)
confids = list(rdDistGeom.EmbedMultipleConfs(
mol, numConfs=100, numThreads=10))
p = Pool(10)
mol_confid_tuples = p.map(min_proc,
[(mol, confid) for confid in confids])
mol.RemoveAllConformers()
[mol.AddConformer(m.GetConformer(confid))
for m, confid in mol_confid_tuples];
Cheers,
p.
On 03/28/19 19:44, Rafal Roszak wrote:
Hello all,
Is it possible to optimize multiple conformation with constraint using more
that one thread (core)?
I have following code:
Chem.rdDistGeom.EmbedMultipleConfs(mol, numConfs=100, numThreads=10)
ffps = ChemicalForceFields.MMFFGetMoleculeProperties(mol)
ff = ChemicalForceFields.MMFFGetMoleculeForceField(mol, ffps, confId=confid,
ignoreInterfragInteractions=False)
ff.MMFFAddDistanceConstraint(1, 2, False, 1.2, 1.55, 1e05)
res=ff.Minimize(maxIts=500)
which generate initial structures in parallel fashion but then optimize one by
one. I found in AllChem interesting function
AllChem.MMFFOptimizeMoleculeConfs
which can optimize all conformers using many threads but how to combine this
with constraints?
Best regards,
RafaĆ
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss