Class TrigonalBipyramidal

java.lang.Object
org.openscience.cdk.stereo.TrigonalBipyramidal
All Implemented Interfaces:
Cloneable, ICDKObject, IStereoElement<IAtom,IAtom>

public final class TrigonalBipyramidal extends Object
Describes a trigonal-bipyramidal configuration. The configuration carriers are arranged with two co-linear on an axis and three equatorial. The configuration order is between 1 and 20 and follows the same meaning as SMILES.
    d   c     TB1
     \ /
  a---x---e   where a: first carrier, b: second carrier, ... *
      |             x: focus
      b             'c' is in front of 'x', 'd' is behind
 
The configuration can be normalized to the lowest order (1) using the normalize() function.
See Also:
  • Field Details

  • Constructor Details

    • TrigonalBipyramidal

      public TrigonalBipyramidal(IAtom focus, IAtom[] carriers, int order)
      Create a new trigonal bipyramidal configuration.
      Parameters:
      focus - the focus
      carriers - the carriers
      order - the order (1-20)
  • Method Details

    • normalize

      public TrigonalBipyramidal normalize()
      Normalize the configuration to the lowest configuration order (1) - the axis goes from the first to last carrier, the three middle carriers are anti-clockwise looking from the first carrier.
      Returns:
      the normalized configuration
    • create

      protected TrigonalBipyramidal create(IAtom focus, List<IAtom> carriers, int cfg)
    • numCarriers

      protected static int numCarriers(int cfg)
    • getFocus

      public IAtom getFocus()
      The focus atom or bond at the 'centre' of the stereo-configuration.
      Specified by:
      getFocus in interface IStereoElement<F extends IChemObject,C extends IChemObject>
      Returns:
      the focus
    • getCarriers

      public List<IAtom> getCarriers()
      The carriers of the stereochemistry
      Specified by:
      getCarriers in interface IStereoElement<F extends IChemObject,C extends IChemObject>
      Returns:
      the carriers
    • getConfigClass

      public int getConfigClass()
      The configuration class of the stereochemistry.
      Specified by:
      getConfigClass in interface IStereoElement<F extends IChemObject,C extends IChemObject>
      Returns:
      configuration class
    • getConfigOrder

      public int getConfigOrder()
      The configuration order of the stereochemistry.
      Specified by:
      getConfigOrder in interface IStereoElement<F extends IChemObject,C extends IChemObject>
      Returns:
      configuration
    • getConfig

      public int getConfig()
      Access the configuration order and class of the stereochemistry.
      Specified by:
      getConfig in interface IStereoElement<F extends IChemObject,C extends IChemObject>
      Returns:
      the configuration
    • setConfigOrder

      public void setConfigOrder(int cfg)
      Set the configuration order of the stereochemistry.
      Specified by:
      setConfigOrder in interface IStereoElement<F extends IChemObject,C extends IChemObject>
      Parameters:
      cfg - the new configuration
    • getGroupInfo

      public int getGroupInfo()
      Access the stereo group information - see class doc.
      Specified by:
      getGroupInfo in interface IStereoElement<F extends IChemObject,C extends IChemObject>
      Returns:
      the group info
    • setGroupInfo

      public void setGroupInfo(int grp)
      Set the stereo group information - see class doc.
      Specified by:
      setGroupInfo in interface IStereoElement<F extends IChemObject,C extends IChemObject>
      Parameters:
      grp - the group info
    • contains

      public boolean contains(IAtom atom)
      Does the stereo element contain the provided atom.
      Specified by:
      contains in interface IStereoElement<F extends IChemObject,C extends IChemObject>
      Parameters:
      atom - an atom to test membership
      Returns:
      whether the atom is present
    • map

      public IStereoElement<IAtom,IAtom> map(Map<IAtom,IAtom> atoms, Map<IBond,IBond> bonds)
      Map the atoms/bonds in this instance to a new stereo element using the provided atom/bond mapping. This allows the stereo element to be transferred between a cloned or aligned (i.e. isomorphic) chemical graph. If no mapping is found for a given atom or bond it is left intact. However the provided atom and bonds maps must not be null.
      Specified by:
      map in interface IStereoElement<F extends IChemObject,C extends IChemObject>
      Parameters:
      atoms - used to convert the original atoms to their mapped counterparts
      bonds - used to convert the original bonds to their mapped counterparts
      Returns:
      a new stereo element in the same configuration but with atoms/bonds replaced with their mapped equivalence.
    • map

      Description copied from interface: IStereoElement
      Update the stereo using the remapping of atoms/bonds in this instance to a new stereo element using the provided atom/bond mapping. This allows the stereo element to be transferred between a cloned or aligned (i.e. isomorphic) chemical graph. If no mapping is found for a given atom or bond the existing atom/bond it is left intact. If you want to remove stereo in such cases please use IStereoElement.mapStrict(java.util.Map<org.openscience.cdk.interfaces.IChemObject, org.openscience.cdk.interfaces.IChemObject>).
      Specified by:
      map in interface IStereoElement<F extends IChemObject,C extends IChemObject>
      Parameters:
      chemobjs - chem object mapping
      Returns:
      a new stereo element in the same configuration but with atoms/bonds replaced with their mapped equivalence.
    • mapStrict

      public final IStereoElement<IAtom,IAtom> mapStrict(Map<IChemObject,IChemObject> chemobjs)
      Description copied from interface: IStereoElement
      Update the stereo using the remapping of atoms/bonds in this instance to a new stereo element using the provided atom/bond mapping. This allows the stereo element to be transferred between a cloned or aligned (i.e. isomorphic) chemical graph. If no mapping is found for a given atom or bond a new element is NOT created.
      Specified by:
      mapStrict in interface IStereoElement<F extends IChemObject,C extends IChemObject>
      Parameters:
      chemobjs - chem object mapping
      Returns:
      a new stereo element in the same configuration but with atoms/bonds replaced with their mapped equivalence.
    • getBuilder

      public IChemObjectBuilder getBuilder()
      Returns a IChemObjectBuilder for the data classes that extend this class.
      Specified by:
      getBuilder in interface ICDKObject
      Returns:
      The IChemObjectBuilder matching this ICDKObject
    • setBuilder

      protected void setBuilder(IChemObjectBuilder builder)
    • invapply

      protected static <T> T[] invapply(T[] src, int[] perm)