Package org.jmol.symmetry
Class CIPData
java.lang.Object
org.jmol.symmetry.CIPData
- Direct Known Subclasses:
CIPDataSmiles
,CIPDataTracker
A helper class to handle application-specific analysis and store
information needed by CIPChirality and CIPDataSmiles.
Subclassed as CIPDataSmiles to also allow Jmol's
"...SMILES...".find("SMILES","chirality")
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) SimpleNode[]
all application atoms referenced by bit sets(package private) javajs.util.BS
Jmol's definition of aromatic(package private) javajs.util.BS
bit set of all atoms to process(package private) javajs.util.BS
bit set of all biphenyl-like connections "[!H](.t1:-20,20)a{a(.t2:-20,20)-a}a[!H]"(package private) javajs.util.BS
all N atoms that are sp3-hybridized and at small ring fusions(package private) javajs.util.BS
all sp2-hybridized atoms that are not Kekule-ambiguous(package private) javajs.util.BS
aromatic atoms at the end of a negative helical turn "A{a}(.t:-10,-40)a(.t:-10,-40)aaa"(package private) javajs.util.BS
aromatic atoms at the end of a positive helical turn "A{a}(.t:10,40)a(.t:10,40)aaa"(package private) javajs.util.BS
atoms that need specially-calculated element number in Rule 1a(package private) javajs.util.BS
atoms in all molecules containing the atoms of interest(package private) javajs.util.BS
[a-](package private) javajs.util.BS
excluded aromatics [r5d3n+0,r5d2o+0](package private) javajs.util.BS[]
all 3- to 7-membered rings; used to exclude E/Z and N-SP3 descriptorsboolean
A flag that, if set, returns rr for bicyclo[2.2.2]octane(package private) static final float
measure of planarity in a trigonal system, in Angstromsprotected javajs.util.V3
protected javajs.util.V3
(package private) Viewer
Jmol's viewer class -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
addAzacyclicN
(int i) private int
checkEne
(javajs.util.BS bsAllEnes, javajs.util.BS bsPath, int iLast, int iAtom, int order, javajs.util.BS bsEneAtom1) Look for a path that contains this ene in a fully conjugated pattern(package private) int
Determine the ordered CIP winding of this atom.(package private) int
couldBeChiralAlkene
(SimpleNode a, SimpleEdge edge) Allow double bonds only if trivalent and first-row atom.(package private) boolean
Determine whether an atom is one we need to consider.private void
Identify bridgehead nitrogens, as these may need to be given chirality designations.(package private) int
getBondOrder
(SimpleEdge bond) (package private) void
Look for conjugated loops of any size that have atoms not already in aromatic ringsprotected javajs.util.BS[]
Retrieve an array of bit sets that match a given SMARTS(package private) String
CIPDataTracker only(package private) float
getTrigonality
(SimpleNode a, javajs.util.V3 vNorm) Determine the trigonality of an atom in order to determine whether it might have a lone pair.protected void
init()
initializer -- called also by CIPDataSmiles(package private) int
isCis
(CIPChirality.CIPAtom a, CIPChirality.CIPAtom b, CIPChirality.CIPAtom c, CIPChirality.CIPAtom d) Check cis vs.(package private) int
isPositiveTorsion
(CIPChirality.CIPAtom a, CIPChirality.CIPAtom b, CIPChirality.CIPAtom c, CIPChirality.CIPAtom d) Checks the torsion angle and returns true if it is positive(package private) boolean
isSmiles()
Subclass identifierprotected boolean
Subclass identifierprotected javajs.util.BS
Return a bit set corresponding to a SMARTSActual constructor.(package private) boolean
setCoord
(SimpleNode atom1, CIPChirality.CIPAtom[] atoms) set the coordinate -- SMILES onlyvoid
setRule6Full
(boolean rrrr) (package private) void
track
(CIPChirality cip, CIPChirality.CIPAtom a, CIPChirality.CIPAtom b, int sphere, int finalScore, boolean trackTerminal) Track this decision - CIPDataTracker only
-
Field Details
-
TRIGONALITY_MIN
static final float TRIGONALITY_MINmeasure of planarity in a trigonal system, in Angstroms- See Also:
-
testRule6Full
public boolean testRule6FullA flag that, if set, returns rr for bicyclo[2.2.2]octane -
vwr
Viewer vwrJmol's viewer class -
atoms
SimpleNode[] atomsall application atoms referenced by bit sets -
bsAtoms
javajs.util.BS bsAtomsbit set of all atoms to process -
bsMolecule
javajs.util.BS bsMoleculeatoms in all molecules containing the atoms of interest -
bsAromatic
javajs.util.BS bsAromaticJmol's definition of aromatic -
bsXAromatic
javajs.util.BS bsXAromaticexcluded aromatics [r5d3n+0,r5d2o+0] -
bsNegativeAromatic
javajs.util.BS bsNegativeAromatic[a-] -
bsAzacyclic
javajs.util.BS bsAzacyclicall N atoms that are sp3-hybridized and at small ring fusions -
bsAtropisomeric
javajs.util.BS bsAtropisomericbit set of all biphenyl-like connections "[!H](.t1:-20,20)a{a(.t2:-20,20)-a}a[!H]" -
bsHelixM
javajs.util.BS bsHelixMaromatic atoms at the end of a negative helical turn "A{a}(.t:-10,-40)a(.t:-10,-40)aaa" -
bsHelixP
javajs.util.BS bsHelixParomatic atoms at the end of a positive helical turn "A{a}(.t:10,40)a(.t:10,40)aaa" -
lstSmallRings
javajs.util.BS[] lstSmallRingsall 3- to 7-membered rings; used to exclude E/Z and N-SP3 descriptors -
bsKekuleAmbiguous
javajs.util.BS bsKekuleAmbiguousatoms that need specially-calculated element number in Rule 1a -
bsEnes
javajs.util.BS bsEnesall sp2-hybridized atoms that are not Kekule-ambiguous -
vNorm
protected javajs.util.V3 vNorm -
vTemp
protected javajs.util.V3 vTemp
-
-
Constructor Details
-
CIPData
public CIPData()
-
-
Method Details
-
isTracker
protected boolean isTracker()Subclass identifier- Returns:
- true for CIPDataTracker
-
isSmiles
boolean isSmiles()Subclass identifier- Returns:
- true for CIPDataSmiles
-
set
Actual constructor.- Parameters:
vwr
- Jmol viewerbsAtoms
- selected atoms- Returns:
- this
-
init
protected void init()initializer -- called also by CIPDataSmiles -
getList
Retrieve an array of bit sets that match a given SMARTS- Parameters:
smarts
-- Returns:
- array of matching bit sets
- Throws:
Exception
-
match
Return a bit set corresponding to a SMARTS- Parameters:
smarts
-- Returns:
- bit set matching this SMARTS
- Throws:
Exception
-
getEneKekule
void getEneKekule()Look for conjugated loops of any size that have atoms not already in aromatic rings -
checkEne
private int checkEne(javajs.util.BS bsAllEnes, javajs.util.BS bsPath, int iLast, int iAtom, int order, javajs.util.BS bsEneAtom1) Look for a path that contains this ene in a fully conjugated pattern- Parameters:
bsAllEnes
- all ene carbonsbsPath
- current path to loop intoiLast
- the last atomiAtom
- this atomorder
- expected next order, alternating 2,1,2,1,...bsEneAtom1
- alternating atoms; first of double bond- Returns:
- the atom number of the loop or -1 if failed
-
getAzacyclic
private void getAzacyclic()Identify bridgehead nitrogens, as these may need to be given chirality designations. See AY-236.203 P-93.5.4.1 Sets a bit set of bridgehead nitrogens -
addAzacyclicN
private void addAzacyclicN(int i) -
couldBeChiralAtom
Determine whether an atom is one we need to consider.- Parameters:
a
-- Returns:
- true for selected atoms and hybridizations
-
couldBeChiralAlkene
Allow double bonds only if trivalent and first-row atom. (IUPAC 2013.P-93.2.4) Currently: a) first row b) doubly bonded c) doubly bonded atom is also first row- Parameters:
a
-edge
- optional bond- Returns:
- STEREO_M, STEREO_Z, or UNDETERMINED
-
getTrigonality
Determine the trigonality of an atom in order to determine whether it might have a lone pair. The global vector vNorm is returned as well, pointing from the atom to the base plane of its first three substituents.- Parameters:
a
-vNorm
- a vector returned with the normal from the atom to the base plane- Returns:
- distance from plane of first three covalently bonded nodes to this node
-
isCis
int isCis(CIPChirality.CIPAtom a, CIPChirality.CIPAtom b, CIPChirality.CIPAtom c, CIPChirality.CIPAtom d) Check cis vs. trans nature of a--b==c--d.- Parameters:
a
-b
-c
-d
-- Returns:
- true if this is a cis relationship
-
isPositiveTorsion
int isPositiveTorsion(CIPChirality.CIPAtom a, CIPChirality.CIPAtom b, CIPChirality.CIPAtom c, CIPChirality.CIPAtom d) Checks the torsion angle and returns true if it is positive- Parameters:
a
-b
-c
-d
-- Returns:
- true if torsion angle is
-
getBondOrder
-
setCoord
set the coordinate -- SMILES only- Parameters:
atom1
-atoms
-- Returns:
- true if coordinate is able to be set
-
checkHandedness
Determine the ordered CIP winding of this atom. For this, we just take the directed normal through the plane containing the top three substituent atoms and dot that with the vector from any one of them to the fourth ligand (or the root atom if trigonal pyramidal). If this is positive, we have R.- Parameters:
a
-- Returns:
- 1 for "R", 2 for "S"
-
track
void track(CIPChirality cip, CIPChirality.CIPAtom a, CIPChirality.CIPAtom b, int sphere, int finalScore, boolean trackTerminal) Track this decision - CIPDataTracker only- Parameters:
cip
-a
-b
-sphere
-finalScore
-trackTerminal
-
-
getRootTrackerResult
CIPDataTracker only- Parameters:
root
-- Returns:
- string expression of decision path
-
setRule6Full
public void setRule6Full(boolean rrrr)
-