 IMP Reference Guide  develop.a3ebfe92e8,2023/01/27 The Integrative Modeling Platform
IMP::core::RigidBodyUmbrella Class Reference

Umbrella-like restraint for rigid bodies. More...

#include <IMP/core/RigidBodyUmbrella.h> Inheritance diagram for IMP::core::RigidBodyUmbrella:

## Detailed Description

Umbrella-like restraint for rigid bodies.

Let $$x$$ be the reduced coordinates (ie centroid+rotation) of some rigid body, relative to a reference rigid body. Let $$x_0$$ be the center of the umbrella. Then the restraint score is

$E(x) = \frac{\alpha}{2} d^2(x,x_0)$

$$d$$ is the distance between x and x_0

$d^2(x,x_0) = d^2_\text{eucl}(COM,COM_0) + k*d^2_\text{quat}(Q,Q_0)$

$$d_\text{eucl}$$ is the 3D euclidian distance $$d_\text{quat}$$ is the geodesic distance between two rotations, i.e. the angle of the rotation $$Q\cdot Q_0^{-1}$$

RigidBodyTunneler

Definition at line 38 of file RigidBodyUmbrella.h.

## Public Member Functions

RigidBodyUmbrella (Model *m, ParticleIndex pi, ParticleIndex ref, Floats x0, double alpha, double k, std::string name="RigidBodyUmbrella %1%")
Create the restraint by specifying $$x_0$$ directly. More...

RigidBodyUmbrella (Model *m, ParticleIndex pi, ParticleIndex ref, double lambda, Floats x1, Floats x2, double alpha, double k, std::string name="RigidBodyUmbrella %1%")
Create the restraint by specifying $$x_0$$ as a linear interpolation. More...

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...

Floats get_x () const

Floats get_x0 () const

void set_alpha (double alpha)

void set_k (double k)

void set_x0 (Floats x0)

void set_x0 (double lambda, Floats x1, Floats x2) Public Member Functions inherited from IMP::Restraint
Restraint (Model *m, std::string name)
Create a restraint and register it with the model. 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
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)

## Protected Member Functions

IMP::ModelObjectsTemp do_get_inputs () const override

double unprotected_evaluate (IMP::DerivativeAccumulator *accum) const override
Return the unweighted score for the restraint. More... 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

virtual Restraints do_create_current_decomposition () const

virtual Restraints do_create_decomposition () 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::RigidBodyUmbrella::RigidBodyUmbrella ( Model * m, ParticleIndex pi, ParticleIndex ref, Floats x0, double alpha, double k, std::string name = "RigidBodyUmbrella %1%" )

Create the restraint by specifying $$x_0$$ directly.

Parameters
 [in] m Model containing the ParticleIndexes. [in] pi rigid body particle index to restrain [in] ref rigid body particle index of reference [in] x0 $$x_0$$ the restraint center [in] alpha $$\alpha$$ restraint stiffness [in] k $$k$$ relative weight between centroid and quaternion restraints [in] name restraint name
 IMP::core::RigidBodyUmbrella::RigidBodyUmbrella ( Model * m, ParticleIndex pi, ParticleIndex ref, double lambda, Floats x1, Floats x2, double alpha, double k, std::string name = "RigidBodyUmbrella %1%" )

Create the restraint by specifying $$x_0$$ as a linear interpolation.

The restraint input is the triplet $$\lambda,x_1,x_2$$ with $$\lambda\in [0,1]$$ such that the restraint center is at

$x_0 = (1-\lambda) x_1 + \lambda x_2$

Parameters
 [in] m Model containing the ParticleIndexes. [in] pi rigid body particle index to restrain [in] ref rigid body particle index of reference [in] lambda $$\lambda$$ the restraint center [in] x1 $$x_1$$ the restraint center when $$\lambda=0$$ [in] x2 $$x_2$$ the restraint center when $$\lambda=1$$ [in] alpha $$\alpha$$ restraint stiffness [in] k $$k$$ relative weight between centroid and quaternion restraints [in] name restraint name

## Member Function Documentation

 IMP::ModelObjectsTemp IMP::core::RigidBodyUmbrella::do_get_inputs ( ) const
overrideprotectedvirtual

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::RigidBodyUmbrella::get_version_info ( ) const
overridevirtual

Get information about the module and version of the object.

Reimplemented from IMP::Object.

Definition at line 96 of file RigidBodyUmbrella.h.

 double IMP::core::RigidBodyUmbrella::unprotected_evaluate ( IMP::DerivativeAccumulator * da ) const
overrideprotectedvirtual

Return the unweighted score for the restraint.

Reimplemented from IMP::Restraint.

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