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 114 of file EnumerationStrategyBase.h.

Constructor & Destructor Documentation

RDKit::EnumerationStrategyBase::EnumerationStrategyBase ( )
inline

Definition at line 125 of file EnumerationStrategyBase.h.

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

Definition at line 128 of file EnumerationStrategyBase.h.

Member Function Documentation

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.

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 170 of file EnumerationStrategyBase.h.

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.

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

The current position in the enumeration.

Definition at line 165 of file EnumerationStrategyBase.h.

void RDKit::EnumerationStrategyBase::initialize ( const ChemicalReaction reaction,
const EnumerationTypes::BBS building_blocks 
)
inline
virtual void RDKit::EnumerationStrategyBase::initializeStrategy ( const ChemicalReaction reaction,
const EnumerationTypes::BBS building_blocks 
)
pure virtual
void RDKit::EnumerationStrategyBase::internalInitialize ( const EnumerationTypes::RGROUPS rgroups)
inlineprotected

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

Definition at line 185 of file EnumerationStrategyBase.h.

References RDKit::computeNumProducts().

virtual const EnumerationTypes::RGROUPS& RDKit::EnumerationStrategyBase::next ( )
pure virtual
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.

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 177 of file EnumerationStrategyBase.h.

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

Friends And Related Function Documentation

friend class boost::serialization::access
friend

Definition at line 193 of file EnumerationStrategyBase.h.

Member Data Documentation

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

Definition at line 123 of file EnumerationStrategyBase.h.

Referenced by RDKit::CartesianProductStrategy::copy().

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

Definition at line 120 of file EnumerationStrategyBase.h.

Referenced by RDKit::CartesianProductStrategy::copy().


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