#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. | |
SmartsParser (const SmartsParser &parser) | |
Copy constructor. | |
virtual | ~SmartsParser () |
Destructor. | |
Parsing | |
void | parse (const String &s) throw (Exception::ParseError) |
Protected Member Functions | |
void | dumpTreeRecursive_ (SPNode *node, Size depth) |
dump method for the tree | |
void | dumpTreeRecursive_ (SPEdge *edge, Size depth) |
dump method for the tree | |
Protected Attributes | |
bool | needs_SSSR_ |
sssr needed flag | |
bool | recursive_ |
recursive flag | |
bool | component_grouping_ |
component level grouping flag | |
std::map< Size, std::vector < SPNode * > > | ring_connections_ |
the ring connection sorted by index of the SMARTS pattern | |
std::set< SPEdge * > | edges_ |
the edges | |
std::set< SPNode * > | nodes_ |
the nodes | |
std::set< SPEdge * > | rec_edges_ |
the recursive edges | |
SPNode * | root_ |
the root node of the tree | |
int | component_no_ |
the actual component number | |
Static Protected Attributes | |
static vector< std::set< const Atom * > > * | sssr_ |
the sssr | |
static SmartsParser * | current_parser_ |
current instance | |
Accessors | |
| |
static State | state |
static member for the parser itself | |
SPAtom * | createAtom (const String &symbol, bool in_bracket=false) |
creates a new atom of symbol | |
void | setRoot (SPNode *root) |
sets the root SPNode of the tree | |
SPNode * | getRoot () const |
returns the root SPNode of the tree | |
void | dumpTree () |
dumps the tree to cerr | |
void | clear () |
clear the tree | |
void | addRingConnection (SPNode *spnode, Size index) |
adds a ring connection, SPNode with an index used in the SMARTS pattern | |
std::map< Size, std::vector < SPNode * > > | getRingConnections () const |
returns the ring connections sorted by index from SMARTS pattern | |
void | setSSSR (const std::vector< std::vector< Atom * > > &sssr) |
sets the SSSR | |
void | setNeedsSSSR (bool needs_sssr) |
sets the sssr needed flag | |
bool | getNeedsSSSR () const |
returns true if the SMARTS pattern contains ring related parts | |
void | setRecursive (bool recursive) |
sets the recursive flag | |
bool | isRecursive () const |
returns true if the tree represents a recursive SMARTS pattern | |
void | setComponentGrouping (bool component_grouping) |
sets the component level flag | |
bool | hasComponentGrouping () const |
returns true if the component level grouping was enabled | |
const std::set< SPNode * > & | getNodes () const |
returns the eodes stored in the tree | |
const std::set< SPEdge * > & | getEdges () const |
returns the edges stored in the tree | |
void | addEdge (SPEdge *edge) |
adds an edge to the tree | |
void | addNode (SPNode *node) |
adds a node to the tree | |
bool | hasRecursiveEdge (SPEdge *edge) const |
returns true if the tree has the given recursive edge | |
void | addRecursiveEdge (SPEdge *edge) |
adds a recursive edge to the tree | |
void | setNextComponentNumberToSubTree (SPNode *spnode) |
gets the next component no and assigns it to the subtree |
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.
Definition at line 86 of file smartsParser.h.
Definition at line 39 of file smartsParser.h.
BALL::SmartsParser::SmartsParser | ( | ) |
Default constructor.
BALL::SmartsParser::SmartsParser | ( | const SmartsParser & | parser | ) |
Copy constructor.
virtual BALL::SmartsParser::~SmartsParser | ( | ) | [virtual] |
Destructor.
void BALL::SmartsParser::addEdge | ( | SPEdge * | edge | ) | [inline] |
adds an edge to the tree
Definition at line 717 of file smartsParser.h.
void BALL::SmartsParser::addNode | ( | SPNode * | node | ) | [inline] |
adds a node to the tree
Definition at line 720 of file smartsParser.h.
void BALL::SmartsParser::addRecursiveEdge | ( | SPEdge * | edge | ) | [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
const std::set<SPEdge*>& BALL::SmartsParser::getEdges | ( | ) | const [inline] |
returns the edges stored in the tree
Definition at line 714 of file smartsParser.h.
bool BALL::SmartsParser::getNeedsSSSR | ( | ) | const [inline] |
returns true if the SMARTS pattern contains ring related parts
Definition at line 685 of file smartsParser.h.
const std::set<SPNode*>& BALL::SmartsParser::getNodes | ( | ) | const [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
SPNode* BALL::SmartsParser::getRoot | ( | ) | const [inline] |
returns the root SPNode of the tree
Definition at line 664 of file smartsParser.h.
bool BALL::SmartsParser::hasComponentGrouping | ( | ) | const [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.
bool BALL::SmartsParser::isRecursive | ( | ) | const [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.
void BALL::SmartsParser::setComponentGrouping | ( | bool | component_grouping | ) | [inline] |
sets the component level flag
Definition at line 694 of file smartsParser.h.
void BALL::SmartsParser::setNeedsSSSR | ( | bool | needs_sssr | ) | [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
void BALL::SmartsParser::setRecursive | ( | bool | recursive | ) | [inline] |
sets the recursive flag
Definition at line 688 of file smartsParser.h.
void BALL::SmartsParser::setRoot | ( | SPNode * | root | ) | [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
bool BALL::SmartsParser::component_grouping_ [protected] |
component level grouping flag
Definition at line 741 of file smartsParser.h.
int BALL::SmartsParser::component_no_ [protected] |
the actual component number
Definition at line 771 of file smartsParser.h.
SmartsParser* BALL::SmartsParser::current_parser_ [static, protected] |
current instance
Definition at line 756 of file smartsParser.h.
std::set<SPEdge*> BALL::SmartsParser::edges_ [protected] |
the edges
Definition at line 759 of file smartsParser.h.
bool BALL::SmartsParser::needs_SSSR_ [protected] |
sssr needed flag
Definition at line 735 of file smartsParser.h.
std::set<SPNode*> BALL::SmartsParser::nodes_ [protected] |
the nodes
Definition at line 762 of file smartsParser.h.
std::set<SPEdge*> BALL::SmartsParser::rec_edges_ [protected] |
the recursive edges
Definition at line 765 of file smartsParser.h.
bool BALL::SmartsParser::recursive_ [protected] |
recursive flag
Definition at line 738 of file smartsParser.h.
std::map<Size, std::vector<SPNode*> > BALL::SmartsParser::ring_connections_ [protected] |
the ring connection sorted by index of the SMARTS pattern
Definition at line 753 of file smartsParser.h.
SPNode* BALL::SmartsParser::root_ [protected] |
the root node of the tree
Definition at line 768 of file smartsParser.h.
vector<std::set<const Atom*> >* BALL::SmartsParser::sssr_ [static, protected] |
the sssr
Definition at line 744 of file smartsParser.h.
State BALL::SmartsParser::state [static] |
static member for the parser itself
Definition at line 708 of file smartsParser.h.