Class ExtendedCisTrans

  • All Implemented Interfaces:
    Cloneable, ICDKObject, IStereoElement<IBond,​IBond>

    public final class ExtendedCisTrans
    extends Object
    Extended Cis/Trans double bond configuration. This stereo element is used to represent configurations of odd numbers of double bonds:
                      C
                     /
       C = C = C = C
      /
     C
     
    Author:
    John Mayfield
    See Also:
    ExtendedTetrahedral
    • Constructor Detail

      • ExtendedCisTrans

        public ExtendedCisTrans​(IBond focus,
                                IBond[] peripherals,
                                int config)
    • Method Detail

      • findTerminalAtoms

        public static IAtom[] findTerminalAtoms​(IAtomContainer container,
                                                IBond focus)
        Helper method to locate two terminal atoms in a container for this extended Cis/Trans element. The atoms are ordered such that the first atom is closer to first carrier.
        Parameters:
        container - structure representation
        Returns:
        the terminal atoms (ordered)
      • findCentralBond

        public static IBond findCentralBond​(IAtomContainer mol,
                                            IAtom atom)
        Locate the central double-bond in a chain of cumulated double bonds.
         A = C = C = B
               ^
         A = C = C = C = C = B
                   ^
         
        Parameters:
        mol - molecule
        atom - at atom from either end of the cumulated chains
        Returns:
        the central bond, or null if not found
      • 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)