RDKit
Open-source cheminformatics and machine learning.
|
Implements the MaxMin algorithm for picking a subset of item from a pool. More...
#include <MaxMinPicker.h>
Public Member Functions | |
MaxMinPicker () | |
Default Constructor. | |
template<typename T > | |
RDKit::INT_VECT | lazyPick (T &func, unsigned int poolSize, unsigned int pickSize) const |
Contains the implementation for a lazy MaxMin diversity picker. | |
template<typename T > | |
RDKit::INT_VECT | lazyPick (T &func, unsigned int poolSize, unsigned int pickSize, const RDKit::INT_VECT &firstPicks, int seed=-1) const |
template<typename T > | |
RDKit::INT_VECT | lazyPick (T &func, unsigned int poolSize, unsigned int pickSize, const RDKit::INT_VECT &firstPicks, int seed, double &threshold) const |
RDKit::INT_VECT | pick (const double *distMat, unsigned int poolSize, unsigned int pickSize, RDKit::INT_VECT firstPicks, int seed=-1) const |
Contains the implementation for the MaxMin diversity picker. | |
RDKit::INT_VECT | pick (const double *distMat, unsigned int poolSize, unsigned int pickSize) const override |
Public Member Functions inherited from RDPickers::DistPicker | |
DistPicker () | |
Default constructor. | |
virtual | ~DistPicker () |
Implements the MaxMin algorithm for picking a subset of item from a pool.
This class inherits from the DistPicker and implements a specific picking strategy aimed at diversity. See documentation for "pick()" member function for the algorithm details
Definition at line 35 of file MaxMinPicker.h.
|
inline |
Default Constructor.
Definition at line 40 of file MaxMinPicker.h.
RDKit::INT_VECT RDPickers::MaxMinPicker::lazyPick | ( | T & | func, |
unsigned int | poolSize, | ||
unsigned int | pickSize | ||
) | const |
Contains the implementation for a lazy MaxMin diversity picker.
See the documentation for the pick() method for details about the algorithm
func | - a function (or functor) taking two unsigned ints as arguments and returning the distance (as a double) between those two elements. |
poolSize | - the size of the pool to pick the items from. It is assumed that the distance matrix above contains the right number of elements; i.e. poolSize*(poolSize-1) |
pickSize | - the number items to pick from pool (<= poolSize) |
firstPicks | - (optional)the first items in the pick list |
seed | - (optional) seed for the random number generator. If this is <0 the generator will be seeded with a random number. |
Definition at line 293 of file MaxMinPicker.h.
References lazyPick().
Referenced by lazyPick(), and lazyPick().
RDKit::INT_VECT RDPickers::MaxMinPicker::lazyPick | ( | T & | func, |
unsigned int | poolSize, | ||
unsigned int | pickSize, | ||
const RDKit::INT_VECT & | firstPicks, | ||
int | seed, | ||
double & | threshold | ||
) | const |
Definition at line 144 of file MaxMinPicker.h.
References CHECK_INVARIANT, RDPickers::MaxMinPickInfo::dist_bound, RDPickers::MaxMinPickInfo::next, pick(), and RDPickers::MaxMinPickInfo::picks.
RDKit::INT_VECT RDPickers::MaxMinPicker::lazyPick | ( | T & | func, |
unsigned int | poolSize, | ||
unsigned int | pickSize, | ||
const RDKit::INT_VECT & | firstPicks, | ||
int | seed = -1 |
||
) | const |
Definition at line 283 of file MaxMinPicker.h.
References lazyPick().
|
inlineoverridevirtual |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Implements RDPickers::DistPicker.
Definition at line 128 of file MaxMinPicker.h.
|
inline |
Contains the implementation for the MaxMin diversity picker.
Here is how the picking algorithm works, refer to Ashton, M. et. al., Quant. Struct.-Act. Relat., 21 (2002), 598-604 for more detail:
A subset of k items is to be selected from a pool containing N molecules. Then the MaxMin method is as follows:
distMat | - distance matrix - a vector of double. It is assumed that only the lower triangle element of the matrix are supplied in a 1D array |
poolSize | - the size of the pool to pick the items from. It is assumed that the distance matrix above contains the right number of elements; i.e. poolSize*(poolSize-1) |
pickSize | - the number items to pick from pool (<= poolSize) |
firstPicks | - indices of the items used to seed the pick set. |
seed | - (optional) seed for the random number generator If this is <0 the generator will be seeded with a random number. |
Definition at line 113 of file MaxMinPicker.h.
References CHECK_INVARIANT.
Referenced by lazyPick().