public class SmilesParser
extends java.lang.Object
SmilesMolecule
.
The SMILES specification has been found at the
SMILES Home Page.
An other explanation can be found in the
Daylight Theory Manual.
try {
SmilesParser sp = new SmilesParser();
SmilesMolecule sm = sp.parseSmiles("CC(C)C(=O)O");
// Use the resulting molecule
} catch (InvalidSmilesException e) {
// Exception management
}
Modifier and Type | Field and Description |
---|---|
private char |
bioType |
private int |
braceCount |
private int |
branchLevel |
private int |
flags |
(package private) java.util.Map<java.lang.String,SmilesMeasure> |
htMeasures |
private boolean |
isBioSequence |
private boolean |
isSmarts |
private java.util.Map<java.lang.Integer,SmilesBond> |
ringBonds |
Constructor and Description |
---|
SmilesParser(boolean isSmarts) |
Modifier and Type | Method and Description |
---|---|
private int |
checkBioType(java.lang.String pattern,
int index) |
private boolean |
checkBrace(SmilesSearch molecule,
char ch,
char type) |
private int |
checkCharge(java.lang.String pattern,
int index,
SmilesAtom newAtom) |
private int |
checkChirality(java.lang.String pattern,
int index,
SmilesAtom newAtom) |
private boolean |
checkLogic(SmilesSearch molecule,
java.lang.String pattern,
SmilesAtom atom,
SmilesBond bond,
SmilesAtom currentAtom,
boolean isPrimitive,
boolean isBranchAtom) |
private void |
checkNested(SmilesSearch molecule,
SmilesAtom atom,
int flags) |
(package private) static java.lang.String |
cleanPattern(java.lang.String pattern) |
private void |
fixChirality(SmilesSearch molecule) |
private static char |
getChar(java.lang.String pattern,
int i) |
private static int |
getDigits(java.lang.String pattern,
int index,
int[] ret) |
static SmilesSearch |
getMolecule(java.lang.String pattern,
boolean isSmarts) |
(package private) static java.lang.String |
getRingPointer(int i) |
(package private) SmilesSearch |
getSearch(SmilesSearch parent,
java.lang.String pattern,
int flags) |
private static java.lang.String |
getSubPattern(java.lang.String pattern,
int index,
char ch) |
(package private) SmilesSearch |
parse(java.lang.String pattern)
Parses a SMILES String
|
private SmilesAtom |
parseAtom(SmilesSearch molecule,
SmilesAtom atomSet,
java.lang.String pattern,
SmilesAtom currentAtom,
SmilesBond bond,
boolean isBracketed,
boolean isPrimitive,
boolean isBranchAtom)
Parses an atom definition
|
private SmilesBond |
parseBond(SmilesSearch molecule,
SmilesBond bondSet,
java.lang.String pattern,
SmilesBond bond,
SmilesAtom currentAtom,
boolean isPrimitive,
boolean isBranchAtom) |
private void |
parseMeasure(SmilesSearch molecule,
java.lang.String strMeasure,
SmilesAtom currentAtom) |
private java.lang.String |
parseNested(SmilesSearch molecule,
java.lang.String pattern,
java.lang.String prefix) |
private void |
parseRing(SmilesSearch molecule,
int ringNum,
SmilesAtom currentAtom,
SmilesBond bond)
Parses a ring definition
|
private void |
parseSmiles(SmilesSearch molecule,
java.lang.String pattern,
SmilesAtom currentAtom,
boolean isBranchAtom)
Parses a part of a SMILES String
|
private java.lang.String |
parseVariableLength(java.lang.String pattern) |
private java.lang.String |
parseVariables(java.lang.String pattern) |
(package private) void |
reset() |
private static int |
skipTo(java.lang.String pattern,
int index,
char ch0) |
private boolean isSmarts
private boolean isBioSequence
private char bioType
private java.util.Map<java.lang.Integer,SmilesBond> ringBonds
private int braceCount
private int branchLevel
private int flags
java.util.Map<java.lang.String,SmilesMeasure> htMeasures
public static SmilesSearch getMolecule(java.lang.String pattern, boolean isSmarts) throws InvalidSmilesException
InvalidSmilesException
void reset()
SmilesSearch parse(java.lang.String pattern) throws InvalidSmilesException
pattern
- SMILES Stringpattern
InvalidSmilesException
private java.lang.String parseVariableLength(java.lang.String pattern) throws InvalidSmilesException
InvalidSmilesException
SmilesSearch getSearch(SmilesSearch parent, java.lang.String pattern, int flags) throws InvalidSmilesException
InvalidSmilesException
private void checkNested(SmilesSearch molecule, SmilesAtom atom, int flags) throws InvalidSmilesException
InvalidSmilesException
private void fixChirality(SmilesSearch molecule) throws InvalidSmilesException
InvalidSmilesException
private void parseSmiles(SmilesSearch molecule, java.lang.String pattern, SmilesAtom currentAtom, boolean isBranchAtom) throws InvalidSmilesException
molecule
- Resulting moleculepattern
- SMILES StringcurrentAtom
- Current atomisBranchAtom
- If we are starting a new branchInvalidSmilesException
private int checkBioType(java.lang.String pattern, int index)
private void parseMeasure(SmilesSearch molecule, java.lang.String strMeasure, SmilesAtom currentAtom) throws InvalidSmilesException
InvalidSmilesException
private boolean checkBrace(SmilesSearch molecule, char ch, char type) throws InvalidSmilesException
InvalidSmilesException
private java.lang.String parseNested(SmilesSearch molecule, java.lang.String pattern, java.lang.String prefix) throws InvalidSmilesException
InvalidSmilesException
private java.lang.String parseVariables(java.lang.String pattern) throws InvalidSmilesException
InvalidSmilesException
private SmilesAtom parseAtom(SmilesSearch molecule, SmilesAtom atomSet, java.lang.String pattern, SmilesAtom currentAtom, SmilesBond bond, boolean isBracketed, boolean isPrimitive, boolean isBranchAtom) throws InvalidSmilesException
molecule
- Resulting moleculeatomSet
- pattern
- SMILES StringcurrentAtom
- Current atombond
- isBracketed
- Indicates if is a isBracketed definition (between [])isPrimitive
- isBranchAtom
- InvalidSmilesException
private void parseRing(SmilesSearch molecule, int ringNum, SmilesAtom currentAtom, SmilesBond bond) throws InvalidSmilesException
molecule
- Resulting moleculeringNum
- currentAtom
- Current atombond
- InvalidSmilesException
private int checkCharge(java.lang.String pattern, int index, SmilesAtom newAtom) throws InvalidSmilesException
InvalidSmilesException
private int checkChirality(java.lang.String pattern, int index, SmilesAtom newAtom) throws InvalidSmilesException
InvalidSmilesException
private SmilesBond parseBond(SmilesSearch molecule, SmilesBond bondSet, java.lang.String pattern, SmilesBond bond, SmilesAtom currentAtom, boolean isPrimitive, boolean isBranchAtom) throws InvalidSmilesException
InvalidSmilesException
private boolean checkLogic(SmilesSearch molecule, java.lang.String pattern, SmilesAtom atom, SmilesBond bond, SmilesAtom currentAtom, boolean isPrimitive, boolean isBranchAtom) throws InvalidSmilesException
InvalidSmilesException
private static java.lang.String getSubPattern(java.lang.String pattern, int index, char ch) throws InvalidSmilesException
InvalidSmilesException
private static char getChar(java.lang.String pattern, int i)
private static int getDigits(java.lang.String pattern, int index, int[] ret)
pattern
- index
- ret
- private static int skipTo(java.lang.String pattern, int index, char ch0)
static java.lang.String getRingPointer(int i)
static java.lang.String cleanPattern(java.lang.String pattern)
pattern
-