IMP logo
IMP Reference Guide  2.7.0
The Integrative Modeling Platform
IMP::isd::GaussianEMRestraint Class Reference

Restraint between two Gaussian Mixture Models, "model" and "density". More...

#include <IMP/isd/GaussianEMRestraint.h>

+ Inheritance diagram for IMP::isd::GaussianEMRestraint:

Detailed Description

Restraint between two Gaussian Mixture Models, "model" and "density".

This restrains two sets of GMMs with a density overlap function. The function is correlation of the two GMMs \(f_M\) and \(f_D\):

\[ \frac{2\int{f_M(x)f_D(x)dx}}{\int{f_M^2(x)+f_D^2(x)dx}} \]

Where the integral is the "overlap function" given by:

\[ ov(f_M,f_D) = \sum_{i=1}^{N_M} \sum_{j=1}^{N_D} \frac{1}{(2 \pi)^{3/2}|\Sigma_{Mi}+\Sigma_{Dj}|^{1/2}}\exp\left [-\frac{1}{2}(\boldsymbol\mu_{Mi} - \boldsymbol\mu_{Dj})^\top (\Sigma_{Mi}+\Sigma_{Dj})^{-1} (\boldsymbol\mu_{Mi} - \boldsymbol \mu_{Dj})\right ] \]

Note
Source: Greenberg, Pellarin, Sali. In preparation.

Definition at line 40 of file GaussianEMRestraint.h.

Public Member Functions

 GaussianEMRestraint (Model *mdl, ParticleIndexes model_ps, ParticleIndexes density_ps, ParticleIndex global_sigma, Float model_cutoff_dist, Float density_cutoff_dist, Float slope, bool update_model=true, bool backbone_slope=false, bool local=false, std::string name="GaussianEMRestraint%1%")
 Setup the GaussianEMRestraint. More...
 
void compute_initial_scores ()
 Pre-calculate the density-density and model-model scores. More...
 
virtual IMP::ModelObjectsTemp do_get_inputs () const
 
double get_probability () const
 Returns exp(score) More...
 
Float get_slope ()
 Get restraint slope. More...
 
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 set_slope (Float s)
 Set restraint slope. More...
 
void show (std::ostream &out) const
 
virtual 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 double get_last_score () const
 
double get_score () 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
virtual void clear_caches ()
 
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...
 
virtual Restraints do_create_current_decomposition () const
 
virtual Restraints do_create_decomposition () const
 
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::isd::GaussianEMRestraint::GaussianEMRestraint ( Model mdl,
ParticleIndexes  model_ps,
ParticleIndexes  density_ps,
ParticleIndex  global_sigma,
Float  model_cutoff_dist,
Float  density_cutoff_dist,
Float  slope,
bool  update_model = true,
bool  backbone_slope = false,
bool  local = false,
std::string  name = "GaussianEMRestraint%1%" 
)

Setup the GaussianEMRestraint.

Parameters
[in]mdlthe Model object to operate on
[in]model_psparticles for the model GMM
[in]density_psparticles for the density GMM
[in]global_sigmaParticle to modulate the uncertainty
[in]model_cutoff_distCutoff for the model-model interactions
[in]density_cutoff_distCutoff for model-density interactions
[in]slopeGentle term to move all particles to the density
[in]update_model(DEPRECATED) update model each cycle
[in]backbone_slopeLimit the slope only to backbone particles
[in]localOnly consider density particles that are within the specified cutoff of the model particles (experimental)
[in]nameName of this restraint
Note
the model and density particles must be set up as Gaussian

Member Function Documentation

void IMP::isd::GaussianEMRestraint::compute_initial_scores ( )

Pre-calculate the density-density and model-model scores.

This is automatically called by the constructor. You only need to call it manually if you change Gaussian variances.

virtual IMP::ModelObjectsTemp IMP::isd::GaussianEMRestraint::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.

double IMP::isd::GaussianEMRestraint::get_probability ( ) const

Returns exp(score)

Definition at line 70 of file GaussianEMRestraint.h.

Float IMP::isd::GaussianEMRestraint::get_slope ( )

Get restraint slope.

Definition at line 84 of file GaussianEMRestraint.h.

virtual ::IMP::VersionInfo IMP::isd::GaussianEMRestraint::get_version_info ( ) const
virtual

Get information about the module and version of the object.

Reimplemented from IMP::Object.

Definition at line 89 of file GaussianEMRestraint.h.

void IMP::isd::GaussianEMRestraint::set_slope ( Float  s)

Set restraint slope.

Definition at line 81 of file GaussianEMRestraint.h.


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