RDKit
Open-source cheminformatics and machine learning.
RDKit::RecursiveStructureQuery Class Reference

allows use of recursive structure queries (e.g. recursive SMARTS) More...

#include <QueryOps.h>

Inheritance diagram for RDKit::RecursiveStructureQuery:
Queries::SetQuery< int, Atom const *, true > Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >

Public Member Functions

 RecursiveStructureQuery ()
 
 RecursiveStructureQuery (ROMol const *query, unsigned int serialNumber=0)
 initialize from an ROMol pointer More...
 
void setQueryMol (ROMol const *query)
 sets the molecule we'll use recursively More...
 
ROMol const * getQueryMol () const
 returns a pointer to our query molecule More...
 
Queries::Query< int, Atom const *, true > * copy () const override
 returns a copy of this query More...
 
unsigned int getSerialNumber () const
 
- Public Member Functions inherited from Queries::SetQuery< int, Atom const *, true >
 SetQuery ()
 
void insert (const int what)
 insert an entry into our set More...
 
void clear ()
 clears our set More...
 
bool Match (const Atom const * what) const override
 
Query< int, Atom const *, needsConversion > * copy () const override
 returns a copy of this Query More...
 
CONTAINER_TYPE::const_iterator beginSet () const
 
CONTAINER_TYPE::const_iterator endSet () const
 
unsigned int size () const
 
std::string getFullDescription () const override
 returns a fuller text description More...
 
- Public Member Functions inherited from Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >
 Query ()
 
virtual ~Query ()
 
void setNegation (bool what)
 sets whether or not we are negated More...
 
bool getNegation () const
 returns whether or not we are negated More...
 
void setDescription (const std::string &descr)
 sets our text description More...
 
void setDescription (const char *descr)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
const std::string & getDescription () const
 returns our text description More...
 
void setTypeLabel (const std::string &typ)
 sets our type label More...
 
void setTypeLabel (const char *typ)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
const std::string & getTypeLabel () const
 returns our text label. More...
 
void setMatchFunc (bool(*what)(MatchFuncArgType))
 sets our match function More...
 
void setDataFunc (MatchFuncArgType(*what)(DataFuncArgType))
 sets our data function More...
 
void addChild (CHILD_TYPE child)
 adds a child to our list of children More...
 
CHILD_VECT_CI beginChildren () const
 returns an iterator for the beginning of our child vector More...
 
CHILD_VECT_CI endChildren () const
 returns an iterator for the end of our child vector More...
 
virtual bool Match (const DataFuncArgType arg) const
 returns whether or not we match the argument More...
 

Static Public Member Functions

static int getAtIdx (Atom const *at)
 returns the index of an atom More...
 

Additional Inherited Members

- Public Types inherited from Queries::SetQuery< int, Atom const *, true >
typedef std::set< int > CONTAINER_TYPE
 
- Public Types inherited from Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >
using CHILD_TYPE = std::shared_ptr< Query< MatchFuncArgType, DataFuncArgType, needsConversion > >
 
using CHILD_VECT = std::vector< CHILD_TYPE >
 
using CHILD_VECT_I = typename CHILD_VECT::iterator
 
using CHILD_VECT_CI = typename CHILD_VECT::const_iterator
 
using MATCH_FUNC_ARG_TYPE = MatchFuncArgType
 
using DATA_FUNC_ARG_TYPE = DataFuncArgType
 
- Public Attributes inherited from Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >
bool(*)(MatchFuncArgType) getMatchFunc () const
 returns our match function: More...
 
MatchFuncArgType(*)(DataFuncArgType) getDataFunc () const
 returns our data function: More...
 
- Protected Member Functions inherited from Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >
MatchFuncArgType TypeConvert (MatchFuncArgType what, Int2Type< false >) const
 calls our dataFunc (if it's set) on what and returns the result, otherwise returns what More...
 
MatchFuncArgType TypeConvert (DataFuncArgType what, Int2Type< true >) const
 
- Protected Attributes inherited from Queries::SetQuery< int, Atom const *, true >
CONTAINER_TYPE d_set
 
- Protected Attributes inherited from Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >
MatchFuncArgType d_val = 0
 
MatchFuncArgType d_tol = 0
 
std::string d_description = ""
 
std::string d_queryType = ""
 
CHILD_VECT d_children
 
bool df_negate {false}
 
bool(* d_matchFunc )(MatchFuncArgType)
 
union {
   MatchFuncArgType(*   d_dataFunc )(DataFuncArgType)
 
   MatchFuncArgType(*   d_dataFuncSameType )(MatchFuncArgType)
 
}; 
 

Detailed Description

allows use of recursive structure queries (e.g. recursive SMARTS)

Definition at line 742 of file QueryOps.h.

Constructor & Destructor Documentation

◆ RecursiveStructureQuery() [1/2]

RDKit::RecursiveStructureQuery::RecursiveStructureQuery ( )
inline

Definition at line 745 of file QueryOps.h.

◆ RecursiveStructureQuery() [2/2]

RDKit::RecursiveStructureQuery::RecursiveStructureQuery ( ROMol const *  query,
unsigned int  serialNumber = 0 
)
inline

initialize from an ROMol pointer

Notes

  • this takes over ownership of the pointer

Definition at line 754 of file QueryOps.h.

Member Function Documentation

◆ copy()

◆ getAtIdx()

static int RDKit::RecursiveStructureQuery::getAtIdx ( Atom const *  at)
inlinestatic

returns the index of an atom

Definition at line 762 of file QueryOps.h.

References RDKit::Atom::getIdx(), and PRECONDITION.

◆ getQueryMol()

ROMol const* RDKit::RecursiveStructureQuery::getQueryMol ( ) const
inline

returns a pointer to our query molecule

Definition at line 774 of file QueryOps.h.

◆ getSerialNumber()

unsigned int RDKit::RecursiveStructureQuery::getSerialNumber ( ) const
inline

Definition at line 790 of file QueryOps.h.

◆ setQueryMol()

void RDKit::RecursiveStructureQuery::setQueryMol ( ROMol const *  query)
inline

sets the molecule we'll use recursively

Notes

  • this takes over ownership of the pointer

Definition at line 772 of file QueryOps.h.


The documentation for this class was generated from the following file: