CIPStereoChemistry

Definitions

Tetrahedral stereo descriptor

Parity is a simplified and local description of a chiral center. It is used for string the three dimensional arrangement of the ligands around a chiral center in a local canonical way without using the Cahn-Ingold-Prelog priority rules. The ligands of the chiral center are numbered according to the atom indexes in the molecule. If the atom has implicit Hydrogen, then this implicit Hydrogen atom is considered to be the highest numbered atom. The tetrahedral center atom is viewed such a way that the highest-numbered atom is behind the plane formed by the other three atoms. The three atoms can be arranged in either a clockwise or counterclockwise direction in ascending numerical order.

TetrahedralStereoValue.ODD

Parity value TetrahedralStereoValue.ODD is assigned for a clockwise arrangement at the stereo center and TetrahedralStereoValue.EVEN for counterclockwise. If the center has wiggly (wavy) bond then TetrahedralStereoValue.WIGGLY value is assigned, otherwise if the given information is not enough to decide the spatial arrangement (e.g. no wedges in two dimensions) TetrahedralStereoValue.UNKNOWN value is assigned.

TetrahedralStereoValue.WIGGLY TetrahedralStereoValue.UNKNOWN

Atrop stereo descriptor

Hindered rotation around single bonds where the steric strain barrier to rotation is high enough to allow the isolation of the conformers resulting in atrop stereoisomerism.
Atrop stereo descriptor represents the topology of the case when two aromatic rings connected by a single bond with at least three ortho ligands.

We look at the molecule in the direction of the single bond between the two aromatic rings (axis). On the example shown below the red arrow indicates the direction of the view.



The axis is looked at from the direction where the highest indexed ligand connected to the axis (atom index 12) is behind the axis. The angle between two bonds connecting the highest indexed ligands on both sides to the axis is considered. On the example these are the bond between atoms 5 (marked blue) and 6 (in front of the axis) and the bond between atoms 12 (marked green) and 7.

Axial stereo descriptor

If two stereoactive atoms (atoms with at least three different ligands) are connected by an even numbered chain of rigid parts then axial stereo information can be defined on the ligands of the stereactive atoms. These ligands are the ones which are not in the chain of the rigid part.

Here we consider the chain of rigid parts as an axis. Number the ligands at the end of the chain according to their atom indices. Implicit Hydrogen has the lowest number, -1.

The angle between two bonds connecting the highest indexed ligands on both sides of the axis is considered. On the example these are the bond between atoms 5 (marked blue) and 1 (one end of the axis) and the bond between atoms 7 (marked green) and 3 (other end of the axis).

CIS/TRANS stereo descriptor

In general, single bonds are rotatable, but double bonds are not. If the substituents on each side of the double bond are different then two diastereomers of the molecule can be distinguished based on the orientation of the ligands. Two substituents located on the same side of the reference plane defined by the double bond are referred to as cis isomer, otherwise, if the two substituents are located on the opposite side of the reference plane then it is referred to as trans isomer.

CisTransStereoValue.TRANS CisTransStereoValue.CIS

Alicyclic compounds can also display cis-trans isomerism. In this case the so called rigid part becomes non-rotatable due to the constrain of a cycle.

trans-1,2-dichlorocyclohexane cis-1,2-dichlorocyclohexane
Examples of unknown CIS/TRANS situations:

Rigid Parts

Stereo active atoms are considered at the ends of rigid parts or chains of rigid parts. The following substructures are considered as rigid parts:

The rigid part is represented by the atoms and bonds of the outer hull. The outer hull is detected as the symmetrical difference of all ring bonds contained in the system. The hull of a rigid part is marked green on the following example. There is always an opposite atom for each contained atom in a rigid part, e.g. atom 13 is the opposite of atom 17 on the example.

The same ring can be contained in more than one rigid system (e.g. all six-six membered ring pairs are detected as two separate six membered rings as well). On the example below the red ring and the blue ring are detected as rigid parts (their common bond is purple) as well as the union of the two fused rings (marked with thicker bonds).

Not supported rigid parts

The more complex cases listed below are also rigid ring systems which are not supported yet, these will be handled in future releases:

Chain of Rigid Parts

Stereo active atoms can be connected to each other by a chain of rigid parts where the rigid parts are connected to another by exactly one atom (which is a spiro join for rings) and these connections are on opposite atoms of the rigid parts. On the example below each rigid part defining the chain of rigid parts between atoms 12 and 33 is marked with different color.

The type of the stereo active descriptor depends on the number of rigid parts in the chain of rigid parts: it is axial if the number is even, cis/trans if the number is odd. On the above example the number of rigid parts between atoms 12 and 33 is seven thus their ligands with indexes 35 and 36 are in trans position.

Stereo Active Part (SAP)

Stereo active part of a molecule is an atom with 0 to 4 ligands that can have tetrahedral stereo information, or with another stereo active part CIS/TRANS, ATROP or AXIAL stereo information.

Stereo centers with more than 4 connections are not supported yet.

Programmatically, SAP consists of an integer that is the index of the stereo center atom and an array of integers listing the indexes of the ligands of the stereo center atom.

CIPStereoDescriptor types

TetrahedralStereoDescriptor

The stereo active center and its ligands are defined in one SAP. The TetrahedralStereoValue defines the spatial arrangement of the ligands around the stereocenter (UNKNOWN, ODD, EVEN, WIGGLY).

AtropStereoDescriptor

The stereo active single bond (with hindered rotation) which connects two aromatic rings is represented with two SAPs. Each StereoActivePart contains a stereo active atom which is the endpoint of the single bond and the ligands which are connected by aromatic bond to this active atom. (Such a way the stereo active single bond ligand is not part of the ligands array.) The AtropStereoValue defines the spatial arrangement of the ligands around the stereo active single bond (UNKNOWN, ODD, EVEN, WIGGLY)

AxialStereoDescriptor

The two stereo active atoms (atoms with at least three different ligands) which are connected by even number of rigid parts are represented with two SAPs. Each StereoActivePart contains the stereo active atom and the ligands of the stereactive atoms. These ligands are the ones which are not in the chain of the rigid part.. The AxialStereoValue defines the spatial arrangement of the ligands around the two stereo active atoms (UNKNOWN, ODD, EVEN, WIGGLY)

CisTransStereoDescriptor

The two stereo active atoms (atoms with at least three different ligands) which are connected by odd number of rigid parts are represented with two SAPs. Each StereoActivePart contains the stereo active atom and the ligands of the stereactive atoms. These ligands are the ones which are not in the chain of the rigid part.. The CisTransStereoValue defines the spatial arrangement of the maximal indexed ligands around the two stereo active atoms (UNKNOWN, CIS, TRANS, WIGGLY)

API usage example

The following example demonstrates how to use the CIPStereoRecognizer and the equals/equalsTo methods. Under the code, you can find the two molecules (m1 and m2).


//read or build the molecules
Molecule m1, m2;
/* ... */
	
int[] map = { 2, 1, 3, 0 };
Collection<CIPStereoDescriptor> descriptors_m1 = CIPStereoRecognizer.calculateCIPStereoDescriptors(m1);
Collection<CIPStereoDescriptor> descriptors_m2 = CIPStereoRecognizer.calculateCIPStereoDescriptors(m2);
	
CIPStereoDescriptorIface desc1 = (CIPStereoDescriptorIface) descriptorArray_m1.toArray()[0];
CIPStereoDescriptorIface desc2 = (CIPStereoDescriptorIface) descriptorArray_m2.toArray()[0];

System.out.println(desc1.equals(desc2)); 		//false
System.out.println(desc1.equalsTo(desc2, map)); 	//true
 

 

 

Introduction to Stereochemistry
Previous chapter

Table of contents
 

Stereoisomers around double bond
Next chapter