Chemical Data Processing Library C++ API - Version 1.4.0
Classes | Public Types | Public Member Functions | List of all members
CDPL::Chem::ReactionSubstructureSearch Class Reference

Searches for substructures of the components of a target reaction that match a given query reaction pattern. More...

#include <ReactionSubstructureSearch.hpp>

Public Types

typedef boost::indirect_iterator< ABMappingList::iterator, AtomBondMappingMappingIterator
 A mutable random access iterator used to iterate over the stored Chem::AtomBondMapping mapping objects. More...
 
typedef boost::indirect_iterator< ABMappingList::const_iterator, const AtomBondMappingConstMappingIterator
 A constant random access iterator used to iterate over the stored const Chem::AtomBondMapping objects. More...
 

Public Member Functions

 ReactionSubstructureSearch ()
 Constructs and initializes the ReactionSubstructureSearch instance. More...
 
 ReactionSubstructureSearch (const Reaction &query)
 Constructs and initializes the ReactionSubstructureSearch instance for the specified query reaction pattern query. More...
 
 ReactionSubstructureSearch (const ReactionSubstructureSearch &)=delete
 
 ~ReactionSubstructureSearch ()
 Destructor. More...
 
ReactionSubstructureSearchoperator= (const ReactionSubstructureSearch &)=delete
 
void setQuery (const Reaction &query)
 Sets query as the new query reaction pattern. More...
 
bool mappingExists (const Reaction &target)
 Tells whether the query reaction pattern matches the target reaction target. More...
 
bool findMappings (const Reaction &target)
 Searches for all possible atom/bond mappings between the query reaction pattern and the target reaction target. More...
 
std::size_t getNumMappings () const
 Returns the number of atom/bond mappings that were recorded in the last call to findMappings(). More...
 
AtomBondMappinggetMapping (std::size_t idx)
 Returns a non-const reference to the stored atom/bond mapping object at index idx. More...
 
const AtomBondMappinggetMapping (std::size_t idx) const
 Returns a const reference to the stored atom/bond mapping object at index idx. More...
 
MappingIterator getMappingsBegin ()
 Returns a mutable iterator pointing to the beginning of the stored Chem::AtomBondMapping objects. More...
 
ConstMappingIterator getMappingsBegin () const
 Returns a constant iterator pointing to the beginning of the stored const Chem::AtomBondMapping objects. More...
 
MappingIterator getMappingsEnd ()
 Returns a mutable iterator pointing to the end of the stored Chem::AtomBondMapping objects. More...
 
ConstMappingIterator getMappingsEnd () const
 Returns a constant iterator pointing to the end of the stored const Chem::AtomBondMapping objects. More...
 
MappingIterator begin ()
 Returns a mutable iterator pointing to the beginning of the stored Chem::AtomBondMapping objects. More...
 
ConstMappingIterator begin () const
 Returns a constant iterator pointing to the beginning of the stored const Chem::AtomBondMapping objects. More...
 
MappingIterator end ()
 Returns a mutable iterator pointing to the end of the stored Chem::AtomBondMapping objects. More...
 
ConstMappingIterator end () const
 Returns a constant iterator pointing to the end of the stored const Chem::AtomBondMapping objects. More...
 
void uniqueMappingsOnly (bool unique)
 Allows to specify whether or not to store only unique atom/bond mappings. More...
 
bool uniqueMappingsOnly () const
 Tells whether duplicate atom/bond mappings are discarded. More...
 
void setMaxNumMappings (std::size_t max_num_mappings)
 Allows to specify a limit on the number of stored atom/bond mappings. More...
 
std::size_t getMaxNumMappings () const
 Returns the specified limit on the number of stored atom/bond mappings. More...
 
void setEnabledReactionRoles (unsigned int roles)
 Allows the reaction role specific exclusion of query and target components from the search for matching reaction substructures. More...
 
unsigned int getEnabledReactionRoles () const
 Tells which reaction component roles are considered in the search for matching reaction substructures. More...
 

Detailed Description

Searches for substructures of the components of a target reaction that match a given query reaction pattern.

Use setQuery() to fix the query reaction pattern and mappingExists() or findMappings() to evaluate it against a specified target Chem::Reaction instance. Found mappings are recorded as Chem::AtomBondMapping objects that can be accessed via index through the method getMapping() or iteration using the iterator pair returned by the methods begin() and end(), respectively. Component visibility based on reaction role is controlled with setEnabledReactionRoles() (see namespace Chem::ReactionRole). The search algorithm considers atom-, bond-, and reaction-level Chem::MatchExpression implementation instances attached to the query reaction and its components as corresponding property values (see Chem::SubstructureSearch and Chem::ReactionProperty::MATCH_EXPRESSION). The result set can be limited by the methods setMaxNumMappings() and uniqueMappingsOnly().

Member Typedef Documentation

◆ MappingIterator

typedef boost::indirect_iterator<ABMappingList::iterator, AtomBondMapping> CDPL::Chem::ReactionSubstructureSearch::MappingIterator

A mutable random access iterator used to iterate over the stored Chem::AtomBondMapping mapping objects.

◆ ConstMappingIterator

typedef boost::indirect_iterator<ABMappingList::const_iterator, const AtomBondMapping> CDPL::Chem::ReactionSubstructureSearch::ConstMappingIterator

A constant random access iterator used to iterate over the stored const Chem::AtomBondMapping objects.

Constructor & Destructor Documentation

◆ ReactionSubstructureSearch() [1/3]

CDPL::Chem::ReactionSubstructureSearch::ReactionSubstructureSearch ( )

Constructs and initializes the ReactionSubstructureSearch instance.

◆ ReactionSubstructureSearch() [2/3]

CDPL::Chem::ReactionSubstructureSearch::ReactionSubstructureSearch ( const Reaction query)

Constructs and initializes the ReactionSubstructureSearch instance for the specified query reaction pattern query.

Parameters
queryThe query reaction.

◆ ReactionSubstructureSearch() [3/3]

CDPL::Chem::ReactionSubstructureSearch::ReactionSubstructureSearch ( const ReactionSubstructureSearch )
delete

◆ ~ReactionSubstructureSearch()

CDPL::Chem::ReactionSubstructureSearch::~ReactionSubstructureSearch ( )

Destructor.

Destroys the ReactionSubstructureSearch instance and frees all allocated resources.

Member Function Documentation

◆ operator=()

ReactionSubstructureSearch& CDPL::Chem::ReactionSubstructureSearch::operator= ( const ReactionSubstructureSearch )
delete

◆ setQuery()

void CDPL::Chem::ReactionSubstructureSearch::setQuery ( const Reaction query)

Sets query as the new query reaction pattern.

Parameters
queryA reaction that represents the new query.

◆ mappingExists()

bool CDPL::Chem::ReactionSubstructureSearch::mappingExists ( const Reaction target)

Tells whether the query reaction pattern matches the target reaction target.

The method does not store any atom/bond mappings between the query and target reaction — it just tells if a complete mapping of the query is possible. If you need access to the atom/bond mappings, use findMappings() instead.

Parameters
targetThe target reaction that has to be searched for a match of the query.
Returns
true if the query matches the target reaction, and false otherwise.
Note
Any atom/bond mappings that were recorded in a previous call to findMappings() will be discarded.

◆ findMappings()

bool CDPL::Chem::ReactionSubstructureSearch::findMappings ( const Reaction target)

Searches for all possible atom/bond mappings between the query reaction pattern and the target reaction target.

The method will store all found atom/bond mapping solutions up to the maximum number of recorded mappings specified by setMaxNumMappings(). If only unique mappings have to be stored (see uniqueMappingsOnly(bool unique)), any duplicates of previously found mappings will be discarded.

Parameters
targetThe target reaction that has to be searched for matches of the query.
Returns
true if the query can be mapped to the specified target reaction, and false otherwise.
Note
Any atom/bond mappings that were recorded in a previous call to findMappings() will be discarded.

◆ getNumMappings()

std::size_t CDPL::Chem::ReactionSubstructureSearch::getNumMappings ( ) const

Returns the number of atom/bond mappings that were recorded in the last call to findMappings().

Returns
The number of atom/bond mappings that were recorded in the last call to findMappings().

◆ getMapping() [1/2]

AtomBondMapping& CDPL::Chem::ReactionSubstructureSearch::getMapping ( std::size_t  idx)

Returns a non-const reference to the stored atom/bond mapping object at index idx.

Parameters
idxThe zero-based index of the atom/bond mapping object to return.
Returns
A non-const reference to the Chem::AtomBondMapping object at index idx.
Exceptions
Base::IndexErrorif idx is not in the range [0, getNumMappings()).

◆ getMapping() [2/2]

const AtomBondMapping& CDPL::Chem::ReactionSubstructureSearch::getMapping ( std::size_t  idx) const

Returns a const reference to the stored atom/bond mapping object at index idx.

Parameters
idxThe zero-based index of the atom/bond mapping object to return.
Returns
A const reference to the Chem::AtomBondMapping object at index idx.
Exceptions
Base::IndexErrorif idx is not in the range [0, getNumMappings()).

◆ getMappingsBegin() [1/2]

MappingIterator CDPL::Chem::ReactionSubstructureSearch::getMappingsBegin ( )

Returns a mutable iterator pointing to the beginning of the stored Chem::AtomBondMapping objects.

Returns
A mutable iterator pointing to the beginning of the stored Chem::AtomBondMapping objects.

◆ getMappingsBegin() [2/2]

ConstMappingIterator CDPL::Chem::ReactionSubstructureSearch::getMappingsBegin ( ) const

Returns a constant iterator pointing to the beginning of the stored const Chem::AtomBondMapping objects.

Returns
A constant iterator pointing to the beginning of the stored const Chem::AtomBondMapping objects.

◆ getMappingsEnd() [1/2]

MappingIterator CDPL::Chem::ReactionSubstructureSearch::getMappingsEnd ( )

Returns a mutable iterator pointing to the end of the stored Chem::AtomBondMapping objects.

Returns
A mutable iterator pointing to the end of the stored Chem::AtomBondMapping objects.

◆ getMappingsEnd() [2/2]

ConstMappingIterator CDPL::Chem::ReactionSubstructureSearch::getMappingsEnd ( ) const

Returns a constant iterator pointing to the end of the stored const Chem::AtomBondMapping objects.

Returns
A constant iterator pointing to the end of the stored const Chem::AtomBondMapping objects.

◆ begin() [1/2]

MappingIterator CDPL::Chem::ReactionSubstructureSearch::begin ( )

Returns a mutable iterator pointing to the beginning of the stored Chem::AtomBondMapping objects.

Returns
A mutable iterator pointing to the beginning of the stored Chem::AtomBondMapping objects.

◆ begin() [2/2]

ConstMappingIterator CDPL::Chem::ReactionSubstructureSearch::begin ( ) const

Returns a constant iterator pointing to the beginning of the stored const Chem::AtomBondMapping objects.

Returns
A constant iterator pointing to the beginning of the stored const Chem::AtomBondMapping objects.

◆ end() [1/2]

MappingIterator CDPL::Chem::ReactionSubstructureSearch::end ( )

Returns a mutable iterator pointing to the end of the stored Chem::AtomBondMapping objects.

Returns
A mutable iterator pointing to the end of the stored Chem::AtomBondMapping objects.

◆ end() [2/2]

ConstMappingIterator CDPL::Chem::ReactionSubstructureSearch::end ( ) const

Returns a constant iterator pointing to the end of the stored const Chem::AtomBondMapping objects.

Returns
A constant iterator pointing to the end of the stored const Chem::AtomBondMapping objects.

◆ uniqueMappingsOnly() [1/2]

void CDPL::Chem::ReactionSubstructureSearch::uniqueMappingsOnly ( bool  unique)

Allows to specify whether or not to store only unique atom/bond mappings.

A mapping of the query to the target reaction is considered to be unique if it differs from all previously found mappings by at least one atom or bond. If the unique argument is true and a newly discovered mapping covers the same atoms and bonds of the target (including all permutations) as a mapping that was found earlier in the search process, it is considered as a duplicate and will be discarded.

Parameters
uniqueIf true, only unique mappings will be stored, and all found mappings otherwise.
Note
By default, duplicate mappings are not discarded.

◆ uniqueMappingsOnly() [2/2]

bool CDPL::Chem::ReactionSubstructureSearch::uniqueMappingsOnly ( ) const

Tells whether duplicate atom/bond mappings are discarded.

Returns
true if duplicate mappings are discarded, and false otherwise.
See also
uniqueMappingsOnly(bool unique)

◆ setMaxNumMappings()

void CDPL::Chem::ReactionSubstructureSearch::setMaxNumMappings ( std::size_t  max_num_mappings)

Allows to specify a limit on the number of stored atom/bond mappings.

In a call to findMappings() the reaction substructure search will terminate as soon as the specified maximum number of stored atom/bond mappings has been reached. A previously set limit on the number of mappings can be disabled by providing zero for the value of max_num_mappings.

Parameters
max_num_mappingsThe maximum number of atom/bond mappings to store.
Note
By default, no limit is imposed on the number of stored mappings.

◆ getMaxNumMappings()

std::size_t CDPL::Chem::ReactionSubstructureSearch::getMaxNumMappings ( ) const

Returns the specified limit on the number of stored atom/bond mappings.

Returns
The specified maximum number of stored atom/bond mappings.
See also
setMaxNumMappings(), findMappings()

◆ setEnabledReactionRoles()

void CDPL::Chem::ReactionSubstructureSearch::setEnabledReactionRoles ( unsigned int  roles)

Allows the reaction role specific exclusion of query and target components from the search for matching reaction substructures.

The roles argument is a bitwise-OR combination of the flags defined in namespace Chem::ReactionRole. When the flag for a particular reaction role is missing in the provided bitmask then all reaction components with this role assignment (both in the query and target reaction) will be simply ignored during the reaction substructure search. This has the same effect as 'removing' the affected components from the query and target reaction prior to starting the search and adding them again afterwards.

Parameters
rolesA bitmask specifying the non-excluded reaction component roles.
Note
By default, all types of reaction components are considered.

◆ getEnabledReactionRoles()

unsigned int CDPL::Chem::ReactionSubstructureSearch::getEnabledReactionRoles ( ) const

Tells which reaction component roles are considered in the search for matching reaction substructures.

Returns
A bitmask specifying the considered reaction component roles.
See also
setEnabledReactionRoles(), Chem::ReactionRole

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