Package org.jmol.smiles
Class SmilesStereo
- java.lang.Object
-
- org.jmol.smiles.SmilesStereo
-
public class SmilesStereo extends java.lang.ObjectThis class relates to stereochemical issues
-
-
Field Summary
Fields Modifier and Type Field Description static intALLENE(package private) intatomCountprivate intchiralClass(package private) intchiralOrderstatic intDEFAULTprivate java.lang.Stringdetailsprivate java.lang.Stringdirectivesprivate booleanisNotprivate Node[]jmolAtomsstatic intOCTAHEDRALprivate static int[]PERM_OCTprivate static int[]PERM_SSprivate static int[]PERM_TBstatic intPOLYHEDRALprivate int[][]polyhedralOrdersprivate SmilesSearchsearchstatic intSEESAWprivate PolyhedronStereoSortersorterstatic intSQUARE_PLANARstatic intT_SHAPEDstatic intTETRAHEDRALstatic intTRIGONAL_BIPYRAMIDALstatic intTRIGONAL_PYRAMIDAL(package private) VTempv
-
Constructor Summary
Constructors Constructor Description SmilesStereo(int chiralClass, int chiralOrder, int atomCount, java.lang.String details, java.lang.String directives)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidaddAlleneLonePair(SmilesAtom pAtom, Node[] jn, int k)for allenes, we must check for missing atoms(package private) static intcheckChirality(SmilesSearch search, java.lang.String pattern, int index, SmilesAtom newAtom)private booleancheckPolyHedralWinding(Node a0, Node[] a)(package private) booleancheckStereoChemistry(SmilesSearch search, VTemp v)private static booleancheckStereochemistryAll(boolean isNot, SimpleNode atom0, int chiralClass, int order, SimpleNode atom1, SimpleNode atom2, SimpleNode atom3, SimpleNode atom4, SimpleNode atom5, SimpleNode atom6, VTemp v)intcheckStereoForAtom(SmilesAtom pAtom, boolean isNot, boolean haveTopo)(package private) voidfixStereo(SmilesAtom sAtom)Check number of connections and permute them to match a canonical versionNode[]getAlleneAtoms(SmilesAtom pAtom, SmilesAtom pAtom1)static intgetAtropicStereoFlag(Node[] nodes)intgetChiralClass(SmilesAtom sAtom)private static intgetChiralityClass(java.lang.String xx)(package private) static intgetHandedness(SimpleNode a, SimpleNode b, SimpleNode c, SimpleNode pt, VTemp v)determine the winding of the circuit a--b--c relative to point ptprivate NodegetJmolAtom(int i)private int[]getMappedTopoAtoms(SmilesAtom atom, SmilesAtom a2, Node[] cAtoms, int[] map)private static voidgetPlaneNormals(javajs.util.P3 atom1, javajs.util.P3 atom2, javajs.util.P3 atom3, javajs.util.P3 atom4, VTemp v)private voidgetPolyhedralOrders()experimental Jmol polySMILES(package private) static java.lang.StringgetStereoFlag(SimpleNode atom0, SimpleNode[] atoms, int nAtoms, VTemp v, boolean is2D)private static booleangetTopoMapPt(int[] map, int i, SmilesAtom atom, SmilesAtom cAtom, SmilesBond[] bonds, int n000)(package private) static booleanisDiaxial(SimpleNode atomA, SimpleNode atomB, SimpleNode atom1, SimpleNode atom2, VTemp v, float f)static SmilesStereonewStereo(SmilesSearch search)private booleannormalizeClass(SmilesAtom atom)re-order bonds to match standard @ and @@ typesprivate intsetChiralClass(SmilesAtom sAtom)booleansetTopoCoordinates(SmilesAtom sAtom0, SmilesAtom pAtom, SmilesAtom sAtom2, Node[] cAtoms, boolean isNot)(package private) voidsortPolyBondsByStereo(SimpleNode atom, SimpleNode ref, javajs.util.T3 center, SimpleEdge[] bonds, javajs.util.V3 vTemp)Sort bond array as ccw rotation around the axis connecting the atom and the reference point (polyhedron center) as seen from outside the polyhedron looking in.
-
-
-
Field Detail
-
chiralClass
private int chiralClass
-
chiralOrder
int chiralOrder
-
atomCount
int atomCount
-
details
private java.lang.String details
-
search
private SmilesSearch search
-
jmolAtoms
private Node[] jmolAtoms
-
directives
private java.lang.String directives
-
DEFAULT
public static final int DEFAULT
- See Also:
- Constant Field Values
-
POLYHEDRAL
public static final int POLYHEDRAL
- See Also:
- Constant Field Values
-
ALLENE
public static final int ALLENE
- See Also:
- Constant Field Values
-
TRIGONAL_PYRAMIDAL
public static final int TRIGONAL_PYRAMIDAL
- See Also:
- Constant Field Values
-
TETRAHEDRAL
public static final int TETRAHEDRAL
- See Also:
- Constant Field Values
-
TRIGONAL_BIPYRAMIDAL
public static final int TRIGONAL_BIPYRAMIDAL
- See Also:
- Constant Field Values
-
OCTAHEDRAL
public static final int OCTAHEDRAL
- See Also:
- Constant Field Values
-
SQUARE_PLANAR
public static final int SQUARE_PLANAR
- See Also:
- Constant Field Values
-
T_SHAPED
public static final int T_SHAPED
- See Also:
- Constant Field Values
-
SEESAW
public static final int SEESAW
- See Also:
- Constant Field Values
-
PERM_TB
private static final int[] PERM_TB
-
PERM_OCT
private static final int[] PERM_OCT
-
PERM_SS
private static final int[] PERM_SS
-
v
VTemp v
-
polyhedralOrders
private int[][] polyhedralOrders
-
isNot
private boolean isNot
-
sorter
private PolyhedronStereoSorter sorter
-
-
Constructor Detail
-
SmilesStereo
SmilesStereo(int chiralClass, int chiralOrder, int atomCount, java.lang.String details, java.lang.String directives) throws InvalidSmilesException- Throws:
InvalidSmilesException
-
-
Method Detail
-
getChiralityClass
private static int getChiralityClass(java.lang.String xx)
-
newStereo
public static SmilesStereo newStereo(SmilesSearch search) throws InvalidSmilesException
- Throws:
InvalidSmilesException
-
getChiralClass
public int getChiralClass(SmilesAtom sAtom)
-
setChiralClass
private int setChiralClass(SmilesAtom sAtom)
-
fixStereo
void fixStereo(SmilesAtom sAtom) throws InvalidSmilesException
Check number of connections and permute them to match a canonical version- Parameters:
sAtom-- Throws:
InvalidSmilesException
-
normalizeClass
private boolean normalizeClass(SmilesAtom atom)
re-order bonds to match standard @ and @@ types- Parameters:
atom-- Returns:
- true if OK
-
setTopoCoordinates
public boolean setTopoCoordinates(SmilesAtom sAtom0, SmilesAtom pAtom, SmilesAtom sAtom2, Node[] cAtoms, boolean isNot)
- Parameters:
sAtom0- the first target atompAtom- the pattern atom connected to the target atomssAtom2- allene atomcAtoms- the target atomsisNot-- Returns:
-
getMappedTopoAtoms
private int[] getMappedTopoAtoms(SmilesAtom atom, SmilesAtom a2, Node[] cAtoms, int[] map)
-
getTopoMapPt
private static boolean getTopoMapPt(int[] map, int i, SmilesAtom atom, SmilesAtom cAtom, SmilesBond[] bonds, int n000)- Parameters:
map-i-atom-cAtom-bonds-n000-- Returns:
- true if found
-
getJmolAtom
private Node getJmolAtom(int i)
-
sortPolyBondsByStereo
void sortPolyBondsByStereo(SimpleNode atom, SimpleNode ref, javajs.util.T3 center, SimpleEdge[] bonds, javajs.util.V3 vTemp)
Sort bond array as ccw rotation around the axis connecting the atom and the reference point (polyhedron center) as seen from outside the polyhedron looking in. Since we are allowing no branching, all atoms will appear as separate components with only numbers after them. These numbers will be processed and listed in this order.- Parameters:
atom-ref-center-bonds-vTemp-
-
checkStereoChemistry
boolean checkStereoChemistry(SmilesSearch search, VTemp v)
-
checkStereoForAtom
public int checkStereoForAtom(SmilesAtom pAtom, boolean isNot, boolean haveTopo)
-
getAlleneAtoms
public Node[] getAlleneAtoms(SmilesAtom pAtom, SmilesAtom pAtom1)
-
addAlleneLonePair
private void addAlleneLonePair(SmilesAtom pAtom, Node[] jn, int k)
for allenes, we must check for missing atoms- Parameters:
pAtom-jn-k-
-
getStereoFlag
static java.lang.String getStereoFlag(SimpleNode atom0, SimpleNode[] atoms, int nAtoms, VTemp v, boolean is2D)
- Parameters:
atom0-atoms-nAtoms-v-is2D-- Returns:
- String
-
checkStereochemistryAll
private static boolean checkStereochemistryAll(boolean isNot, SimpleNode atom0, int chiralClass, int order, SimpleNode atom1, SimpleNode atom2, SimpleNode atom3, SimpleNode atom4, SimpleNode atom5, SimpleNode atom6, VTemp v)
-
isDiaxial
static boolean isDiaxial(SimpleNode atomA, SimpleNode atomB, SimpleNode atom1, SimpleNode atom2, VTemp v, float f)
-
getHandedness
static int getHandedness(SimpleNode a, SimpleNode b, SimpleNode c, SimpleNode pt, VTemp v)
determine the winding of the circuit a--b--c relative to point pt- Parameters:
a-b-c-pt-v-- Returns:
- 1 for "@", 2 for "@@"
-
getPlaneNormals
private static void getPlaneNormals(javajs.util.P3 atom1, javajs.util.P3 atom2, javajs.util.P3 atom3, javajs.util.P3 atom4, VTemp v)
-
checkChirality
static int checkChirality(SmilesSearch search, java.lang.String pattern, int index, SmilesAtom newAtom) throws InvalidSmilesException
- Throws:
InvalidSmilesException
-
getPolyhedralOrders
private void getPolyhedralOrders() throws InvalidSmilesExceptionexperimental Jmol polySMILES- Throws:
InvalidSmilesException
-
getAtropicStereoFlag
public static int getAtropicStereoFlag(Node[] nodes)
-
-