IMP logo
IMP Reference Guide  2.20.1
The Integrative Modeling Platform
IMP::domino::DiscreteSampler Class Referenceabstract

A base class for discrete samplers in Domino2. More...

#include <IMP/domino/DiscreteSampler.h>

+ Inheritance diagram for IMP::domino::DiscreteSampler:

Detailed Description

A base class for discrete samplers in Domino2.

All the samplers derived from it share some common properties:

  • each particle is allowed to have one of a discrete set of conformations, as stored in a ParticleStatesTable
  • there is, optionally, one scoring function, accessed through the SubsetEvaluatorTable
  • there can be many SubsetFilterTable objects which are used to prune the discrete space.

Defaults are provided for all the parameters:

Note
the restraint scores must be non-negative in general. If you are using restraints which can produce negative values, we can provide a restraint which wraps another and makes it non-negative. Ping us.
The discrete samplers enumerate all acceptable conformations. As a result, users should take care to remove uninteresting degrees of freedom (for example, remove rigid transformations of a complex). Techniques to do this can involve pinning one or more particles (by locking them to a single conformation or to a few degrees of freedom).

Definition at line 50 of file DiscreteSampler.h.

Public Member Functions

 DiscreteSampler (Model *m, ParticleStatesTable *pst, std::string name)
 
unsigned int get_maximum_number_of_assignments () const
 
Assignments get_sample_assignments (const Subset &s) const
 
void set_maximum_number_of_assignments (unsigned int mx)
 
void set_particle_states (Particle *p, ParticleStates *se)
 
void set_restraints (RestraintsAdaptor rs)
 Set the Restraints to use in the RestraintScoreSubsetFilterTable. More...
 
- Public Member Functions inherited from IMP::Sampler
 Sampler (Model *m, std::string name="Sampler %1%")
 
ConfigurationSetcreate_sample () const
 
Modelget_model () const
 
ScoringFunctionget_scoring_function () const
 Return the scoring function that is being used. More...
 
void set_scoring_function (ScoringFunctionAdaptor sf)
 
- Public Member Functions inherited from IMP::Object
virtual void clear_caches ()
 
CheckLevel get_check_level () const
 
LogLevel get_log_level () const
 
virtual VersionInfo get_version_info () const
 Get information about the module and version of the object. More...
 
void set_check_level (CheckLevel l)
 
void set_log_level (LogLevel l)
 Set the logging level used in this object. More...
 
void set_was_used (bool tf) const
 
void show (std::ostream &out=std::cout) const
 
const std::string & get_name () const
 
void set_name (std::string name)
 
virtual std::string get_type_name () const
 

Protected Member Functions

virtual Assignments do_get_sample_assignments (const Subset &all) const =0
 
virtual ConfigurationSetdo_sample () const override
 
AssignmentsTableget_assignments_table_to_use (const SubsetFilterTables &sfts, unsigned int max=std::numeric_limits< int >::max()) const
 
RestraintsTemp get_restraints () const
 
SubsetFilterTables get_subset_filter_tables_to_use (const RestraintsTemp &rs, ParticleStatesTable *pst) const
 
- Protected Member Functions inherited from IMP::Object
 Object (std::string name)
 Construct an object with the given name. More...
 
virtual void do_destroy ()
 

Advanced

Default values are provided, you only need to replace these if you want to do something special. See the overview of the module for a general description.

list subset_filter_tables
 A Python list of SubsetFilterTables More...
 
void set_particle_states_table (ParticleStatesTable *cse)
 
void set_assignments_table (AssignmentsTable *sst)
 
ParticleStatesTableget_particle_states_table () const
 
void remove_subset_filter_table (SubsetFilterTable *d)
 
void remove_subset_filter_tables (const SubsetFilterTables &d)
 
void set_subset_filter_tables (const SubsetFilterTables &ps)
 
void set_subset_filter_tables_order (const SubsetFilterTables &objs)
 
unsigned int add_subset_filter_table (SubsetFilterTable *obj)
 
void add_subset_filter_tables (const SubsetFilterTables &objs)
 
void clear_subset_filter_tables ()
 
unsigned int get_number_of_subset_filter_tables () const
 
bool get_has_subset_filter_tables ()
 
SubsetFilterTableget_subset_filter_table (unsigned int i) const
 
SubsetFilterTables get_subset_filter_tables () const
 
void erase_subset_filter_table (unsigned int i)
 
void reserve_subset_filter_tables (unsigned int sz)
 

Member Function Documentation

Assignments IMP::domino::DiscreteSampler::get_sample_assignments ( const Subset s) const

Return the Assignment objects describing the subsets fitting the description.

Note
At the moment, Subset must be equal to Subset(ParticleStatesTable::get_particles()).
void IMP::domino::DiscreteSampler::set_maximum_number_of_assignments ( unsigned int  mx)

Limit the number of states that is ever produced for any set of particles.

Doing this can be useful to get some feedback when too many states would otherwise be produced. A warning will be emitted whenever the limit eliminates states.

Definition at line 128 of file DiscreteSampler.h.

void IMP::domino::DiscreteSampler::set_particle_states ( Particle p,
ParticleStates se 
)

Particle states can be set either using this method, or equivalently, by accessing the table itself using get_particle_states_table(). This method is provided for users who want to use the default values and want a simple interface.

Definition at line 94 of file DiscreteSampler.h.

void IMP::domino::DiscreteSampler::set_restraints ( RestraintsAdaptor  rs)

Set the Restraints to use in the RestraintScoreSubsetFilterTable.

The default RestraintScoreSubsetFilterTable filters based on a set of Restraints, which can be set here.

Definition at line 84 of file DiscreteSampler.h.

Member Data Documentation

list IMP::domino::DiscreteSampler::subset_filter_tables

A Python list of SubsetFilterTables

Note
This class member is only available in Python.

Definition at line 118 of file DiscreteSampler.h.


The documentation for this class was generated from the following file: