#include <MaxMinPicker.h>

Public Member Functions | |
| MaxMinPicker () | |
| Default Constructor. | |
| template<typename T> | |
| RDKit::INT_VECT | lazyPick (T &func, unsigned int poolSize, unsigned int pickSize, RDKit::INT_VECT firstpicks=RDKit::INT_VECT()) const |
| Contains the implementation for a lazy MaxMin diversity picker. | |
| RDKit::INT_VECT | pick (const double *distMat, unsigned int poolSize, unsigned int pickSize, RDKit::INT_VECT firstPicks) const |
| Contains the implementation for the MaxMin diversity picker. | |
| RDKit::INT_VECT | pick (const double *distMat, unsigned int poolSize, unsigned int pickSize) const |
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 36 of file MaxMinPicker.h.
| RDPickers::MaxMinPicker::MaxMinPicker | ( | ) | [inline] |
| RDKit::INT_VECT RDPickers::MaxMinPicker::lazyPick | ( | T & | func, | |
| unsigned int | poolSize, | |||
| unsigned int | pickSize, | |||
| RDKit::INT_VECT | firstpicks = RDKit::INT_VECT() | |||
| ) | const [inline] |
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 |
Definition at line 109 of file MaxMinPicker.h.
References CHECK_INVARIANT, RDKit::feq(), RDKit::MAX_DOUBLE, and pick().
Referenced by pick().
| RDKit::INT_VECT RDPickers::MaxMinPicker::pick | ( | const double * | distMat, | |
| unsigned int | poolSize, | |||
| unsigned int | pickSize, | |||
| RDKit::INT_VECT | firstPicks | |||
| ) | const [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: 1. Initialise Subset with a randomly chosen seed compound and set x = 1. 2. For each of the N-x remaining compounds in Dataset calculate its dissimilarity with each of the x compounds in Subset and retain the smallest of these x dissimilarities for each compound in Dataset. 3. Select the molecule from Dataset with the largest value for the smallest dissimilarity calculated in Step 2 and transfer it to Subset. 4. 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. |
Definition at line 87 of file MaxMinPicker.h.
References CHECK_INVARIANT, and lazyPick().
Referenced by lazyPick(), and pick().
| RDKit::INT_VECT RDPickers::MaxMinPicker::pick | ( | const double * | distMat, | |
| unsigned int | poolSize, | |||
| unsigned int | pickSize | |||
| ) | const [inline, virtual] |
1.5.3