Here is an attempt to try to use OpenBabel's addH functionality and
checking stereochemistry with RDKit:
babel 4aminoacids.separated.sdf 4aminoacids.H.sdf -h
>>> supp = Chem.SDMolSupplier('4aminoacids.separated.sdf')
>>> suppH = Chem.SDMolSupplier('4aminoacids.H.sdf')
>>> for m in supp:
... Chem.FindMolChiralCenters(m)
...
[(2, 'S')]
[(1, 'S')]
[(3, 'S')]
[(1, 'S')]
>>> for m in suppH:
... Chem.FindMolChiralCenters(m)
...
[(2, 'R')]
[(1, 'S')]
[(3, 'S')]
[(1, 'S')]
>>>
-Marshall
On Apr 14, 2009, at 2:35 PM, Marshall Levesque wrote:
Greg-
Here is the file and the output of a short test with the molecules,
which match visual inspection of produced 3D structures via AddHs()
and EmbedMolecule:
>>> supp = Chem.SDMolSupplier('4aminoacids.separated.sdf')
>>> for m in supp:
... Chem.FindMolChiralCenters(m)
...
[(2, 'S')]
[(1, 'S')]
[(3, 'S')]
[(1, 'S')]
>>> for m in supp:
... mH = Chem.AddHs(m)
... Chem.FindMolChiralCenters(mH)
...
[(2, 'R')]
[(1, 'R')]
[(3, 'S')]
[(1, 'R')]
-Marshall
<4aminoacids.separated.sdf>
On Apr 14, 2009, at 1:10 PM, Greg Landrum wrote:
On Tue, Apr 14, 2009 at 10:04 PM, Marshall Levesque
<marsh...@emolecules.com> wrote:
Greg-
As always... thank you for the detailed response.
I have been trying to look in detail at some amino acid structures
going
from 2D->3D. Here are my results using RDKit's methods of
investigating
chirality of alanine:
suppl = Chem.SDMolSupplier('4aminoacids.separated.sdf')
m = suppl[0]
Chem.FindMolChiralCenters(m)
[(2, 'S')]
mH = Chem.AddHs(m)
Chem.FindMolChiralCenters(mH)
[(2, 'R')]
print Chem.MolToMolBlock(m)
RDKit 3D
6 5 0 0 0 0 0 0 0 0999 V2000
-0.7083 0.0583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.4833 1.4125 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
0.8333 0.0583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.4833 -1.2708 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
1.6083 1.4125 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
1.6083 -1.2708 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
2 1 2 0
3 1 1 1
4 1 1 0
3 5 1 0
6 3 1 0
M END
print Chem.MolToMolBlock(mH)
RDKit 3D
13 12 0 0 0 0 0 0 0 0999 V2000
-0.7083 0.0583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.4833 1.4125 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
0.8333 0.0583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.4833 -1.2708 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
1.6083 1.4125 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
1.6083 -1.2708 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
2 1 2 0
3 1 1 6
4 1 1 0
3 5 1 0
6 3 1 0
3 7 1 0
4 8 1 0
5 9 1 0
5 10 1 0
6 11 1 0
6 12 1 0
6 13 1 0
M END
The embeded version of mH also had an 'R' configuration.
Which is actually "correct" since the stereochem that results from
addHs (your mH) is "R". The problem seems to be the result from
AddHs(), likely one connected with my existing bug report. If you
can,
please me your 4aminoacids.separated.sdf file and I will add it to
the
test cases for the bug.
I will take a look at your tests. The big difference I see here
is that you
are using smiles while I am using SDFs as my source.
Could there be an issue with handling SDF?
There could be, but I think it's more likely that the molecule shows
up in an order that triggers the above-mentioned bug.
-greg