[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[IMP-dev] Samplers concept



We count use a sampler-level concept. The idea is to provide something higher level that takes a Model and produces a set of good scoring models for analysis. Examples would include:
- Domino
- a MC/CG scheme for optimizing sets of spheres (a premature version is in helpers)

Currently we have StructureSet which has the needed functionality and Domino which has some of it too.

I propose I add a base class to kernel which provides a sample method which returns a structure set and provides support for the types of filtering that is currently in StructureSet (eg only keep solutions with low scores and where restraint r is < 10). This would also require moving StructureSet to the kernel.

Something like:
class Sampler {
Sampler(Model *m);

// find structures to fill 
virtual StructureSet* sample();

// filtering methods moved from structure set

protected:
// adds the model to the set if it satisfies the filters
void add_model();

};

Adding the base class provides a place to put documentation for this level of interaction. It also would mean that Domino and the MC/CG protocols would automatically benefit from improvements in filtering and things as well as have more robust storage management (since handling changes to things other than optimized attributes can be tricky).

Thoughts/Comments?