[adding the mailing list back in]

On Thu, Sep 8, 2016 at 10:26 PM, Rafal Roszak <rmrmg.c...@gmail.com> wrote:

> On Thu, 8 Sep 2016 17:32:40 +0200
> Greg Landrum <greg.land...@gmail.com> wrote:
>
> > What are you trying to accomplish? There may be a better approach.
>
> I have big molecules which have number of conformations. I want to
> generate set of 'reasonable' structures for further analysis. My idea
> is to remove not promissing structures as early as possible.


How about just generating the UFF energy and removing the conformation if
that's too high? You'll need to do some experiments to determine what "too
high" actually is.

One way to get better structures to start with (though it's a bit slower)
is to use the arguments:
useExpTorsionAnglePrefs=True,useBasicKnowledge=True when you embed the
molecule:

cid=AllChem.EmbedMolecule(mh,
                              useExpTorsionAnglePrefs=True,
                     useBasicKnowledge=True)

I can see
> that some initial structures are better than other. I have found
> Chem.rdForceFieldHelpers.GetUFFAngleBendParams and similar functions
> which (at least partially) solved my problem.
> Now the bottle neck is EmbedMultipleConfs. It is extremely slow  for
> chiral compounds (with @'s in smiles, exempli gratia: CC1=C2[C@@]([C@]
> ([C@H]([C@@H]3[C@]4([C@H](OC4)C[C@@H]([C@]3(C(=O)[C@@H]2OC(=O)C)C)O)OC
> (=O)C)OC(=O)c5ccccc5)(C[C@@H]1OC(=O)[C@H](O)[C@@H](NC
> (=O)c6ccccc6)c7ccccc7)O)(C)C, the same compounds without stereo works
> pretty well) is there any way to speed up this?
>

If you want the chirality to be correct (and I assume that you do), then
there's not currently anything that you can really do that will make a huge
difference. Sometimes switching to a different embedding strategy - using
random coordinates instead of the standard embedding - can help, but not
always.
In your case it doesn't seem to help:

In [15]: %timeit
AllChem.EmbedMolecule(m,randomSeed=0xf00d,useExpTorsionAnglePrefs=True,useBasicKno
    ...: wledge=True, useRandomCoords=True)
1 loop, best of 3: 3.43 s per loop

In [16]: %timeit
AllChem.EmbedMolecule(m,randomSeed=0xf00d,useExpTorsionAnglePrefs=True,useBasicKno
    ...: wledge=True)
1 loop, best of 3: 2.3 s per loop


The reason this is time consuming is that the code is repeatedly generating
conformations, trying to make them fit the chirality, and then throwing
them out if they don't match. If you have a large number of chiral centers,
particularly constrained chiral centers in rings, it can take quite a while
to get to something that matches.

One can imagine changes or tweaks to the embedding algorithm to try and
speed this up, but that kind of thing can be a lot of work. This type of
project normally requires either funding or a motivated student/post-doc.

-greg
------------------------------------------------------------------------------
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to