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



Reply via email to