[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