Hi Greg,
thanks. Is the random conformation really randomly selected, or is it always
the same? I mean, if I generate a conformation from smiles without chiral
specifiaction, will I end up always with the same conformation?
So, I am using the Chem.Lipinski and Chem.Descriptors modules to calculate
properties of molecule objects that where generated by smiles strings. Are all
descriptors independent of the particular conformations? Or are you aware of
descriptors which definitely depend on a conformation?
I would like to generate descriptors that are reproducible for a given
compound, ideally independent of the conformation. One of the problem is that
sometimes smiles strings contain chiral specification, sometimes different
protonation states etc. I need to standardize it somehow.
kind regards
Soren
________________________________
From: Greg Landrum [greg.land...@gmail.com]
Sent: Monday, March 30, 2015 10:00 PM
To: Soren Wacker
Cc: RDKit Discuss
Subject: Re: [Rdkit-discuss] Molecule objects conformation
Hi Soren,
On Mon, Mar 30, 2015 at 11:37 PM, Soren Wacker
<swac...@ucalgary.ca<mailto:swac...@ucalgary.ca>> wrote:
I am wondering how RDKit handles molecule conformations and stereo-isomers.
E.G. when I generate a chiral molecule from a smiles string, where chirality is
not explicated.
Does RDKit generate a random conformation, or no specific conformation in the
first place?
By default no conformation is generated, but if you ask the RDKit to generate a
3D conformation (or conformations), it will attempt to generate one that
matches whatever stereochemistry is specified.
So if you specify the chirality it attempts to preserve it:
In [17]: m = Chem.AddHs(Chem.MolFromSmiles('Cl[C@H](F)CC[C@H](C)Br'))
In [18]: AllChem.EmbedMultipleConfs(m,10)
Out[18]: <rdkit.rdBase._vecti at 0x7f6f9b3184d0>
In [19]: _=AllChem.UFFOptimizeMoleculeConfs(m,maxIters=1000)
In [20]: for conf in m.GetConformers():
tm = Chem.Mol(m,False,conf.GetId())
Chem.AssignAtomChiralTagsFromStructure(tm)
print Chem.FindMolChiralCenters(tm)
....:
[(1, 'S'), (5, 'S')]
[(1, 'S'), (5, 'S')]
[(1, 'S'), (5, 'S')]
[(1, 'S'), (5, 'S')]
[(1, 'S'), (5, 'S')]
[(1, 'S'), (5, 'S')]
[(1, 'S'), (5, 'S')]
[(1, 'S'), (5, 'S')]
[(1, 'S'), (5, 'S')]
[(1, 'S'), (5, 'S')]
But if you don't specify it, you get random stereoisomers:
In [21]: m = Chem.AddHs(Chem.MolFromSmiles('Cl[CH](F)CC[CH](C)Br'))
In [22]: AllChem.EmbedMultipleConfs(m,10)
Out[22]: <rdkit.rdBase._vecti at 0x7f6f9b318350>
In [23]: _=AllChem.UFFOptimizeMoleculeConfs(m,maxIters=1000)
In [24]: for conf in m.GetConformers():
tm = Chem.Mol(m,False,conf.GetId())
Chem.AssignAtomChiralTagsFromStructure(tm)
print Chem.FindMolChiralCenters(tm)
....:
[(1, 'S'), (5, 'S')]
[(1, 'S'), (5, 'R')]
[(1, 'S'), (5, 'S')]
[(1, 'S'), (5, 'R')]
[(1, 'R'), (5, 'S')]
[(1, 'R'), (5, 'S')]
[(1, 'R'), (5, 'S')]
[(1, 'S'), (5, 'S')]
[(1, 'R'), (5, 'R')]
[(1, 'R'), (5, 'S')]
Does that answer your question?
-greg
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss