On 19/12/2019 07:38, topgunhaides . wrote:
Hi guys,
Can anyone give me some advices to improve the efficiency of the
embedding code? See example below:
import time
from rdkit import Chem
from rdkit.Chem import AllChem
suppl = Chem.SDMolSupplier('cid831548.sdf') # medium size molecule
(10 heavy atoms)
You should parallelize the processing of molecules, since each can be
worked at independently.
for mol in suppl:
mh = Chem.AddHs(mol, addCoords=True)
# embedding
start = time.time()
AllChem.EmbedMultipleConfs(mh, numConfs=5000, maxAttempts=100,
pruneRmsThresh=0.5,
randomSeed=1, numThreads=0,
enforceChirality=True,
useExpTorsionAnglePrefs=True,
useBasicKnowledge=True)
cids = [conf.GetId() for conf in mh.GetConformers()]
end = time.time()
print("time eclipsed: ", end - start)
The results:
numConfs=1000, time eclipsed: 10 seconds
numConfs=5000, time eclipsed: 66 seconds
numConfs=10000, time eclipsed: 176 seconds
I need to request a lot more than 10000 conformers per molecule and
have a lot of molecules to process.
I also wish to compute conformer energies and hopefully can do
optimization (both are time consuming). So need to make my code as
efficient as possible. Thank you!
Best,
Leon
_______________________________________________
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