![]() |
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. More... | |
| template<typename T > | |
| RDKit::INT_VECT | lazyPick (T &func, unsigned int poolSize, unsigned int pickSize, RDKit::INT_VECT firstPicks=RDKit::INT_VECT(), int seed=-1) const |
| Contains the implementation for a lazy MaxMin diversity picker. More... | |
| 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. More... | |
| RDKit::INT_VECT | pick (const double *distMat, unsigned int poolSize, unsigned int pickSize) const |
Public Member Functions inherited from RDPickers::DistPicker | |
| DistPicker () | |
| Default constructor. More... | |
| 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 45 of file MaxMinPicker.h.
|
inline |
Default Constructor.
Definition at line 50 of file MaxMinPicker.h.
| RDKit::INT_VECT RDPickers::MaxMinPicker::lazyPick | ( | T & | func, |
| unsigned int | poolSize, | ||
| unsigned int | pickSize, | ||
| RDKit::INT_VECT | firstPicks = RDKit::INT_VECT(), |
||
| int | seed = -1 |
||
| ) | 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 |
Definition at line 129 of file MaxMinPicker.h.
References CHECK_INVARIANT, RDKit::feq(), and RDKit::MAX_DOUBLE.
|
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:
Set x = x + 1 and return to Step 2 if x < k.
| 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 |
Definition at line 109 of file MaxMinPicker.h.
References CHECK_INVARIANT.
|
inlinevirtual |
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 120 of file MaxMinPicker.h.