Package org.jmol.smiles
Class SmilesStereo
java.lang.Object
org.jmol.smiles.SmilesStereo
This class relates to stereochemical issues
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int(package private) intprivate int(package private) intstatic final intprivate Stringprivate booleanprivate Node[]static final intprivate static final int[]private static final int[]private static final int[]static final intprivate int[][]private SmilesSearchstatic final intprivate PolyhedronStereoSorterstatic final intstatic final intstatic final intstatic final intstatic final int(package private) VTemp -
Constructor Summary
ConstructorsConstructorDescriptionSmilesStereo(int chiralClass, int chiralOrder, int atomCount, String details, String directives) -
Method Summary
Modifier and TypeMethodDescriptionprivate voidaddAlleneLonePair(SmilesAtom pAtom, Node[] jn, int k) for allenes, we must check for missing atoms(package private) static intcheckChirality(SmilesSearch search, 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(boolean haveTopo, SmilesAtom sAtom0, SmilesAtom pAtom, SmilesAtom pAtom1) static intgetAtropicStereoFlag(Node[] nodes) intgetChiralClass(SmilesAtom sAtom) private static int(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 voidexperimental Jmol polySMILES(package private) static 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 Details
-
chiralClass
private int chiralClass -
chiralOrder
int chiralOrder -
atomCount
int atomCount -
details
-
search
-
jmolAtoms
-
DEFAULT
public static final int DEFAULT- See Also:
-
POLYHEDRAL
public static final int POLYHEDRAL- See Also:
-
ALLENE
public static final int ALLENE- See Also:
-
TRIGONAL_PYRAMIDAL
public static final int TRIGONAL_PYRAMIDAL- See Also:
-
TETRAHEDRAL
public static final int TETRAHEDRAL- See Also:
-
TRIGONAL_BIPYRAMIDAL
public static final int TRIGONAL_BIPYRAMIDAL- See Also:
-
OCTAHEDRAL
public static final int OCTAHEDRAL- See Also:
-
SQUARE_PLANAR
public static final int SQUARE_PLANAR- See Also:
-
T_SHAPED
public static final int T_SHAPED- See Also:
-
SEESAW
public static final int SEESAW- See Also:
-
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
-
-
Constructor Details
-
SmilesStereo
SmilesStereo(int chiralClass, int chiralOrder, int atomCount, String details, String directives) throws InvalidSmilesException - Throws:
InvalidSmilesException
-
-
Method Details
-
getChiralityClass
-
newStereo
- Throws:
InvalidSmilesException
-
getChiralClass
-
setChiralClass
-
fixStereo
Check number of connections and permute them to match a canonical version- Parameters:
sAtom-- Throws:
InvalidSmilesException
-
normalizeClass
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:
- true if successful
-
getMappedTopoAtoms
-
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
-
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
-
checkStereoForAtom
-
checkPolyHedralWinding
-
getAlleneAtoms
public Node[] getAlleneAtoms(boolean haveTopo, SmilesAtom sAtom0, SmilesAtom pAtom, SmilesAtom pAtom1) - Parameters:
haveTopo-sAtom0-pAtom-pAtom1-- Returns:
- allene atoms
-
addAlleneLonePair
for allenes, we must check for missing atoms- Parameters:
pAtom-jn-k-
-
getStereoFlag
static 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
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, String pattern, int index, SmilesAtom newAtom) throws InvalidSmilesException - Throws:
InvalidSmilesException
-
getPolyhedralOrders
experimental Jmol polySMILES- Throws:
InvalidSmilesException
-
getAtropicStereoFlag
-