RDKit
Open-source cheminformatics and machine learning.
RDKit::EnumerationStrategyBase Class Referenceabstract

#include <EnumerationStrategyBase.h>

Inheritance diagram for RDKit::EnumerationStrategyBase:
RDKit::CartesianProductStrategy RDKit::EvenSamplePairsStrategy RDKit::RandomSampleAllBBsStrategy RDKit::RandomSampleStrategy

Public Member Functions

 EnumerationStrategyBase ()
 
virtual ~EnumerationStrategyBase ()
 
virtual const char * type () const
 
void initialize (const ChemicalReaction &reaction, const EnumerationTypes::BBS &building_blocks)
 
virtual void initializeStrategy (const ChemicalReaction &reaction, const EnumerationTypes::BBS &building_blocks)=0
 
virtual operator bool () const =0
 
virtual const EnumerationTypes::RGROUPSnext ()=0
 The current permutation {r1, r2, ...}. More...
 
virtual EnumerationStrategyBasecopy () const =0
 copy the enumeration strategy complete with current state More...
 
const EnumerationTypes::RGROUPSgetPosition () const
 The current position in the enumeration. More...
 
boost::uint64_t getNumPermutations () const
 
virtual boost::uint64_t getPermutationIdx () const =0
 Returns how many permutations have been processed by this strategy. More...
 
bool skip (boost::uint64_t skipCount)
 

Static Public Attributes

static const boost::uint64_t EnumerationOverflow
 

Protected Member Functions

void internalInitialize (const EnumerationTypes::RGROUPS &rgroups)
 

Protected Attributes

EnumerationTypes::RGROUPS m_permutation
 
EnumerationTypes::RGROUPS m_permutationSizes
 
boost::uint64_t m_numPermutations
 

Friends

class boost::serialization::access
 

Detailed Description

Base Class for enumeration strageties Usage: EnumerationStrategyBase must be initialized with both a reaction and the building block (molecule) vector to be sampled.

//!  EnumerationStrategyBase &eb = ...
//!   if(eb) { // can we get another entry
//!    const std::vector<int> &v = eb.next();
//!    v[0] // RGroup 0 position
//!    v[1] // RGroup 1 position...
//!   }
//!  

Definition at line 120 of file EnumerationStrategyBase.h.

Constructor & Destructor Documentation

◆ EnumerationStrategyBase()

RDKit::EnumerationStrategyBase::EnumerationStrategyBase ( )
inline

Definition at line 131 of file EnumerationStrategyBase.h.

◆ ~EnumerationStrategyBase()

virtual RDKit::EnumerationStrategyBase::~EnumerationStrategyBase ( )
inlinevirtual

Definition at line 134 of file EnumerationStrategyBase.h.

Member Function Documentation

◆ copy()

virtual EnumerationStrategyBase* RDKit::EnumerationStrategyBase::copy ( ) const
pure virtual

copy the enumeration strategy complete with current state

Implemented in RDKit::EvenSamplePairsStrategy, RDKit::RandomSampleAllBBsStrategy, RDKit::RandomSampleStrategy, and RDKit::CartesianProductStrategy.

◆ getNumPermutations()

boost::uint64_t RDKit::EnumerationStrategyBase::getNumPermutations ( ) const
inline

a result of EnumerationOverflow indicates that the number of permutations is not computable with the current rdlonglong size.

Definition at line 176 of file EnumerationStrategyBase.h.

◆ getPermutationIdx()

virtual boost::uint64_t RDKit::EnumerationStrategyBase::getPermutationIdx ( ) const
pure virtual

Returns how many permutations have been processed by this strategy.

Implemented in RDKit::EvenSamplePairsStrategy, RDKit::RandomSampleAllBBsStrategy, RDKit::RandomSampleStrategy, and RDKit::CartesianProductStrategy.

◆ getPosition()

const EnumerationTypes::RGROUPS& RDKit::EnumerationStrategyBase::getPosition ( ) const
inline

The current position in the enumeration.

Definition at line 171 of file EnumerationStrategyBase.h.

◆ initialize()

void RDKit::EnumerationStrategyBase::initialize ( const ChemicalReaction reaction,
const EnumerationTypes::BBS building_blocks 
)
inline

Initialize the enumerator based on the reaction and the supplied building blocks This is the standard API point.

Definition at line 141 of file EnumerationStrategyBase.h.

References RDKit::computeNumProducts(), and RDKit::getSizesFromBBs().

◆ initializeStrategy()

virtual void RDKit::EnumerationStrategyBase::initializeStrategy ( const ChemicalReaction reaction,
const EnumerationTypes::BBS building_blocks 
)
pure virtual

◆ internalInitialize()

void RDKit::EnumerationStrategyBase::internalInitialize ( const EnumerationTypes::RGROUPS rgroups)
inlineprotected

Initialize the internal data structures i.e. RGROUPS = {10,40,50};

Definition at line 191 of file EnumerationStrategyBase.h.

References RDKit::computeNumProducts().

◆ next()

virtual const EnumerationTypes::RGROUPS& RDKit::EnumerationStrategyBase::next ( )
pure virtual

◆ operator bool()

virtual RDKit::EnumerationStrategyBase::operator bool ( ) const
pure virtual

returns true if there are more permutations left random enumerators may always return true...

Implemented in RDKit::EvenSamplePairsStrategy, RDKit::RandomSampleAllBBsStrategy, RDKit::RandomSampleStrategy, and RDKit::CartesianProductStrategy.

◆ skip()

bool RDKit::EnumerationStrategyBase::skip ( boost::uint64_t  skipCount)
inline

Skip the specified number of permutations (useful for resetting state to a known position)

Definition at line 183 of file EnumerationStrategyBase.h.

◆ type()

virtual const char* RDKit::EnumerationStrategyBase::type ( ) const
inlinevirtual

Friends And Related Function Documentation

◆ boost::serialization::access

friend class boost::serialization::access
friend

Definition at line 199 of file EnumerationStrategyBase.h.

Member Data Documentation

◆ EnumerationOverflow

const boost::uint64_t RDKit::EnumerationStrategyBase::EnumerationOverflow
static
Initial value:
=
static_cast<boost::uint64_t>(-1)

Definition at line 129 of file EnumerationStrategyBase.h.

◆ m_numPermutations

boost::uint64_t RDKit::EnumerationStrategyBase::m_numPermutations
protected

Definition at line 126 of file EnumerationStrategyBase.h.

◆ m_permutation

EnumerationTypes::RGROUPS RDKit::EnumerationStrategyBase::m_permutation
protected

Definition at line 122 of file EnumerationStrategyBase.h.

◆ m_permutationSizes

EnumerationTypes::RGROUPS RDKit::EnumerationStrategyBase::m_permutationSizes
protected

Definition at line 124 of file EnumerationStrategyBase.h.


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