Thank you all for your helpful answers. I will update Beaker code,
deploy it tomorrow and see if someone comes up with another example
but like Curt I think that the modification suggested by John should
work well. Thanks again!

Michał

On Tue, Sep 8, 2015 at 4:38 PM, Curt Fischer <crfisc...@lbl.gov> wrote:
>
> Hi John, Michal, and everyone,
>
> I've been following this discussion with interest and wrote a code snippet
> to test out John M.'s idea to access the '_CIPCode' property of atoms.  The
> results of doing are opposite to the result of the original getStereoInfo()
> function, and thus are in accord with Michal's reports of JChem output.  So
> for the simple test case of ephedrine all is well, but I'd be interested in
> hearing stories about what goes wrong in more complex cases.
>
>> from rdkit import Chem
>
>
>>
>>
>> # old function from Michal Nowotka
>> def getStereoInfo(smiles):
>>     ret = []
>>     mol = Chem.MolFromSmiles(smiles)
>>     Chem.AssignStereochemistry(mol, flagPossibleStereoCenters=True,
>> force=True)
>>     for atom in mol.GetAtoms():
>>         stereo = str(atom.GetChiralTag())
>>         atomIndex = atom.GetIdx()
>>         if str(atom.GetChiralTag()) != "CHI_UNSPECIFIED":
>>             if stereo == "CHI_TETRAHEDRAL_CW":
>>                 chirality = "R"
>>             elif stereo == "CHI_TETRAHEDRAL_CCW":
>>                 chirality = "S"
>>             else:
>>                 chirality = "R/S"
>>             ret.append({"atomIndex":atomIndex,"chirality":chirality})
>>     return ret
>
>
>>
>>
>> # new function as suggested by John M.
>> def get_stereo_info_new(smiles):
>>     # import the molecule into rdkit
>>     mol = Chem.MolFromSmiles(smiles)
>>
>>     # find chiral centers
>>     Chem.FindMolChiralCenters(mol)
>>
>>     # recover info on chiral centers
>>     chiral_centers = {}
>>     for atom in mol.GetAtoms():
>>         try:
>>             stereo = str(atom.GetProp('_CIPCode'))
>>             chiral_centers[atom.GetIdx()] = stereo
>>         except KeyError:
>>             pass
>>     return chiral_centers
>
>
>>
>>
>> # compare the functions on a chiral molecule
>> ephedrine = 'O[C@H](c1ccccc1)[C@@H](NC)C'
>> print getStereoInfo(ephedrine)
>> print get_stereo_info_new(ephedrine)
>
>
> [{'chirality': 'S', 'atomIndex': 1}, {'chirality': 'R', 'atomIndex': 8}]
> {8: 'S', 1: 'R'}
>
>
> On Tue, Sep 8, 2015 at 7:19 AM, John M <john.wilkinson...@gmail.com> wrote:
>>
>> Yes, but the ordering is relative to some ranking. I think you're
>> accessing "local parity" here, see slide 8
>> http://baoilleach.blogspot.co.uk/2015/08/the-whole-of-cheminformatics-best.html.
>>
>> Try accessing the "_CIPCode" prop on the atoms. Note there are still
>> problems.
>>
>> J
>>
>>
>> ------------------------------------------------------------------------------
>>
>> _______________________________________________
>> Rdkit-discuss mailing list
>> Rdkit-discuss@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>>
>
>
>
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> Rdkit-discuss mailing list
> Rdkit-discuss@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>

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

Reply via email to