Package org.jmol.smiles
Class SmilesMatcher
java.lang.Object
org.jmol.smiles.SmilesMatcher
- All Implemented Interfaces:
SmilesMatcherInterface
Originating author: Nicholas Vervelle
A class to handle a variety of SMILES/SMARTS-related functions, including: --
determining if two SMILES strings are equivalent -- determining the molecular
formula of a SMILES or SMARTS string -- searching for specific runs of atoms
in a 3D model -- searching for specific runs of atoms in a SMILES description
-- generating valid (though not canonical) SMILES and bioSMILES strings --
getting atom-atom correlation maps to be used with biomolecular alignment
methods
The original SMILES description can been found at the SMILES Home Page. Specification for this implementation can be found in package.html.
public methods:
int areEqual -- checks a SMILES string against a reference (-1 for error; 0 for no finds; >0 for number of finds)
BitSet[] find -- finds one or more occurances of a SMILES or SMARTS string within a SMILES string
int[][] getCorrelationMaps -- returns correlated arrays of atoms
String getLastError -- returns any error that was last encountered.
String getMolecularFormula -- returns the MF of a SMILES or SMARTS string
String getRelationship -- returns isomeric relationship
String getSmiles -- returns a standard SMILES string or a
Jmol BIOSMILES string with comment header.
BitSet getSubstructureSet -- returns a single BitSet with all found atoms included
in Jmol script:
string2.find("SMILES", string1)
string2.find("SMARTS", string1)
e.g.
print "CCCC".find("SMILES", "C[C]")
select search("smartsString")
All bioSMARTS strings begin with ~ (tilde).
- Author:
- Bob Hanson
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final intprivate static final intprivate static final intprivate static final intprivate boolean -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintbooleanareEqualTest(String smiles, SmilesSearch search) for JUnit test, mainlycleanSmiles(String smiles) private voidint[][]Searches for all matches of a pattern within a SMILES string.Node[]getAtropisomerKeys(String pattern, Node[] atoms, int ac, javajs.util.BS bsSelected, javajs.util.BS bsAromatic, int flags) called by SmilesParser to get nn in ^nn- base on match to actual structureint[][]getCorrelationMaps(String pattern, Node[] atoms, int atomCount, javajs.util.BS bsSelected, int flags) Rather than returning bitsets, this method returns the sets of matching atoms in array form so that a direct atom-atom correlation can be made.int[][]getMapForJME(String jme, Atom[] at, javajs.util.BS bsAtoms) voidgetMMFF94AtomTypes(String[] smarts, Node[] atoms, int ac, javajs.util.BS bsSelected, javajs.util.Lst<javajs.util.BS> ret, javajs.util.Lst<javajs.util.BS>[] vRings) called by ForceFieldMMFF.setAtomTypes onlygetMolecularFormula(String pattern, boolean isSmarts, boolean isEmpirical) getRelationship(String smiles1, String smiles2) internal to Jmol -- called by org.jmol.Viewer.getSmilesjavajs.util.BSgetSubstructureSet(String pattern, Node[] atoms, int ac, javajs.util.BS bsSelected, int flags) Returns a bitset matching the pattern within a set of Jmol atoms.javajs.util.BS[]getSubstructureSetArray(String pattern, Node[] atoms, int ac, javajs.util.BS bsSelected, javajs.util.BS bsAromatic, int flags) Returns a vector of bitsets indicating which atoms match the pattern.private ObjectmatchPriv(String pattern, Node[] atoms, int ac, javajs.util.BS bsSelected, javajs.util.BS bsAromatic, boolean doTestAromatic, int flags, int mode, SmilesSearch searchTarget) polyhedronToSmiles(Node center, int[][] faces, int atomCount, javajs.util.P3[] points, int flags, String details) Generate a topological SMILES string from a set of facesreverseChirality(String smiles) Note, this may be incompatible with [$(select(..))] THIS IS NOT DEPENDABLE.
-
Field Details
-
MODE_BITSET
private static final int MODE_BITSET- See Also:
-
MODE_ARRAY
private static final int MODE_ARRAY- See Also:
-
MODE_MAP
private static final int MODE_MAP- See Also:
-
MODE_ATROP
private static final int MODE_ATROP- See Also:
-
okMF
private boolean okMF
-
-
Constructor Details
-
SmilesMatcher
public SmilesMatcher()
-
-
Method Details
-
getLastException
- Specified by:
getLastExceptionin interfaceSmilesMatcherInterface
-
getMolecularFormula
public String getMolecularFormula(String pattern, boolean isSmarts, boolean isEmpirical) throws Exception - Specified by:
getMolecularFormulain interfaceSmilesMatcherInterface- Throws:
Exception
-
clearExceptions
private void clearExceptions() -
getSmiles
public String getSmiles(Node[] atoms, int ac, javajs.util.BS bsSelected, String bioComment, int flags) throws Exception internal to Jmol -- called by org.jmol.Viewer.getSmiles- Specified by:
getSmilesin interfaceSmilesMatcherInterface- Throws:
Exception
-
areEqual
- Specified by:
areEqualin interfaceSmilesMatcherInterface- Throws:
Exception
-
areEqualTest
for JUnit test, mainly- Parameters:
smiles-search-- Returns:
- true only if the SMILES strings match and there are no errors
- Throws:
Exception
-
find
Searches for all matches of a pattern within a SMILES string. If SMILES (not isSmarts), requires that all atoms be part of the match.- Specified by:
findin interfaceSmilesMatcherInterface- Parameters:
pattern- SMILES or SMARTS pattern.target-flags-- Returns:
- array of correlations of occurances of pattern within smiles
- Throws:
Exception
-
getAtoms
- Specified by:
getAtomsin interfaceSmilesMatcherInterface- Throws:
Exception
-
getRelationship
- Specified by:
getRelationshipin interfaceSmilesMatcherInterface- Throws:
Exception
-
reverseChirality
Note, this may be incompatible with [$(select(..))] THIS IS NOT DEPENDABLE. USE /invertStereo/ INSTEAD- Specified by:
reverseChiralityin interfaceSmilesMatcherInterface
-
getSubstructureSet
public javajs.util.BS getSubstructureSet(String pattern, Node[] atoms, int ac, javajs.util.BS bsSelected, int flags) throws Exception Returns a bitset matching the pattern within a set of Jmol atoms.- Specified by:
getSubstructureSetin interfaceSmilesMatcherInterface- Parameters:
pattern- SMILES or SMARTS pattern.atoms-ac-bsSelected-- Returns:
- BitSet indicating which atoms match the pattern.
- Throws:
Exception
-
getMMFF94AtomTypes
public void getMMFF94AtomTypes(String[] smarts, Node[] atoms, int ac, javajs.util.BS bsSelected, javajs.util.Lst<javajs.util.BS> ret, javajs.util.Lst<javajs.util.BS>[] vRings) throws Exception called by ForceFieldMMFF.setAtomTypes only- Specified by:
getMMFF94AtomTypesin interfaceSmilesMatcherInterface- Throws:
Exception
-
getSubstructureSetArray
public javajs.util.BS[] getSubstructureSetArray(String pattern, Node[] atoms, int ac, javajs.util.BS bsSelected, javajs.util.BS bsAromatic, int flags) throws Exception Returns a vector of bitsets indicating which atoms match the pattern.- Specified by:
getSubstructureSetArrayin interfaceSmilesMatcherInterface- Parameters:
pattern- SMILES or SMARTS pattern.atoms-ac-bsSelected-bsAromatic-- Returns:
- BitSet Array indicating which atoms match the pattern.
- Throws:
Exception
-
getAtropisomerKeys
public String getAtropisomerKeys(String pattern, Node[] atoms, int ac, javajs.util.BS bsSelected, javajs.util.BS bsAromatic, int flags) throws Exception called by SmilesParser to get nn in ^nn- base on match to actual structure- Parameters:
pattern-atoms-ac-bsSelected-bsAromatic-flags-- Returns:
- string of nn,nn,nn,nn
- Throws:
Exception
-
polyhedronToSmiles
public String polyhedronToSmiles(Node center, int[][] faces, int atomCount, javajs.util.P3[] points, int flags, String details) throws Exception Generate a topological SMILES string from a set of faces- Specified by:
polyhedronToSmilesin interfaceSmilesMatcherInterface- Parameters:
faces-atomCount-- Returns:
- topological SMILES string
- Throws:
Exception
-
getCorrelationMaps
public int[][] getCorrelationMaps(String pattern, Node[] atoms, int atomCount, javajs.util.BS bsSelected, int flags) throws Exception Rather than returning bitsets, this method returns the sets of matching atoms in array form so that a direct atom-atom correlation can be made.- Specified by:
getCorrelationMapsin interfaceSmilesMatcherInterface- Parameters:
pattern- SMILES or SMARTS pattern.atoms-bsSelected-- Returns:
- a set of atom correlations
- Throws:
Exception
-
matchPriv
private Object matchPriv(String pattern, Node[] atoms, int ac, javajs.util.BS bsSelected, javajs.util.BS bsAromatic, boolean doTestAromatic, int flags, int mode, SmilesSearch searchTarget) throws Exception - Throws:
Exception
-
cleanSmiles
- Specified by:
cleanSmilesin interfaceSmilesMatcherInterface
-
getMapForJME
- Specified by:
getMapForJMEin interfaceSmilesMatcherInterface
-