Class Stereocenters

java.lang.Object
org.openscience.cdk.stereo.Stereocenters

public final class Stereocenters extends Object
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
N, P, As, S or Se are not stereogenic if they have a terminal H neighbor or if they have 2 neighbors of the same element (O, S, Se, Te, N) which have at least one hydrogen. Consider: 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
Examples of Para Stereocenters
  • 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)
It should be noted that para-centers may not actually have a configuration. A simple example of this is seen that by changing the configuration of one center in 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
  • Method Details

    • of

      public static Stereocenters of(IAtomContainer container)
      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

      public Stereocenters.Type elementType(int v)
      Obtain the type of stereo element support for atom at index v. Supported elements types are:
      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

      public Stereocenters.Stereocenter stereocenterType(int v)
      Determine the type of stereocenter is the atom at index v.
      Parameters:
      v - atom index.
      Returns:
      the type of stereocenter