Package org.jmol.smiles
Class SmilesStereo
- java.lang.Object
-
- org.jmol.smiles.SmilesStereo
-
public class SmilesStereo extends java.lang.Object
This class relates to stereochemical issues.
-
-
Field Summary
Fields Modifier and Type Field Description static int
ALLENE
(package private) int
atomCount
private int
chiralClass
(package private) int
chiralOrder
static int
DEFAULT
private java.lang.String
details
private java.lang.String
directives
private boolean
isNot
private Node[]
jmolAtoms
static int
OCTAHEDRAL
private static int[]
PERM_OCT
private static int[]
PERM_SS
private static int[]
PERM_TB
static int
POLYHEDRAL
private int[][]
polyhedralOrders
private SmilesSearch
search
static int
SEESAW
private PolyhedronStereoSorter
sorter
static int
SQUARE_PLANAR
static int
T_SHAPED
static int
TETRAHEDRAL
static int
TRIGONAL_BIPYRAMIDAL
static int
TRIGONAL_PYRAMIDAL
-
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 (package private) static int
checkChirality(java.lang.String pattern, int index, SmilesAtom newAtom)
(package private) boolean
checkStereoChemistry(SmilesSearch search, VTemp v)
private static boolean
checkStereochemistryAll(boolean isNot, Node atom0, int chiralClass, int order, Node atom1, Node atom2, Node atom3, Node atom4, Node atom5, Node atom6, VTemp v)
(package private) static float
distanceToPlane(javajs.util.V3 norm, float w, javajs.util.P3 pt)
(package private) void
fixStereo(SmilesAtom sAtom)
Check number of connections and permute them to match a canonical versionprivate void
getAlleneAtom(SmilesAtom pAtom, Node[] jn, int k, boolean haveTopo)
for allenes, we must check for missing atomsint
getChiralClass(SmilesAtom sAtom)
private static int
getChiralityClass(java.lang.String xx)
(package private) static int
getHandedness(Node a, Node b, Node c, Node 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)
private static void
getPlaneNormals(Node atom1, Node atom2, Node atom3, Node atom4, VTemp v)
private void
getPolyhedralOrders()
experimental Jmol polySMILES(package private) static java.lang.String
getStereoFlag(Node atom0, Node[] atoms, int nAtoms, VTemp v)
private static boolean
getTopoMapPt(int[] map, int i, SmilesAtom atom, SmilesAtom cAtom, SmilesBond[] bonds, int n000)
(package private) static boolean
isDiaxial(Node atomA, Node atomB, Node atom1, Node atom2, VTemp v, float f)
static SmilesStereo
newStereo(SmilesStereo stereo)
private boolean
normalizeClass(SmilesAtom atom)
re-order bonds to match standard @ and @@ typesprivate int
setChiralClass(SmilesAtom sAtom)
private boolean
setTopoCoordinates(SmilesAtom atom, SmilesAtom sAtom, SmilesAtom sAtom2, Node[] cAtoms)
(package private) void
sortBondsByStereo(Node atom, Node atomPrev, javajs.util.T3 ref, Edge[] 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
-
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(SmilesStereo stereo) 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
private boolean setTopoCoordinates(SmilesAtom atom, SmilesAtom sAtom, SmilesAtom sAtom2, Node[] cAtoms)
-
getMappedTopoAtoms
private int[] getMappedTopoAtoms(SmilesAtom atom, SmilesAtom a2, Node[] cAtoms)
-
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)
-
sortBondsByStereo
void sortBondsByStereo(Node atom, Node atomPrev, javajs.util.T3 ref, Edge[] 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
-atomPrev
-ref
-bonds
-vTemp
-
-
checkStereoChemistry
boolean checkStereoChemistry(SmilesSearch search, VTemp v)
-
getAlleneAtom
private void getAlleneAtom(SmilesAtom pAtom, Node[] jn, int k, boolean haveTopo)
for allenes, we must check for missing atoms- Parameters:
pAtom
-jn
-k
-haveTopo
-
-
getStereoFlag
static java.lang.String getStereoFlag(Node atom0, Node[] atoms, int nAtoms, VTemp v)
- Parameters:
atom0
-atoms
-nAtoms
-v
-- Returns:
- String
-
checkStereochemistryAll
private static boolean checkStereochemistryAll(boolean isNot, Node atom0, int chiralClass, int order, Node atom1, Node atom2, Node atom3, Node atom4, Node atom5, Node atom6, VTemp v)
-
isDiaxial
static boolean isDiaxial(Node atomA, Node atomB, Node atom1, Node atom2, VTemp v, float f)
-
getHandedness
static int getHandedness(Node a, Node b, Node c, Node 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(Node atom1, Node atom2, Node atom3, Node atom4, VTemp v)
-
distanceToPlane
static float distanceToPlane(javajs.util.V3 norm, float w, javajs.util.P3 pt)
-
checkChirality
static int checkChirality(java.lang.String pattern, int index, SmilesAtom newAtom) throws InvalidSmilesException
- Throws:
InvalidSmilesException
-
getPolyhedralOrders
private void getPolyhedralOrders() throws InvalidSmilesException
experimental Jmol polySMILES- Throws:
InvalidSmilesException
-
-