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

Reply via email to