public class SmilesSearch extends JmolMolecule
Modifier and Type | Field and Description |
---|---|
private boolean |
aromaticDouble |
(package private) boolean |
asVector |
(package private) BNode[] |
bioAtoms |
(package private) BS |
bsAromatic |
(package private) BS |
bsAromatic5 |
(package private) BS |
bsAromatic6 |
private BS |
bsCheck |
(package private) BS |
bsFound |
(package private) BS |
bsRequired |
(package private) BS |
bsReturn |
private BS |
bsSelected |
(package private) boolean |
firstMatchOnly |
(package private) int |
flags |
(package private) boolean |
getMaps |
(package private) boolean |
haveAtomStereochemistry |
(package private) boolean |
haveBondStereochemistry |
(package private) boolean |
haveSelected |
private java.util.Map<java.lang.String,java.lang.Object> |
htNested |
private boolean |
ignoreStereochemistry |
private static int |
INITIAL_ATOMS |
private boolean |
isRingCheck |
private boolean |
isSilent |
(package private) boolean |
isSmarts |
(package private) boolean |
isSmilesFind |
(package private) int |
jmolAtomCount |
(package private) Node[] |
jmolAtoms |
(package private) SmilesAtom |
lastChainAtom |
(package private) boolean |
matchAllAtoms |
(package private) javajs.util.Lst<SmilesMeasure> |
measures |
(package private) boolean |
needAromatic |
(package private) boolean |
needRingData |
(package private) boolean |
needRingMemberships |
private SmilesBond |
nestedBond |
private int |
nNested |
private boolean |
noAromatic |
(package private) java.lang.String |
pattern |
(package private) SmilesAtom[] |
patternAtoms |
private int[] |
ringConnections |
private int[] |
ringCounts |
private BS[] |
ringData |
(package private) int |
ringDataMax |
(package private) javajs.util.SB |
ringSets |
private int |
selectedAtomCount |
(package private) Node[] |
smartsAtoms |
(package private) SmilesSearch[] |
subSearches |
(package private) SmilesSearch |
top |
(package private) VTemp |
v |
private javajs.util.Lst<java.lang.Object> |
vReturn |
ac, altElementCounts, altElementMax, atomList, elementCounts, elementNumberMax, firstAtomIndex, indexInModel, mf, modelIndex, moleculeIndex, nElements, nodes
Constructor and Description |
---|
SmilesSearch() |
Modifier and Type | Method and Description |
---|---|
(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,
Edge bond) |
private boolean |
checkPrimitiveAtom(SmilesAtom patternAtom,
int iAtom) |
private boolean |
checkPrimitiveBond(SmilesBond patternBond,
int iAtom1,
int iAtom2,
Edge bond) |
private boolean |
checkStereochemistry() |
(package 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) void |
clear() |
private void |
clearBsFound(int iAtom) |
private boolean |
continueMatch(int atomNum,
int iAtom,
boolean firstAtomOnly) |
(package private) void |
createTopoMap(BS bsAromatic) |
(package private) static float |
distanceToPlane(javajs.util.V3 norm,
float w,
javajs.util.P3 pt) |
private static int |
getHandedness(Node a,
Node b,
Node c,
Node pt,
VTemp v)
compares the
|
private Node |
getHydrogens(Node atom,
BS bsHydrogens) |
private Node |
getJmolAtom(int i) |
(package private) int[] |
getMappedAtoms(Node atom,
Node a2,
Node[] cAtoms) |
(package private) int |
getMissingHydrogenCount() |
(package private) java.lang.Object |
getNested(int iNested) |
private static void |
getPlaneNormals(Node atom1,
Node atom2,
Node atom3,
Node atom4,
VTemp v) |
(package private) void |
getRingData(boolean needRingData,
int flags,
javajs.util.Lst<BS>[] vRings) |
(package private) void |
getSelections()
htNested may contain $(select xxxx) primitives.
|
(package private) SmilesSearch |
getTop() |
private void |
getX(SmilesAtom sAtom,
Node[] jn,
int pt,
boolean haveCoordinates,
boolean needHSwitch) |
(package private) static boolean |
isDiaxial(Node atomA,
Node atomB,
Node atom1,
Node atom2,
VTemp v,
float f) |
(package private) static boolean |
isRingBond(javajs.util.SB ringSets,
int i,
int j) |
(package private) java.lang.Object |
search(boolean firstAtomOnly)
the start of the search.
|
private void |
setAromatic56(javajs.util.Lst<java.lang.Object> vRings,
BS bs56,
int n56,
javajs.util.Lst<BS> vAromatic56) |
(package private) void |
setAtomArray() |
(package private) void |
setNested(int iNested,
java.lang.Object o) |
(package private) void |
setRingData(BS bsA) |
(package private) void |
setSelected(BS bs) |
private void |
setSmilesBondCoordinates(SmilesAtom sAtom1,
SmilesAtom sAtom2,
int bondType) |
private boolean |
setSmilesCoordinates(Node atom,
SmilesAtom sAtom,
SmilesAtom sAtom2,
Node[] cAtoms) |
void |
setTop(SmilesSearch parent) |
(package private) java.lang.Object |
subsearch(SmilesSearch search,
boolean firstAtomOnly,
boolean isRingCheck) |
java.lang.String |
toString() |
addMolecule, getBitSetForMF, getBranchBitSet, getMolecularFormula, getMolecularFormula, getMolecules
private static final int INITIAL_ATOMS
SmilesAtom[] patternAtoms
java.lang.String pattern
Node[] jmolAtoms
Node[] smartsAtoms
BNode[] bioAtoms
int jmolAtomCount
private BS bsSelected
BS bsRequired
boolean firstMatchOnly
boolean matchAllAtoms
boolean isSmarts
boolean isSmilesFind
SmilesSearch[] subSearches
boolean haveSelected
boolean haveBondStereochemistry
boolean haveAtomStereochemistry
boolean needRingData
boolean needAromatic
boolean needRingMemberships
int ringDataMax
javajs.util.Lst<SmilesMeasure> measures
int flags
javajs.util.SB ringSets
BS bsAromatic
BS bsAromatic5
BS bsAromatic6
SmilesAtom lastChainAtom
boolean asVector
boolean getMaps
SmilesSearch top
private boolean isSilent
private boolean isRingCheck
private int selectedAtomCount
private BS[] ringData
private int[] ringCounts
private int[] ringConnections
BS bsFound
private java.util.Map<java.lang.String,java.lang.Object> htNested
private int nNested
private SmilesBond nestedBond
private javajs.util.Lst<java.lang.Object> vReturn
BS bsReturn
private boolean ignoreStereochemistry
private boolean noAromatic
private boolean aromaticDouble
private BS bsCheck
VTemp v
public java.lang.String toString()
toString
in class java.lang.Object
void setSelected(BS bs)
void setAtomArray()
SmilesAtom addAtom()
int addNested(java.lang.String pattern)
void clear()
void setNested(int iNested, java.lang.Object o)
java.lang.Object getNested(int iNested)
int getMissingHydrogenCount()
void setRingData(BS bsA) throws InvalidSmilesException
InvalidSmilesException
void getRingData(boolean needRingData, int flags, javajs.util.Lst<BS>[] vRings) throws InvalidSmilesException
InvalidSmilesException
private void setAromatic56(javajs.util.Lst<java.lang.Object> vRings, BS bs56, int n56, javajs.util.Lst<BS> vAromatic56)
java.lang.Object subsearch(SmilesSearch search, boolean firstAtomOnly, boolean isRingCheck) throws InvalidSmilesException
InvalidSmilesException
java.lang.Object search(boolean firstAtomOnly) throws InvalidSmilesException
firstAtomOnly
- TODOInvalidSmilesException
private final boolean checkMatch(SmilesAtom patternAtom, int atomNum, int iAtom, boolean firstAtomOnly) throws InvalidSmilesException
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
- TODOInvalidSmilesException
private boolean continueMatch(int atomNum, int iAtom, boolean firstAtomOnly) throws InvalidSmilesException
InvalidSmilesException
private void clearBsFound(int iAtom)
private boolean checkPrimitiveAtom(SmilesAtom patternAtom, int iAtom) throws InvalidSmilesException
InvalidSmilesException
private boolean checkMatchBond(SmilesAtom patternAtom, SmilesAtom atom1, SmilesBond patternBond, int iAtom, int matchingAtom, Edge bond)
private boolean checkPrimitiveBond(SmilesBond patternBond, int iAtom1, int iAtom2, Edge bond)
static boolean isRingBond(javajs.util.SB ringSets, int i, int j)
private boolean checkStereochemistry()
private void getX(SmilesAtom sAtom, Node[] jn, int pt, boolean haveCoordinates, boolean needHSwitch)
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)
private Node getJmolAtom(int i)
private void setSmilesBondCoordinates(SmilesAtom sAtom1, SmilesAtom sAtom2, int bondType)
private boolean setSmilesCoordinates(Node atom, SmilesAtom sAtom, SmilesAtom sAtom2, Node[] cAtoms)
static boolean isDiaxial(Node atomA, Node atomB, Node atom1, Node atom2, VTemp v, float f)
private static int getHandedness(Node a, Node b, Node c, Node pt, VTemp v)
a
- b
- c
- pt
- v
- private static void getPlaneNormals(Node atom1, Node atom2, Node atom3, Node atom4, VTemp v)
static float distanceToPlane(javajs.util.V3 norm, float w, javajs.util.P3 pt)
void createTopoMap(BS bsAromatic)
public void setTop(SmilesSearch parent)
SmilesSearch getTop()
void getSelections()