5 #ifndef BALL_STRUCTURE_SMARTSMATCHER_H
6 #define BALL_STRUCTURE_SMARTSMATCHER_H
8 #ifndef BALL_STRUCTURE_SMARTSPARSER_H
16 #include <boost/shared_ptr.hpp>
51 typedef std::vector<std::set<const Atom*> >
Match;
73 void match(
Match& matches,
Molecule& mol,
const String& smarts,
const std::set<const Atom*>& start_atoms);
76 void match(std::vector<Match>& matches,
Molecule& mol,
const std::vector<String>& smarts);
79 void match(std::vector<Match>& matches,
Molecule& mol,
const std::vector<String>& smarts,
const std::set<const Atom*>& start_atoms);
82 void setSSSR(
const std::vector<std::vector<Atom*> >& sssr);
184 std::vector<RecStructCore_*> rec_struct_pool_;
187 std::vector<Position> free_list_;
243 void dump(
const String& name,
Size depth_ = 0);
252 static boost::shared_ptr<RecStructPool_>
pool_;
255 bool evaluateRingEdges_(
const std::set<const Atom*>& matching,
const std::map<const SPNode*, const Atom*>& mapping,
const String& smarts);
273 std::vector<std::vector<Atom*> >
sssr_;
281 #endif // BALL_STRUCTURE_SMARTSMATCHER_H
std::vector< std::set< const Atom * > > Match
SmartsParser::SPEdge SPEdge
core structure of the recursive matching algorithm for the object pool
std::vector< std::pair< const SPNode *, const Atom * > > & first_matches
reference to the first matches in the core structure
std::vector< std::map< const SPNode *, const Atom * > > & mapped_atoms
reference to the mapped SPNodes to Atoms in the core structure
std::vector< std::vector< Atom * > > sssr_
user sssr
std::vector< std::set< const Atom * > > matched_atoms
container which contains a vector of matched atoms from different matches
std::vector< std::set< const Atom * > > visited_atoms
contains vector of visited atoms of different matches
std::vector< std::set< const SPEdge * > > & visited_edges
reference to the visited edges in the core structure
static boost::shared_ptr< RecStructPool_ > pool_
the pool of rec struct objects
Smarts Parser Atom class.
std::vector< std::set< const SPEdge * > > visited_edges
contains vector of visited edges of the Smarts tree of different matches
Representation of a node in the smarts parser graph.
std::vector< std::pair< const SPNode *, const Atom * > > first_matches
contains the first matched atoms of different matches (needed for recursive Smarts) ...
std::map< SPNode *, std::vector< std::set< const Atom * > > > rec_matches_
matches from the recurive part
std::vector< std::set< const Bond * > > & visited_bonds
reference to the visited bonds in the core structure
std::vector< std::set< const Bond * > > visited_bonds
contains vector of visited bonds of different matches
bool has_user_sssr_
user SSSR set?
SmartsParser::SPAtom SPAtom
Bond representation of the smarts parser.
std::vector< std::map< const SPNode *, const Atom * > > mapped_atoms
container which contains a vector of mappings from different matches
SmartsParser::SPBond SPBond
Edge representation of the smarts parser graph.
class which does the pool operations of the RecStructCore_ pool
a wrapper class which is used as an interface in the matching code to the pool
std::vector< std::set< const Atom * > > & matched_atoms
reference to the matched atoms in the core structure
SmartsParser::SPNode SPNode
std::vector< std::set< const Atom * > > & visited_atoms
reference to the visited atoms in the core structure