BALL
1.4.79
|
#include <BALL/STRUCTURE/smartsParser.h>
Classes | |
class | SPAtom |
Smarts Parser Atom class. More... | |
class | SPBond |
Bond representation of the smarts parser. More... | |
class | SPEdge |
Edge representation of the smarts parser graph. More... | |
class | SPNode |
Representation of a node in the smarts parser graph. More... | |
struct | State |
Parser state (used by the parser itself) More... | |
Public Types | |
enum | ZEIsomerType { ANY_ZE = 1, NONE, Z, E } |
enum | ChiralClass { CHIRAL_CLASS_UNSPECIFIED = 1, NONCHIRAL, NONCHIRAL_OR_UNSPECIFIED, CW_DEFAULT, CW_DEFAULT_OR_UNSPECIFIED, CCW_DEFAULT, CCW_DEFAULT_OR_UNSPECIFIED, CW_TH, CW_TH_OR_UNSPECIFIED, CCW_TH, CCW_TH_OR_UNSPECIFIED, CW_AL, CW_AL_OR_UNSPECIFIED, CCW_AL, CCW_AL_OR_UNSPECIFIED, CW_SP, CW_SP_OR_UNSPECIFIED, CCW_SP, CCW_SP_OR_UNSPECIFIED, CW_TB, CW_TB_OR_UNSPECIFIED, CCW_TB, CCW_TB_OR_UNSPECIFIED, CW_OH, CW_OH_OR_UNSPECIFIED, CCW_OH, CCW_OH_OR_UNSPECIFIED } |
chiral class definitions CW = clock wise, CCW = counter clock wise More... | |
enum | LogicalOperator { AND, OR, AND_LOW, NOOP } |
Public Member Functions | |
Constructors and Destructors | |
SmartsParser () | |
Default constructor. More... | |
SmartsParser (const SmartsParser &parser) | |
Copy constructor. More... | |
virtual | ~SmartsParser () |
Destructor. More... | |
Parsing | |
void | parse (const String &s) throw (Exception::ParseError) |
Protected Member Functions | |
void | dumpTreeRecursive_ (SPNode *node, Size depth) |
dump method for the tree More... | |
void | dumpTreeRecursive_ (SPEdge *edge, Size depth) |
dump method for the tree More... | |
Protected Attributes | |
bool | needs_SSSR_ |
sssr needed flag More... | |
bool | recursive_ |
recursive flag More... | |
bool | component_grouping_ |
component level grouping flag More... | |
std::map< Size, std::vector < SPNode * > > | ring_connections_ |
the ring connection sorted by index of the SMARTS pattern More... | |
std::set< SPEdge * > | edges_ |
the edges More... | |
std::set< SPNode * > | nodes_ |
the nodes More... | |
std::set< SPEdge * > | rec_edges_ |
the recursive edges More... | |
SPNode * | root_ |
the root node of the tree More... | |
int | component_no_ |
the actual component number More... | |
Static Protected Attributes | |
static vector< std::set< const Atom * > > * | sssr_ |
the sssr More... | |
static SmartsParser * | current_parser_ |
current instance More... | |
Accessors | |
static State | state |
static member for the parser itself More... | |
SPAtom * | createAtom (const String &symbol, bool in_bracket=false) |
creates a new atom of symbol More... | |
void | setRoot (SPNode *root) |
sets the root SPNode of the tree More... | |
SPNode * | getRoot () const |
returns the root SPNode of the tree More... | |
void | dumpTree () |
dumps the tree to cerr More... | |
void | clear () |
clear the tree More... | |
void | addRingConnection (SPNode *spnode, Size index) |
adds a ring connection, SPNode with an index used in the SMARTS pattern More... | |
std::map< Size, std::vector < SPNode * > > | getRingConnections () const |
returns the ring connections sorted by index from SMARTS pattern More... | |
void | setSSSR (const std::vector< std::vector< Atom * > > &sssr) |
sets the SSSR More... | |
void | setNeedsSSSR (bool needs_sssr) |
sets the sssr needed flag More... | |
bool | getNeedsSSSR () const |
returns true if the SMARTS pattern contains ring related parts More... | |
void | setRecursive (bool recursive) |
sets the recursive flag More... | |
bool | isRecursive () const |
returns true if the tree represents a recursive SMARTS pattern More... | |
void | setComponentGrouping (bool component_grouping) |
sets the component level flag More... | |
bool | hasComponentGrouping () const |
returns true if the component level grouping was enabled More... | |
const std::set< SPNode * > & | getNodes () const |
returns the eodes stored in the tree More... | |
const std::set< SPEdge * > & | getEdges () const |
returns the edges stored in the tree More... | |
void | addEdge (SPEdge *edge) |
adds an edge to the tree More... | |
void | addNode (SPNode *node) |
adds a node to the tree More... | |
bool | hasRecursiveEdge (SPEdge *edge) const |
returns true if the tree has the given recursive edge More... | |
void | addRecursiveEdge (SPEdge *edge) |
adds a recursive edge to the tree More... | |
void | setNextComponentNumberToSubTree (SPNode *spnode) |
gets the next component no and assigns it to the subtree More... | |
SMARTS Parser.
This class implements the parser for SMARTS patterns. The SMARTS string is converted into a tree, which is used for matching it to molecules. The tree has also some additional features, i.e. additional edges which allows also for graph features (kind of cyclic structure).
Definition at line 35 of file smartsParser.h.
chiral class definitions CW = clock wise, CCW = counter clock wise
Definition at line 48 of file smartsParser.h.
The logical operator supported by SMARTS-pattern
'&' -> and
',' -> or
';' -> low precedence and
NOOP is just provided for convenience.
Enumerator | |
---|---|
AND | |
OR | |
AND_LOW | |
NOOP |
Definition at line 86 of file smartsParser.h.
Enumerator | |
---|---|
ANY_ZE | |
NONE | |
Z | |
E |
Definition at line 39 of file smartsParser.h.
BALL::SmartsParser::SmartsParser | ( | ) |
Default constructor.
BALL::SmartsParser::SmartsParser | ( | const SmartsParser & | parser | ) |
Copy constructor.
|
virtual |
Destructor.
|
inline |
adds an edge to the tree
Definition at line 717 of file smartsParser.h.
|
inline |
adds a node to the tree
Definition at line 720 of file smartsParser.h.
|
inline |
adds a recursive edge to the tree
Definition at line 726 of file smartsParser.h.
adds a ring connection, SPNode with an index used in the SMARTS pattern
void BALL::SmartsParser::clear | ( | ) |
clear the tree
creates a new atom of symbol
void BALL::SmartsParser::dumpTree | ( | ) |
dumps the tree to cerr
dump method for the tree
dump method for the tree
|
inline |
returns the edges stored in the tree
Definition at line 714 of file smartsParser.h.
|
inline |
returns true if the SMARTS pattern contains ring related parts
Definition at line 685 of file smartsParser.h.
|
inline |
returns the eodes stored in the tree
Definition at line 711 of file smartsParser.h.
returns the ring connections sorted by index from SMARTS pattern
|
inline |
returns the root SPNode of the tree
Definition at line 664 of file smartsParser.h.
|
inline |
returns true if the component level grouping was enabled
Definition at line 697 of file smartsParser.h.
returns true if the tree has the given recursive edge
Definition at line 723 of file smartsParser.h.
|
inline |
returns true if the tree represents a recursive SMARTS pattern
Definition at line 691 of file smartsParser.h.
void BALL::SmartsParser::parse | ( | const String & | s | ) | |
throw | ( | Exception::ParseError | |||
) |
Parse a SMARTS string.
|
inline |
sets the component level flag
Definition at line 694 of file smartsParser.h.
|
inline |
sets the sssr needed flag
Definition at line 682 of file smartsParser.h.
void BALL::SmartsParser::setNextComponentNumberToSubTree | ( | SPNode * | spnode | ) |
gets the next component no and assigns it to the subtree
|
inline |
sets the recursive flag
Definition at line 688 of file smartsParser.h.
|
inline |
sets the root SPNode of the tree
Definition at line 661 of file smartsParser.h.
void BALL::SmartsParser::setSSSR | ( | const std::vector< std::vector< Atom * > > & | sssr | ) |
sets the SSSR
|
protected |
component level grouping flag
Definition at line 741 of file smartsParser.h.
|
protected |
the actual component number
Definition at line 771 of file smartsParser.h.
|
staticprotected |
current instance
Definition at line 756 of file smartsParser.h.
|
protected |
the edges
Definition at line 759 of file smartsParser.h.
|
protected |
sssr needed flag
Definition at line 735 of file smartsParser.h.
|
protected |
the nodes
Definition at line 762 of file smartsParser.h.
|
protected |
the recursive edges
Definition at line 765 of file smartsParser.h.
|
protected |
recursive flag
Definition at line 738 of file smartsParser.h.
the ring connection sorted by index of the SMARTS pattern
Definition at line 753 of file smartsParser.h.
|
protected |
the root node of the tree
Definition at line 768 of file smartsParser.h.
|
staticprotected |
the sssr
Definition at line 744 of file smartsParser.h.
|
static |
static member for the parser itself
Definition at line 708 of file smartsParser.h.