RDKit: RDKit::EnumerationStrategyBase Class Reference

| RDKit Open-source cheminformatics and machine learning.

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Friends | List of all members
RDKit::EnumerationStrategyBase Class Referenceabstract

`#include <EnumerationStrategyBase.h>`

Inheritance diagram for RDKit::EnumerationStrategyBase:

## 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::RGROUPS & | next ()=0
| The current permutation {r1, r2, ...}. More...
virtual EnumerationStrategyBase * | copy () const =0
| copy the enumeration strategy complete with current state More...
const EnumerationTypes::RGROUPS & | getPosition () 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

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

Definition at line 135 of file EnumerationStrategyBase.h.

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

Referenced by RDKit::CartesianProductStrategy::CartesianProductStrategy(), RDKit::RandomSampleAllBBsStrategy::RandomSampleAllBBsStrategy(), RDKit::RandomSampleStrategy::RandomSampleStrategy(), and RDKit::EvenSamplePairsStrategy::type().

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

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

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

The current permutation {r1, r2, ...}.

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

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

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

Definition at line 130 of file EnumerationStrategyBase.h.

## 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().

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

Definition at line 116 of file EnumerationStrategyBase.h.

Referenced by RDKit::CartesianProductStrategy::copy(), RDKit::RandomSampleAllBBsStrategy::initializeStrategy(), RDKit::CartesianProductStrategy::next(), RDKit::RandomSampleStrategy::next(), RDKit::RandomSampleAllBBsStrategy::next(), RDKit::RandomSampleAllBBsStrategy::RandomSampleAllBBsStrategy(), and RDKit::RandomSampleStrategy::RandomSampleStrategy().

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

Definition at line 118 of file EnumerationStrategyBase.h.

Referenced by RDKit::CartesianProductStrategy::copy(), RDKit::RandomSampleStrategy::copy(), RDKit::RandomSampleAllBBsStrategy::copy(), RDKit::RandomSampleStrategy::initializeStrategy(), RDKit::RandomSampleAllBBsStrategy::initializeStrategy(), and RDKit::RandomSampleAllBBsStrategy::next().

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

- EnumerationStrategyBase.h