Hi Michal,

Many thanks for the help! I am looking for an ensemble of conformers.
My priority is to use RDKit to generate a large ensemble of conformers for
each molecule.
For large and flexiable molecules, will need a lot more than 10K (like
100K) to try to cover the entire conformational space.

I do not have to use MMFF to optimize all conformers, but I do want to use
MMFF or UFF to get at least the energies of all conformers (which is also
quite time-consuming, even without optimization).
With the conformer energies, I can call some energy_filtering function to
filter out conformers with high energies, etc.
I am thinking that storing and processing a huge number of conformers could
be the reason to slow things down, but not quite sure.
Any suggestions are very welcome!

Best,
Leon

On Wed, Dec 18, 2019 at 7:08 PM Michal Krompiec <michal.kromp...@gmail.com>
wrote:

> Are you looking for the global minimum or an ensemble of conformers?
> Either way, this is already very fast. Bear in mind, however, that MMFF’s
> accuracy isn’t great for this type of tasks (see for example
> https://arxiv.org/pdf/1705.04308.pdf ). In other words, I don’t see a use
> case for generation of 10k or more conformers with MMFF. And super-fast
> generation of large conformational ensembles for arbitrary molecules just
> isn’t realistic.
> Best,
> Michal
>
> On Wed, 18 Dec 2019 at 22:40, topgunhaides . <sunzhi....@gmail.com> 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)
>>
>> 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