Hi Greg,

 

Thank you for the answer. I used to use the stereochemistry assignment the way 
you describe, but someone complained that in one of the molecules they knew the 
stereochemistry was incorrect. It was suggested that we use the stereochemistry 
we have in db, so I changed that to setting atom tags (which randomly fixed 
those couple of issues, but apparently broke everything else down.

 

I was wondering how does rdkit work out R/S from inchi string?

 

Lukas

 

From: Greg Landrum <greg.land...@gmail.com>
Date: Wednesday, 30 October 2019 at 04:28
To: Lukas Pravda <lpra...@ebi.ac.uk>
Cc: RDKIT mailing list <rdkit-discuss@lists.sourceforge.net>
Subject: Re: [Rdkit-discuss] Stereochemistry in rdkit

 

Hi Lukas,

 

The stereochemistry tags that the RDKit uses in determining bond wedging (or 
for SMILES, generating 3D coordinates, etc.) are the ChiralTags on the atoms: 
CHI_TETRAHEDRAL_CW and CHI_TETRAHEDRAL_CCW. The current RDKit stereo 
representation is relative to the ordering of the bonds around an atom, not the 
ordering of neighboring atoms. So CHI_TETRAHEDRAL_CW means that when you look 
down the first bond towards the central atom you rotate clockwise to move from 
the second bond to the third.

 

The CIP (R/S) atomic properties are set by AssignStereochemistry() using the 
ChiralTags. Note that the R/S assignments are only approximate, the actual CIP 
rules are quite complex (great paper on this here: 
https://pubs.acs.org/doi/abs/10.1021/acs.jcim.8b00324) and we've not made a 
serious attempt to get this right.

 

It isn't currently possible to assign CIP R/S labels to atoms and use those to 
set the ChiralTags. It would be possible to put together a bit of Python that 
can do this, but it would only be as accurate as the RDKit's assignment of CIP 
priorities. I can put together a demo of how to do this, but I think/hope it's 
not actually what you need...

 

If you have 3D coordinates, the absolute best way to set the ChiralTags (and 
thus have the chiral representation correct) is to use 
AssignStereochemistryFrom3D(). This will set the ChiralTags on the atoms as 
well as assigning the CIP codes (to the extent that those are correct). Here's 
a gist showing how this works:

https://gist.github.com/greglandrum/aa802edd1bc49ac55550452beff52d55

 

I hope this helps,

-greg

 

 

 

On Tue, Oct 29, 2019 at 12:13 PM Lukas Pravda <lpra...@ebi.ac.uk> wrote:

Hi guys,

 

I got completely puzzled by stereochemistry and the way to set it in rdkit. 
Among others we use rdkit to get 2D depictions. What I do in my code is that I 
construct molecule from scratch and  set chiral tags to CHI_TETRAHEDRAL_CW for 
R, CHI_TETRAHEDRAL_CCW for S (this is the metadata we have for each atom, where 
applicable), otherwise CHI_UNSPECIFIED. Then I run sanitization on the molecule 
and generate images. That seems to be working incorrectly even for simple 
cases:  e.g.: https://pdbe.org/chem/004

 

When constructing the molecule I set the stereocenter for the CA atom to 
CHI_TETRAHEDRAL_CCW (S), but when I then try to perceive the R/S by 
FindMolChiralCenters(force=false) it says ‘R’, so as the image. This is wrong. 
I can also directly set _CIPCODE for each atom where applicable to S/R directly 
(along with the chiral tags). Then the chiral atom is perceived as S by 
FindMolChiralCenters(force=false), but then again the image still says R.  

 

When I set neither the chiral tag nor the _CIPCODe and run  
AssignAtomChiralTagsFromStructure() and AssignStereochemistry()  on the mol the 
atom under question gets atom tag CHI_TETRAHEDRAL_CW (I assume incorrectly), 
the _CIPCODE is correct (S) and the image is correct (why????) as well 
(attached). So my question is, how do I set stereochemistry on individual 
atoms, so that it is perceived by rdkit and is not overwritten in any 
subsequent step.

 

I hope the above mentioned description makes at least some sense. If not, I’ll 
try to distill a code sample for constructing this molecule from raw data.

 

I also reproduced the same steps on the  http://pdbe.org/chem/THR, which also 
gives wrong results when I set chiral tags manually (bond wedging should not be 
on methyl group I assume. Interestingly here the setting chiral atoms from the 
structure by rdkit gives incorrect results as well (attached).

 

For rdkit set tags I get

 

CA - CHI_TETRAHEDRAL_CCW (S) – (correct)

CB - CHI_TETRAHEDRAL_CCW (R) – (incorrect should be TETRAHEDRAL_CW - R)

 

I’d be grateful for any piece of advice. Because I have no idea what I have 
been doing wrong the whole time.

 

My settings:

Rdkit: 2019.09.1/2019.03.2

Conda: 4.7.12

Python 3.7.4

os mac 10.15

 

Best,

Lukas

 

 

_______________________________________________
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