RDKit
Opensource 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*(poolSize1) 
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), 598604 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*(poolSize1) 
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.