Dear Jean-Marc,

as lactic2.sdf is a 3D structure which does not carry any stereochemistry information in the SDF file, you will need to perceive stereochemistry from the 3D structure with

Chem.AssignAtomChiralTagsFromStructure(mol)

before calling Chem.AssignStereochemistry().
It looks like allHsExplicit=True prevents SMILES chirality specifications from being output:

In [1]: from rdkit import Chem

In [2]: molfilename = "lactic2.sdf"

In [3]: mol = Chem.SDMolSupplier(molfilename, removeHs = False)[0]

In [4]: Chem.AssignAtomChiralTagsFromStructure(mol)

In [5]: Chem.AssignStereochemistry(mol, cleanIt=False, force=False, flagPossibleStereoCenters=True)

In [6]: chiralAtoms = [a for a in mol.GetAtoms() if a.HasProp("_ChiralityPossible")]

In [7]: chiralAtomNums = [a.GetIdx()+1 for a in chiralAtoms]

In [8]: chiralAtomNums
Out[8]: [4]

In [9]: configs = [a.GetProp("_CIPCode") for a in chiralAtoms]

In [10]: configs
Out[10]: ['S']

In [11]: smi = Chem.MolToSmiles(mol, isomericSmiles=True)

In [12]: smi
Out[12]: '[H]OC(=O)[C@@]([H])(O[H])C([H])([H])[H]'

In [13]: smi = Chem.MolToSmiles(mol, isomericSmiles=True, allHsExplicit=True)

In [14]: smi
Out[14]: '[H][O][C](=[O])[C]([H])([O][H])[C]([H])([H])[H]'


Cheers,
p.

On 12/18/2016 11:29 PM, Jean-Marc Nuzillard wrote:
Hi again,

When I run:

#------------
from rdkit import Chem

molfilename = "lactic2.sdf"
mol = Chem.SDMolSupplier(molfilename, removeHs = False)[0]

Chem.AssignStereochemistry(mol, cleanIt=False, force=False, flagPossibleStereoCenters=True) chiralAtoms = [a for a in mol.GetAtoms() if a.HasProp("_ChiralityPossible")]
chiralAtomNums = [a.GetIdx()+1 for a in chiralAtoms]
print "chiral centers: ",
print chiralAtomNums
configs = [a.GetProp("_CIPCode") for a in chiralAtoms]
print configs

smi = Chem.MolToSmiles(mol, isomericSmiles=True, allHsExplicit=True)
print smi
#------------

Two (related?) problems arise.
First, _CIPCode rises a KeyError, even for atoms for which _ChiralityPossible is defined. When I comment the lines that define and print the configs variable, the second problem arises. The string smi does not contain any '@' or '@@', something I expected from a chiral molecule
for an isomeric smiles string.

The attached lactic2.sdf file comes from PubChem. I removed (set to 0) the parity flag for atom 4 (index 3) because there are no parity flags in the files I will have to deal with later.
Keeping the parity flag does not change anything.

What did I miss?

All the best,

Jean-Marc



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


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

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to