Package org.openscience.cdk.stereo
Class Stereocenters
java.lang.Object
org.openscience.cdk.stereo.Stereocenters
Find atoms which can support stereo chemistry based on the connectivity.
Stereocenters are classified as True when they have constitutionally
different ligands and Para ("resemble") stereo centers with
constitutionally identical ligands. Some examples of para-centers
are listed below. Non and potential stereogenic atoms are also indicated. The
method partially implements the rules described by [Razinger, Marko et. al.. J. Chem. Inf. Comput. Sci. 1993. 33].
Para centers are identified in isolated rings (more common) but are not
currently found in fused systems (e.g. decalin), spiro linked 'assemblages'
or acyclic interdependent centers.
Accepted Stereo Atoms
This atoms accepted as being potentially stereogenic are those defined
in the InChI Technical Manual [Unknown BibTeXML type: InChITechManual]. These are:
Tetrahedral Stereochemistry:
- Carbon - 4 valent, 4 sigma bonds
- Silicon - 4 valent, 4 sigma bonds
- Germanium - 4 valent, 4 sigma bonds
- Tin - 4 valent, 4 sigma bonds
- Nitrogen cation - 4 valent,4 sigma bonds
- Phosphorus cation - 4 valent, 4 sigma bonds
- Arsenic cation - 4 valent, 4 sigma bonds
- Boron anion - 4 valent, 4 sigma bonds
- Nitrogen - 5 valent, 3 sigma and 1 pi bond
- Phosphorus - 5 valent, 3 sigma and 1 pi bond
- Sulphur - 4 valent, 2 sigma and 1 pi bond
- Sulphur - 6 valent, 2 sigma and 2 pi bonds
- Sulphur Cation - 3 valent, 3 sigma bonds
- Sulphur cation - 5 valent, 3 sigma and 1 pi bond
- Selenium - 4 valent, 2 sigma and 1 pi bond
- Selenium - 6 valent, 2 sigma and 2 pi bonds
- Selenium Cation - 3 valent, 3 sigma bonds
- Selenium cation - 5 valent, 3 sigma and 1 pi bond
- Nitrogen - 3 valent, 3 sigma bonds and in a 3 member ring
P(O)(=O)(OC)OCCC
. Phosphines and
arsines are always stereogenic regardless of H neighbors
Double Bond Stereochemistry:
The following atoms can appear at either end of a double bond.
- Carbon - 4 valent, 2 sigma and 1 pi bond
- Silicon - 4 valent, 2 sigma and 1 pi bond
- Germanium - 4 valent, 2 sigma and 1 pi bond
- Nitrogen - 3 valent, 1 sigma and 1 pi bond
- Nitrogen cation - 4 valent, 2 sigma and 1 pi bond
- inositol - has 9 stereo
isomers,
O[C@H]1[C@H](O)[C@@H](O)[C@H](O)[C@H](O)[C@@H]1O myo-inositol
- decalin - has 2 stereo isomers,
C1CC[C@H]2CCCC[C@H]2C1
(not currently identified) - spiro/double-bond
linked ring -
InChI=1/C14H24/c1-11-3-7-13(8-4-11)14-9-5-12(2)6-10-14/h11-12H,3-10H2,1-2H3/b14-13-/t11-,12-
(not currently identified) - An example of a para-center not in a
cycle
C[C@@H](O)[C@H](C)[C@H](C)O
(not currently identified)
C[C@@H](O)[C@H:1](C)[C@H](C)O
removes the central
configuration as the ligands are now equivalent
C[C@@H](O)[CH:1]](C)[C@@H](C)O
- Author:
- John May
- Source code:
- main
- Belongs to CDK module:
- standard
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
Defines the type of a stereocenter.static enum
-
Method Summary
Modifier and TypeMethodDescriptionelementType
(int v) Obtain the type of stereo element support for atom at indexv
.boolean
isStereocenter
(int v) Is the atom be a stereocenter (i.e.static Stereocenters
of
(IAtomContainer container) Determine the stereocenter atoms in the provided container based on connectivity.stereocenterType
(int v) Determine the type of stereocenter is the atom at indexv
.
-
Method Details
-
of
Determine the stereocenter atoms in the provided container based on connectivity.IAtomContainer container = ...; Stereocenters centers = Stereocenters.of(container); for (int i = 0; i < container.getAtomCount(); i++) { if (centers.isStereocenter(i)) { } }
- Parameters:
container
- input container- Returns:
- the stereocenters
-
elementType
Obtain the type of stereo element support for atom at indexv
. Supported elements types are:Stereocenters.Type.Bicoordinate
- an central atom involved in a cumulated system (not yet supported)Stereocenters.Type.Tricoordinate
- an atom at one end of a geometric (double-bond) stereo bond or cumulated system.Stereocenters.Type.Tetracoordinate
- a tetrahedral atom (could also be square planar in future)Stereocenters.Type.None
- the atom is not a (supported) stereo element type.
- Parameters:
v
- atom index (vertex)- Returns:
- the type of element
-
isStereocenter
public boolean isStereocenter(int v) Is the atom be a stereocenter (i.e. True or Para).- Parameters:
v
- atom index (vertex)- Returns:
- the atom at index
v
is a stereocenter
-
stereocenterType
Determine the type of stereocenter is the atom at indexv
.Stereocenters.Stereocenter.True
- the atom has constitutionally different neighborsStereocenters.Stereocenter.Para
- the atom resembles a stereo centre but has constitutionally equivalent neighbors (e.g. inositol, decalin). The stereocenter depends on the configuration of one or more stereocenters.Stereocenters.Stereocenter.Potential
- the atom can supported stereo chemistry but has not be shown to be a true or para center.Stereocenters.Stereocenter.Non
- the atom is not a stereocenter (e.g. methane).
- Parameters:
v
- atom index.- Returns:
- the type of stereocenter
-