Class 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:
    Trigonal Bipyramidal, OpenSMILES, Octahedral, SquarePlanar
    • Constructor Detail

      • 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 Detail

      • 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
      • numCarriers

        protected static int numCarriers​(int cfg)
      • getFocus

        public F 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
      • 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
      • 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<F,​C> 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.
      • mapStrict

        public final IStereoElement<F,​C> 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.
      • invapply

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