org.jmol.smiles
Class SmilesSearch
java.lang.Object
org.jmol.api.JmolMolecule
org.jmol.smiles.SmilesSearch
public class SmilesSearch
- extends JmolMolecule
-- was SmilesMolecule,
but this now includes more data than that and the search itself
so as to keep this thread safe
Fields inherited from class org.jmol.api.JmolMolecule |
altElementCounts, altElementMax, atomCount, atomList, elementCounts, elementNumberMax, firstAtomIndex, indexInModel, mf, modelIndex, moleculeIndex, nElements, nodes |
Method Summary |
(package private) SmilesAtom |
addAtom()
|
(package private) int |
addNested(java.lang.String pattern)
|
private boolean |
checkMatch(SmilesAtom patternAtom,
int atomNum,
int iAtom,
boolean firstAtomOnly)
Check for a specific match of a model set atom with a pattern position |
private boolean |
checkMatchBond(SmilesAtom patternAtom,
SmilesAtom atom1,
SmilesBond patternBond,
int iAtom,
int matchingAtom,
JmolEdge bond)
|
private boolean |
checkPrimitiveAtom(SmilesAtom patternAtom,
int iAtom)
|
private boolean |
checkPrimitiveBond(SmilesAtom patternAtom,
SmilesAtom atom1,
SmilesBond patternBond,
int iAtom,
int matchingAtom,
JmolEdge bond)
|
private boolean |
checkStereochemistry()
|
(package private) static boolean |
checkStereochemistry(boolean isNot,
JmolNode atom0,
int chiralClass,
int order,
JmolNode atom1,
JmolNode atom2,
JmolNode atom3,
JmolNode atom4,
JmolNode atom5,
JmolNode atom6,
SmilesSearch.VTemp v)
|
private boolean |
continueMatch(int atomNum,
int iAtom,
boolean firstAtomOnly)
|
(package private) void |
createTopoMap(java.util.BitSet bsAromatic)
|
(package private) static float |
distanceToPlane(javax.vecmath.Vector3f norm,
float w,
javax.vecmath.Point3f pt)
|
private java.lang.Object |
getBitSets(SmilesSearch search,
boolean firstAtomOnly,
boolean isRingCheck)
|
private static int |
getHandedness(JmolNode a,
JmolNode b,
JmolNode c,
JmolNode pt,
SmilesSearch.VTemp v)
compares the |
private JmolNode |
getHydrogens(JmolNode atom,
java.util.BitSet bsHydrogens)
|
private JmolNode |
getJmolAtom(int i)
|
(package private) int[] |
getMappedAtoms(JmolNode atom,
JmolNode a2,
JmolNode[] cAtoms)
|
(package private) int |
getMissingHydrogenCount()
|
(package private) java.lang.Object |
getNested(int iNested)
|
(package private) SmilesSearch |
getParent()
|
private static void |
getPlaneNormals(JmolNode atom1,
JmolNode atom2,
JmolNode atom3,
JmolNode atom4,
SmilesSearch.VTemp v)
|
private void |
getX(SmilesAtom sAtom,
SmilesAtom sAtom2,
JmolNode[] jn,
int pt,
boolean haveCoordinates,
boolean needHSwitch)
|
(package private) static boolean |
isDiaxial(JmolNode atomA,
JmolNode atomB,
JmolNode atom1,
JmolNode atom2,
SmilesSearch.VTemp v,
float f)
|
(package private) static boolean |
isRingBond(java.lang.StringBuffer ringSets,
int i,
int j)
|
(package private) java.lang.Object |
search(boolean firstAtomOnly)
the start of the search. |
(package private) void |
setAtomArray()
|
(package private) void |
setNested(int iNested,
java.lang.Object o)
|
void |
setParent(SmilesSearch parent)
|
(package private) void |
setRingData(java.util.BitSet bsA)
|
(package private) void |
setSelected(java.util.BitSet bs)
|
private void |
setSmilesBondCoordinates(SmilesAtom sAtom1,
SmilesAtom sAtom2,
int bondType)
|
private boolean |
setSmilesCoordinates(JmolNode atom,
SmilesAtom sAtom,
SmilesAtom sAtom2,
JmolNode[] cAtoms)
|
java.lang.String |
toString()
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
INITIAL_ATOMS
private static final int INITIAL_ATOMS
- See Also:
- Constant Field Values
patternAtoms
SmilesAtom[] patternAtoms
pattern
java.lang.String pattern
jmolAtoms
JmolNode[] jmolAtoms
jmolAtomCount
int jmolAtomCount
bsSelected
private java.util.BitSet bsSelected
bsRequired
java.util.BitSet bsRequired
firstMatchOnly
boolean firstMatchOnly
matchAllAtoms
boolean matchAllAtoms
isSmarts
boolean isSmarts
isSmilesFind
boolean isSmilesFind
subSearches
SmilesSearch[] subSearches
haveSelected
boolean haveSelected
haveBondStereochemistry
boolean haveBondStereochemistry
haveAtomStereochemistry
boolean haveAtomStereochemistry
needRingData
boolean needRingData
needAromatic
boolean needAromatic
needRingMemberships
boolean needRingMemberships
ringDataMax
int ringDataMax
measures
java.util.List measures
noAromatic
boolean noAromatic
ignoreStereochemistry
boolean ignoreStereochemistry
ringSets
java.lang.StringBuffer ringSets
bsAromatic
java.util.BitSet bsAromatic
lastChainAtom
SmilesAtom lastChainAtom
asVector
boolean asVector
getMaps
boolean getMaps
parent
SmilesSearch parent
isSilent
private boolean isSilent
isRingCheck
private boolean isRingCheck
selectedAtomCount
private int selectedAtomCount
ringData
private java.util.BitSet[] ringData
ringCounts
private int[] ringCounts
ringConnections
private int[] ringConnections
bsFound
private java.util.BitSet bsFound
htNested
private java.util.Hashtable htNested
nNested
private int nNested
nestedBond
private SmilesBond nestedBond
vReturn
private java.util.List vReturn
bsReturn
private java.util.BitSet bsReturn
v
SmilesSearch.VTemp v
SmilesSearch
public SmilesSearch()
toString
public java.lang.String toString()
- Overrides:
toString
in class java.lang.Object
setSelected
void setSelected(java.util.BitSet bs)
setAtomArray
void setAtomArray()
addAtom
SmilesAtom addAtom()
addNested
int addNested(java.lang.String pattern)
setNested
void setNested(int iNested,
java.lang.Object o)
getNested
java.lang.Object getNested(int iNested)
getMissingHydrogenCount
int getMissingHydrogenCount()
setRingData
void setRingData(java.util.BitSet bsA)
throws InvalidSmilesException
- Throws:
InvalidSmilesException
getBitSets
private java.lang.Object getBitSets(SmilesSearch search,
boolean firstAtomOnly,
boolean isRingCheck)
throws InvalidSmilesException
- Throws:
InvalidSmilesException
search
java.lang.Object search(boolean firstAtomOnly)
throws InvalidSmilesException
- the start of the search. ret will be either a List or a BitSet
- Parameters:
firstAtomOnly
- TODO
- Returns:
- BitSet or Vector
- Throws:
InvalidSmilesException
checkMatch
private final boolean checkMatch(SmilesAtom patternAtom,
int atomNum,
int iAtom,
boolean firstAtomOnly)
throws InvalidSmilesException
- Check for a specific match of a model set atom with a pattern position
- Parameters:
patternAtom
- Atom of the pattern that is currently tested.atomNum
- Current atom of the pattern.iAtom
- Atom number of the Jmol atom that is currently tested to match
patternAtom
.firstAtomOnly
- TODO
- Returns:
- true to continue or false if oneOnly
- Throws:
InvalidSmilesException
continueMatch
private boolean continueMatch(int atomNum,
int iAtom,
boolean firstAtomOnly)
throws InvalidSmilesException
- Throws:
InvalidSmilesException
getHydrogens
private JmolNode getHydrogens(JmolNode atom,
java.util.BitSet bsHydrogens)
checkPrimitiveAtom
private boolean checkPrimitiveAtom(SmilesAtom patternAtom,
int iAtom)
throws InvalidSmilesException
- Throws:
InvalidSmilesException
checkMatchBond
private boolean checkMatchBond(SmilesAtom patternAtom,
SmilesAtom atom1,
SmilesBond patternBond,
int iAtom,
int matchingAtom,
JmolEdge bond)
checkPrimitiveBond
private boolean checkPrimitiveBond(SmilesAtom patternAtom,
SmilesAtom atom1,
SmilesBond patternBond,
int iAtom,
int matchingAtom,
JmolEdge bond)
isRingBond
static boolean isRingBond(java.lang.StringBuffer ringSets,
int i,
int j)
checkStereochemistry
private boolean checkStereochemistry()
getX
private void getX(SmilesAtom sAtom,
SmilesAtom sAtom2,
JmolNode[] jn,
int pt,
boolean haveCoordinates,
boolean needHSwitch)
checkStereochemistry
static boolean checkStereochemistry(boolean isNot,
JmolNode atom0,
int chiralClass,
int order,
JmolNode atom1,
JmolNode atom2,
JmolNode atom3,
JmolNode atom4,
JmolNode atom5,
JmolNode atom6,
SmilesSearch.VTemp v)
getJmolAtom
private JmolNode getJmolAtom(int i)
setSmilesBondCoordinates
private void setSmilesBondCoordinates(SmilesAtom sAtom1,
SmilesAtom sAtom2,
int bondType)
setSmilesCoordinates
private boolean setSmilesCoordinates(JmolNode atom,
SmilesAtom sAtom,
SmilesAtom sAtom2,
JmolNode[] cAtoms)
getMappedAtoms
int[] getMappedAtoms(JmolNode atom,
JmolNode a2,
JmolNode[] cAtoms)
isDiaxial
static boolean isDiaxial(JmolNode atomA,
JmolNode atomB,
JmolNode atom1,
JmolNode atom2,
SmilesSearch.VTemp v,
float f)
getHandedness
private static int getHandedness(JmolNode a,
JmolNode b,
JmolNode c,
JmolNode pt,
SmilesSearch.VTemp v)
- compares the
- Parameters:
a
- b
- c
- pt
- v
-
- Returns:
- 1 for "@", 2 for "@@"
getPlaneNormals
private static void getPlaneNormals(JmolNode atom1,
JmolNode atom2,
JmolNode atom3,
JmolNode atom4,
SmilesSearch.VTemp v)
distanceToPlane
static float distanceToPlane(javax.vecmath.Vector3f norm,
float w,
javax.vecmath.Point3f pt)
createTopoMap
void createTopoMap(java.util.BitSet bsAromatic)
setParent
public void setParent(SmilesSearch parent)
getParent
SmilesSearch getParent()