Package org.openscience.cdk.stereo
Class ExtendedTetrahedral
java.lang.Object
org.openscience.cdk.stereo.ExtendedTetrahedral
- All Implemented Interfaces:
Cloneable
,ICDKObject
,IStereoElement<IAtom,
IAtom>
Extended tetrahedral configuration. Defines the winding configuration in
a system with an even number of cumulated pi bonds. Examples include,
(R)-laballenic acid (CHEBI:38401) and (S)-laballenic acid (CHEBI:38402).
The extended tetrahedral stereochemistry can be represented and handled the
same as normal tetrahedral stereochemistry. However the handling of the
neighbours is subtly different. To assist in the description here are how
atoms are referred to.
p0 p2 p<i>: periphals
\ / t<i>: terminals
t0 = f = t1 f: focus
/ \
p1 p3
The data structure stores, the central 'focus' atom and the four peripheral
atoms. The peripheral atoms are stored in a single array, {p0, p1,
p2, p3}
, the first two and last two entries should be attached to the same
terminal atom (t0 or t1). For convenience the terminal atoms can be found with
findTerminalAtoms(IAtomContainer)
.
p0 p2 p0 p2
\ / \ /
t0 = f = t1 --> c c: t0/f/t1
/ \ / \
p1 p3 p1 p3
The configuration treats the focus and terminal atoms as a single atom, the
neighbours {p1, p2, p3}
then proceeded either clockwise or
anti-clockwise when the centre (t0/f/t1) is viewed from the first peripheral
atom p0
.
If any of the peripherals are implicit hydrogen atoms, then the terminal atom
to which the hydrogen is attached can be used as a placeholder.- Author:
- John May
- Keywords:
- extended tetrahedral, allene, axial chirality
-
Field Summary
Modifier and TypeFieldDescriptionprotected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
Fields inherited from interface org.openscience.cdk.interfaces.IStereoElement
AL, Allenal, AT, Atropisomeric, CFG_MASK, CisTrans, CLS_MASK, CT, CU, Cumulene, GRP_ABS, GRP_MASK, GRP_NUM_MASK, GRP_NUM_SHIFT, GRP_RAC, GRP_RAC1, GRP_RAC2, GRP_RAC3, GRP_RAC4, GRP_RAC5, GRP_REL, GRP_REL1, GRP_REL2, GRP_REL3, GRP_REL4, GRP_REL5, GRP_TYPE_MASK, HBPY8, HBPY9, HeptagonalBipyramidal, HexagonalBipyramidal, LEFT, OC, Octahedral, OPPOSITE, PBPY, PentagonalBipyramidal, RIGHT, SP, SP4, SPU, SPY, SPZ, SquarePlanar, SquarePyramidal, TBPY, Tetrahedral, TH, TOGETHER, TrigonalBipyramidal
-
Constructor Summary
ConstructorDescriptionExtendedTetrahedral
(IAtom focus, IAtom[] peripherals, int config) ExtendedTetrahedral
(IAtom focus, IAtom[] peripherals, ITetrahedralChirality.Stereo winding) Create an extended tetrahedral stereo element for the provided 'focus' and 'peripherals' in the given 'winding'. -
Method Summary
Modifier and TypeMethodDescriptionboolean
protected IStereoElement<IAtom,
IAtom> IAtom[]
findTerminalAtoms
(IAtomContainer container) Helper method to locate two terminal atoms in a container for this extended tetrahedral element.static IAtom[]
findTerminalAtoms
(IAtomContainer container, IAtom focus) Helper method to locate two terminal atoms in a container for a given focus.focus()
The central atom in the cumulated system.int
int
int
getFocus()
int
static int
getLength
(IAtomContainer container, IAtom focus) protected static <T> T[]
invapply
(T[] src, int[] perm) map
(Map<IChemObject, IChemObject> chemobjs) final IStereoElement<IAtom,
IAtom> mapStrict
(Map<IChemObject, IChemObject> chemobjs) protected static int
numCarriers
(int cfg) IAtom[]
The neighbouring peripherals atoms, these are attached to the terminal atoms in the cumulated system.protected void
setBuilder
(IChemObjectBuilder builder) void
setConfigOrder
(int cfg) void
setGroupInfo
(int grp) winding()
The winding of the peripherals, when viewed from the first atom.
-
Field Details
-
A
protected static final int A- See Also:
-
B
protected static final int B- See Also:
-
C
protected static final int C- See Also:
-
D
protected static final int D- See Also:
-
E
protected static final int E- See Also:
-
F
protected static final int F- See Also:
-
-
Constructor Details
-
ExtendedTetrahedral
Create an extended tetrahedral stereo element for the provided 'focus' and 'peripherals' in the given 'winding'. See class documentation an annotated storage description.- Parameters:
focus
- the central cumulated atomperipherals
- atoms attached to the terminal atomswinding
- the configuration
-
ExtendedTetrahedral
-
-
Method Details
-
focus
The central atom in the cumulated system.- Returns:
- the focus
-
peripherals
The neighbouring peripherals atoms, these are attached to the terminal atoms in the cumulated system.- Returns:
- the peripheral atoms
-
winding
The winding of the peripherals, when viewed from the first atom.- Returns:
- winding configuration
-
findTerminalAtoms
Helper method to locate two terminal atoms in a container for a given focus.- Parameters:
container
- structure representationfocus
- cumulated atom- Returns:
- the terminal atoms (unordered)
-
findTerminalAtoms
Helper method to locate two terminal atoms in a container for this extended tetrahedral element. The atoms are ordered such that the first index is attached to the first two peripheral atoms and the second index is attached to the second two peripheral atoms.- Parameters:
container
- structure representation- Returns:
- the terminal atoms (ordered)
-
getLength
-
create
-
numCarriers
protected static int numCarriers(int cfg) -
getFocus
- Specified by:
getFocus
in interfaceIStereoElement<F extends IChemObject,
C extends IChemObject>
-
getCarriers
- Specified by:
getCarriers
in interfaceIStereoElement<F extends IChemObject,
C extends IChemObject>
-
getConfigClass
public int getConfigClass()- Specified by:
getConfigClass
in interfaceIStereoElement<F extends IChemObject,
C extends IChemObject>
-
getConfigOrder
public int getConfigOrder()- Specified by:
getConfigOrder
in interfaceIStereoElement<F extends IChemObject,
C extends IChemObject>
-
getConfig
public int getConfig()- Specified by:
getConfig
in interfaceIStereoElement<F extends IChemObject,
C extends IChemObject>
-
setConfigOrder
public void setConfigOrder(int cfg) - Specified by:
setConfigOrder
in interfaceIStereoElement<F extends IChemObject,
C extends IChemObject>
-
getGroupInfo
public int getGroupInfo()- Specified by:
getGroupInfo
in interfaceIStereoElement<F extends IChemObject,
C extends IChemObject>
-
setGroupInfo
public void setGroupInfo(int grp) - Specified by:
setGroupInfo
in interfaceIStereoElement<F extends IChemObject,
C extends IChemObject>
-
contains
- Specified by:
contains
in interfaceIStereoElement<F extends IChemObject,
C extends IChemObject>
-
map
- Specified by:
map
in interfaceIStereoElement<F extends IChemObject,
C extends IChemObject>
-
map
- Specified by:
map
in interfaceIStereoElement<F extends IChemObject,
C extends IChemObject>
-
mapStrict
- Specified by:
mapStrict
in interfaceIStereoElement<F extends IChemObject,
C extends IChemObject>
-
getBuilder
- Specified by:
getBuilder
in interfaceICDKObject
-
setBuilder
-
invapply
protected static <T> T[] invapply(T[] src, int[] perm)
-