IMP logo
IMP Reference Guide  develop.27926d84dc,2024/04/18
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 () override
 
void clear_pair_filters ()
 
Restraints do_create_current_decomposition () const override
 
Restraints do_create_decomposition () const override
 
IMP::ModelObjectsTemp do_get_inputs () const override
 
void erase_pair_filter (unsigned int i)
 
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 override
 
virtual ::IMP::VersionInfo get_version_info () const override
 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 override
 Return the unweighted score for the restraint. More...
 
- Public Member Functions inherited from IMP::Restraint
 Restraint (Model *m, std::string name)
 Create a restraint and register it with the model. More...
 
 Restraint ()
 Default constructor. 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
 
bool get_is_aggregate () const
 Return whether this restraint wraps a number of other restraints. More...
 
double get_last_last_score () const
 Get the unweighted score from the last-but-one time it was evaluated. More...
 
virtual double get_last_score () const
 
double get_score () const
 
virtual RestraintInfoget_static_info () const
 
bool get_was_good () const
 
double evaluate (bool calc_derivs) const
 
double evaluate_moved (bool calc_derivs, const ParticleIndexes &moved_pis, const ParticleIndexes &reset_pis) const
 
double evaluate_moved_if_below (bool calc_derivatives, const ParticleIndexes &moved_pis, const ParticleIndexes &reset_pis, double max) const
 
double evaluate_moved_if_good (bool calc_derivatives, const ParticleIndexes &moved_pis, const ParticleIndexes &reset_pis) const
 
double evaluate_if_good (bool calc_derivatives) const
 
double evaluate_if_below (bool calc_derivatives, double max) const
 
virtual double unprotected_evaluate_moved (DerivativeAccumulator *da, const ParticleIndexes &moved_pis, const ParticleIndexes &reset_pis) const
 Return the unweighted score, taking moving particles into account. More...
 
virtual double unprotected_evaluate_if_good (DerivativeAccumulator *da, double max) const
 
virtual double unprotected_evaluate_if_below (DerivativeAccumulator *da, double max) const
 The function calling this will treat any score >= max as bad. More...
 
virtual double unprotected_evaluate_moved_if_below (DerivativeAccumulator *da, const ParticleIndexes &moved_pis, const ParticleIndexes &reset_pis, double max) const
 
virtual double unprotected_evaluate_moved_if_good (DerivativeAccumulator *da, const ParticleIndexes &moved_pis, const ParticleIndexes &reset_pis, double max) 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)
 

Public Attributes

list pair_filters
 A Python list of PairFilters More...
 

Additional Inherited Members

- Protected Member Functions inherited from IMP::Restraint
virtual void do_add_score_and_derivatives (ScoreAccumulator sa) const
 
virtual void do_add_score_and_derivatives_moved (ScoreAccumulator sa, const ParticleIndexes &moved_pis, const ParticleIndexes &reset_pis) const
 
ModelObjectsTemp do_get_outputs () const override
 
- 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 ()
 
- Protected Attributes inherited from IMP::Restraint
bool is_aggregate_
 

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 ( )
overridevirtual

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
overridevirtual

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
overridevirtual

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
overridevirtual

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
overridevirtual

Get information about the module and version of the object.

Reimplemented from IMP::Object.

Definition at line 98 of file ExcludedVolumeRestraint.h.

double IMP::core::ExcludedVolumeRestraint::unprotected_evaluate ( IMP::DerivativeAccumulator da) const
overridevirtual

Return the unweighted score for the restraint.

Reimplemented from IMP::Restraint.

Member Data Documentation

list IMP::core::ExcludedVolumeRestraint::pair_filters

A Python list of PairFilters

Note
This class member is only available in Python.

Definition at line 106 of file ExcludedVolumeRestraint.h.


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