RDKit: RDKit::RecursiveStructureQuery Class Reference

| RDKit Open-source cheminformatics and machine learning.

Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
RDKit::RecursiveStructureQuery Class Reference

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

`#include <QueryOps.h>`

Inheritance diagram for RDKit::RecursiveStructureQuery:

## Public Member Functions
| RecursiveStructureQuery ()
| RecursiveStructureQuery (ROMol const *query, unsigned int serialNumber=0)
| initialize from an ROMol pointer
void | setQueryMol (ROMol const *query)
| sets the molecule we'll use recursively
ROMol const * | getQueryMol () const
| returns a pointer to our query molecule
Queries::Query< int, Atom const *, true > * | copy () const override
| returns a copy of this query
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`
void | clear ()
| clears our `set`
bool | Match (const Atom const *what) const override
Query< int, Atom const *, needsConversion > * | copy () const override
| returns a copy of this Query
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
| SetQuery ()
void | insert (const int what)
| insert an entry into our `set`
void | clear ()
| clears our `set`
bool | Match (const Atom const *what) const override
Query< int, Atom const *, needsConversion > * | copy () const override
| returns a copy of this Query
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
Public Member Functions inherited from Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >
| Query ()
virtual | ~Query ()
void | setNegation (bool what)
| sets whether or not we are negated
bool | getNegation () const
| returns whether or not we are negated
void | setDescription (const std::string &descr)
| sets our text description
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.
const std::string & | getDescription () const
| returns our text description
void | setTypeLabel (const std::string &typ)
| sets our type label
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.
const std::string & | getTypeLabel () const
| returns our text label.
void | setMatchFunc (bool(*what)(MatchFuncArgType))
| sets our match function
void | setDataFunc (MatchFuncArgType(*what)(DataFuncArgType))
| sets our data function
void | addChild (CHILD_TYPE child)
| adds a child to our list of children
CHILD_VECT_CI | beginChildren () const
| returns an iterator for the beginning of our child vector
CHILD_VECT_CI | endChildren () const
| returns an iterator for the end of our child vector
virtual bool | Match (const DataFuncArgType arg) const
| returns whether or not we match the argument

## Static Public Member Functions
static int | getAtIdx (Atom const *at)
| returns the index of an atom

## Additional Inherited Members
Public Types inherited from Queries::SetQuery< int, Atom const *, true >
typedef std::set< int > | CONTAINER_TYPE
typedef std::set< int > | CONTAINER_TYPE
Public Types inherited from Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >
using | CHILD_TYPE
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:
MatchFuncArgType(*)(DataFuncArgType) | getDataFunc () const
| returns our data function:
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`
MatchFuncArgType | TypeConvert (DataFuncArgType what, Int2Type< true >) const
Protected Attributes inherited from Queries::SetQuery< int, Atom const *, true >
CONTAINER_TYPE | d_set
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 750 of file QueryOps.h.

## Constructor & Destructor Documentation

## ◆ RecursiveStructureQuery() [1/2]

RDKit::RecursiveStructureQuery::RecursiveStructureQuery | ( |  | ) |
| inline

Definition at line 753 of file QueryOps.h.

References getAtIdx(), Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::setDataFunc(), Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::setDescription(), and Queries::SetQuery< int, Atom const *, true >::SetQuery().

Referenced by copy().

## ◆ 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 762 of file QueryOps.h.

References getAtIdx(), Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::setDataFunc(), Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::setDescription(), Queries::SetQuery< int, Atom const *, true >::SetQuery(), and setQueryMol().

## Member Function Documentation

## ◆ copy()

Queries::Query< int, Atom const *, true > * RDKit::RecursiveStructureQuery::copy | ( |  | ) | const
| inlineoverridevirtual

returns a copy of this query

Reimplemented from Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >.

Definition at line 785 of file QueryOps.h.

References Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::d_description, Queries::SetQuery< int, Atom const *, true >::d_set, Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::getNegation(), Queries::SetQuery< MatchFuncArgType, DataFuncArgType, needsConversion >::insert(), RecursiveStructureQuery(), and Queries::Query< MatchFuncArgType, DataFuncArgType, needsConversion >::setNegation().

## ◆ getAtIdx()

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

returns the index of an atom

Definition at line 770 of file QueryOps.h.

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

Referenced by RecursiveStructureQuery(), and RecursiveStructureQuery().

## ◆ getQueryMol()

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

returns a pointer to our query molecule

Definition at line 782 of file QueryOps.h.

## ◆ getSerialNumber()

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

Definition at line 798 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 780 of file QueryOps.h.

Referenced by RecursiveStructureQuery().

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

- QueryOps.h