IMP logo
IMP Reference Guide  develop.d247202c1c,2019/10/23
The Integrative Modeling Platform
IMP::core::ExcludedVolumeRestraint Class Reference

Prevent a set of particles and rigid bodies from inter-penetrating. More...

#include <IMP/core/ExcludedVolumeRestraint.h>

+ Inheritance diagram for IMP::core::ExcludedVolumeRestraint:

Detailed Description

Prevent a set of particles and rigid bodies from inter-penetrating.

Given an arbitrary collection of particles and rigid bodies, this restraint prevents the particles from interpenetrating. Such restraints are also known as steric clash restraints.

Note
Pairs of particles within a single rigid body are not restrained (and are ignored in the returned score).
See IMP::container::ClosePairContainer for more information about close pair based scoring functions and IMP.
Changing the set of particles in the SingletonContainer is not currently supported after the first evaluate call.

Definition at line 40 of file ExcludedVolumeRestraint.h.

Public Member Functions

 ExcludedVolumeRestraint (SingletonContainerAdaptor sc, double k=1, double slack=10, std::string name="ExcludedVolumeRestraint%1%")
 Construct an excluded volume restraint over a container of particles. More...
 
unsigned int add_pair_filter (PairPredicate *obj)
 
void add_pair_filters (const PairPredicates &objs)
 
void clear_caches ()
 
void clear_pair_filters ()
 
Restraints do_create_current_decomposition () const
 
Restraints do_create_decomposition () const
 
IMP::ModelObjectsTemp do_get_inputs () const
 
bool get_has_pair_filters ()
 
unsigned int get_number_of_pair_filters () const
 
PairPredicateget_pair_filter (unsigned int i) const
 
PairPredicates get_pair_filters () const
 
virtual std::string get_type_name () const
 
virtual ::IMP::VersionInfo get_version_info () const
 Get information about the module and version of the object. More...
 
void remove_pair_filter (PairPredicate *d)
 
void remove_pair_filters (const PairPredicates &d)
 
void reserve_pair_filters (unsigned int sz)
 
void set_pair_filters (const PairPredicates &ps)
 
void set_pair_filters_order (const PairPredicates &objs)
 
double unprotected_evaluate (IMP::DerivativeAccumulator *accum) const
 
- Public Member Functions inherited from IMP::Restraint
 Restraint (Model *m, std::string name)
 
void add_score_and_derivatives (ScoreAccumulator sa) const
 Perform the actual restraint scoring. More...
 
Restraintcreate_current_decomposition () const
 Decompose this restraint into constituent terms for the current conf. More...
 
Restraintcreate_decomposition () const
 Decompose this restraint into constituent terms. More...
 
virtual ScoringFunctioncreate_scoring_function (double weight=1.0, double max=NO_MAX) const
 Create a scoring function with only this restraint. More...
 
virtual RestraintInfoget_dynamic_info () const
 
virtual double get_last_score () const
 
double get_score () const
 
virtual RestraintInfoget_static_info () const
 
bool get_was_good () const
 
void set_weight (Float weight)
 
Float get_weight () const
 
double get_maximum_score () const
 
void set_maximum_score (double s)
 
- Public Member Functions inherited from IMP::ModelObject
 ModelObject (Model *m, std::string name)
 
bool get_has_dependencies () const
 Return whether this object has dependencies computed. More...
 
bool get_has_required_score_states () const
 Return whether score states are computed. More...
 
ModelObjectsTemp get_inputs () const
 
ModelObjectsTemps get_interactions () const
 Get the interacting sets induced by this ModelObject. More...
 
Modelget_model () const
 
ModelObjectsTemp get_outputs () const
 
const ScoreStatesTempget_required_score_states () const
 Get the score states that are ancestors of this in the dependency graph. More...
 
void set_has_dependencies (bool tf)
 Either invalidate the dependencies or ensure they are correct. More...
 
void set_has_required_score_states (bool tf)
 Compute the required score states. More...
 
- Public Member Functions inherited from IMP::Object
CheckLevel get_check_level () const
 
LogLevel get_log_level () const
 
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)
 

Additional Inherited Members

- Protected Member Functions inherited from IMP::Restraint
virtual void do_add_score_and_derivatives (ScoreAccumulator sa) const
 A restraint should override this to compute the score and derivatives. More...
 
ModelObjectsTemp do_get_outputs () const
 
- Protected Member Functions inherited from IMP::ModelObject
virtual ModelObjectsTemps do_get_interactions () const
 
virtual void handle_set_has_required_score_states (bool)
 
- Protected Member Functions inherited from IMP::Object
 Object (std::string name)
 Construct an object with the given name. More...
 
virtual void do_destroy ()
 

Constructor & Destructor Documentation

IMP::core::ExcludedVolumeRestraint::ExcludedVolumeRestraint ( SingletonContainerAdaptor  sc,
double  k = 1,
double  slack = 10,
std::string  name = "ExcludedVolumeRestraint%1%" 
)

Construct an excluded volume restraint over a container of particles.

Construct an excluded volume restraint over a container of XYZR and/or RigidMember particles with a lower-harmonic score on overlapping spheres. Formally, every two overlapping spheres contrinute k*D^2/2 to the restraint score (repulsion force of k*D), where D is the depth of the overlap between the two spheres. Non-overlapping spheres do not contribute to the score.

Parameters
sca SingletonContainer contains a set of XYZR particles and RigidMembers.
slackhow far in A the particles must move before the internal list of close pairs is computed (this list is used to efficiently detect clashing particles). It does not matter for correctness, just running time. You may want to fiddle with it or use the IMP::container::get_slack_estimate() function.
kthe spring constant used for the lower-harmonic score, in kcal/mol/A^2.
namethe object name

Member Function Documentation

void IMP::core::ExcludedVolumeRestraint::clear_caches ( )
virtual

Objects can have internal caches. This method resets them returning the object to its just-initialized state.

Reimplemented from IMP::Object.

Restraints IMP::core::ExcludedVolumeRestraint::do_create_current_decomposition ( ) const
virtual

A Restraint should override this if it wants to decompose itself for display and other purposes. The returned restraints will be made into a RestraintSet if needed, with suitable weight and maximum score.

The returned restraints should be only the non-zero terms and should have their last scores set appropriately.

Reimplemented from IMP::Restraint.

Restraints IMP::core::ExcludedVolumeRestraint::do_create_decomposition ( ) const
virtual

A Restraint should override this if it wants to decompose itself for domino and other purposes. The returned restraints will be made into a RestraintSet if needed, with suitable weight and maximum score.

Reimplemented from IMP::Restraint.

IMP::ModelObjectsTemp IMP::core::ExcludedVolumeRestraint::do_get_inputs ( ) const
virtual

Get any Particle, Container or other ModelObjects read by this during evaluation. If you read everything in a container, you can just return that container.

Implements IMP::ModelObject.

virtual ::IMP::VersionInfo IMP::core::ExcludedVolumeRestraint::get_version_info ( ) const
virtual

Get information about the module and version of the object.

Reimplemented from IMP::Object.

Definition at line 98 of file ExcludedVolumeRestraint.h.


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