Class ExtendedCisTrans

java.lang.Object
org.openscience.cdk.stereo.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:
  • Field Details

  • Constructor Details

    • ExtendedCisTrans

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

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

      protected IStereoElement<IBond,IBond> create(IBond focus, List<IBond> carriers, int cfg)
    • numCarriers

      protected static int numCarriers(int cfg)
    • getFocus

      public IBond 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<IBond> 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<IBond,IBond> 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<IBond,IBond> 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)