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) int
private int
(package private) int
static final int
private String
private boolean
private Node[]
static final int
private static final int[]
private static final int[]
private static final int[]
static final int
private int[][]
private SmilesSearch
static final int
private PolyhedronStereoSorter
static final int
static final int
static final int
static final int
static final int
(package private) VTemp
-
Constructor Summary
ConstructorsConstructorDescriptionSmilesStereo
(int chiralClass, int chiralOrder, int atomCount, String details, String directives) -
Method Summary
Modifier and TypeMethodDescriptionprivate void
addAlleneLonePair
(SmilesAtom pAtom, Node[] jn, int k) for allenes, we must check for missing atoms(package private) static int
checkChirality
(SmilesSearch search, String pattern, int index, SmilesAtom newAtom) private boolean
checkPolyHedralWinding
(Node a0, Node[] a) (package private) boolean
checkStereoChemistry
(SmilesSearch search, VTemp v) 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) int
checkStereoForAtom
(SmilesAtom pAtom, boolean isNot, boolean haveTopo) (package private) void
fixStereo
(SmilesAtom sAtom) Check number of connections and permute them to match a canonical versionNode[]
getAlleneAtoms
(boolean haveTopo, SmilesAtom sAtom0, SmilesAtom pAtom, SmilesAtom pAtom1) static int
getAtropicStereoFlag
(Node[] nodes) int
getChiralClass
(SmilesAtom sAtom) private static int
(package private) 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 ptprivate Node
getJmolAtom
(int i) private int[]
getMappedTopoAtoms
(SmilesAtom atom, SmilesAtom a2, Node[] cAtoms, int[] map) private static void
getPlaneNormals
(javajs.util.P3 atom1, javajs.util.P3 atom2, javajs.util.P3 atom3, javajs.util.P3 atom4, VTemp v) private void
experimental Jmol polySMILES(package private) static String
getStereoFlag
(SimpleNode atom0, SimpleNode[] atoms, int nAtoms, VTemp v, boolean is2D) private static boolean
getTopoMapPt
(int[] map, int i, SmilesAtom atom, SmilesAtom cAtom, SmilesBond[] bonds, int n000) (package private) static boolean
isDiaxial
(SimpleNode atomA, SimpleNode atomB, SimpleNode atom1, SimpleNode atom2, VTemp v, float f) static SmilesStereo
newStereo
(SmilesSearch search) private boolean
normalizeClass
(SmilesAtom atom) re-order bonds to match standard @ and @@ typesprivate int
setChiralClass
(SmilesAtom sAtom) boolean
setTopoCoordinates
(SmilesAtom sAtom0, SmilesAtom pAtom, SmilesAtom sAtom2, Node[] cAtoms, boolean isNot) (package private) 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.
-
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
-