IMP Reference Guide  2.5.0 The Integrative Modeling Platform
IMP::core::RigidBodyTunneler Class Reference

Modify the transformation of a rigid body. More...

#include <IMP/core/RigidBodyTunneler.h>

Inheritance diagram for IMP::core::RigidBodyTunneler:

Detailed Description

Modify the transformation of a rigid body.

Provided a number of entry points, this mover will propose random translations of the rigid body from the closest entry point to a randomly chosen other one. Moves that do not end up in the target exit area will be dropped. This way of moving thus satisfies detailed balance. Entry points are relative to the center of the provided reference rigid body.

The procedure is as follows. Suppose we are at x. pick closest entry point to x: k do pick random other entry point if one is still available: l compute new position y by applying to x the transform that maps k to l while (closest entry point to y is not l) if (closest entry point to y is l) propose y as move else do nothing

RigidBodyMover
MonteCarlo

Definition at line 46 of file RigidBodyTunneler.h.

Public Member Functions

RigidBodyTunneler (Model *m, ParticleIndexes pis, ParticleIndex ref, double k, double move_probability=1.)

unsigned get_number_of_calls () const

unsigned get_number_of_impossible_moves () const

unsigned get_number_of_proposed_moves () const

unsigned get_number_of_rejected_moves () 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 reset_stats ()
Statistics. More...

Public Member Functions inherited from IMP::core::MonteCarloMover
MonteCarloMover (Model *m, std::string name)

void accept ()
Roll back any changes made to the Particles. More...

MonteCarloMoverResult propose ()
propose a modification More...

void reject ()
Roll back any changes made to the Particles. More...

unsigned int get_number_of_proposed () const

unsigned int get_number_of_accepted () const

void reset_statistics ()

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)

Static Public Member Functions

static Floats get_reduced_coordinates (Model *m, ParticleIndex target, ParticleIndex ref)
returns center of mass and quaternion of rotation wrt ref More...

static Floats get_reduced_coordinates (Model *m, ParticleIndex pi)
returns center of mass and quaternion of rotation of pi More...

static void set_reduced_coordinates (Model *m, ParticleIndex target, ParticleIndex ref, Floats coords)
sets rigid body coordinates in the reference frame of ref More...

Protected Member Functions

virtual ModelObjectsTemp do_get_inputs () const

virtual MonteCarloMoverResult do_propose ()
Implement propose_move() More...

virtual void do_reject ()
Implement reset_proposed_move() More...

Protected Member Functions inherited from IMP::core::MonteCarloMover
virtual void do_accept ()
Implement accept_proposed_move(), default implementation is empty. More...

virtual 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::RigidBodyTunneler::RigidBodyTunneler ( Model * m, ParticleIndexes pis, ParticleIndex ref, double k, double move_probability = 1. )

Constructor

Parameters
 m the model pis the rigid bodies to move, in order ref the RigidBody reference k the weight when calculating distances The squared distance between two coordinates is $$d^2_\text{eucl}(COM1,COM2) + k*d^2_\text{quat}(Q1,Q2)$$ If you want to weight rotation differences at the same level as translational ones, pick $$k \simeq d_\text{max}/\pi$$ where $$d_\text{max}$$ is the largest translational difference to be expected. move_probability the prior probability to actually move somewhere else

Member Function Documentation

 void IMP::core::RigidBodyTunneler::add_entry_point ( Floats fl )

each entry point is a list of coordinates that matches the number of rigid bodies in pis (see constructor) If there are N rigid bodies in pis, then an entry point is

• 3N floats, representing the x,y,z coordinates of the centroid of each of the N rigid bodies
• 4N floats, corresponding to the N rotational quaternions of the rbs Coordinates are all relative to the reference, i.e. for which the centroid is at the origin and the rotation is identity. TODO: If an entry point should be indifferent of one rigid body, one centroid or one quaternion, the corresponding floats should be set to zero.
 virtual ModelObjectsTemp IMP::core::RigidBodyTunneler::do_get_inputs ( ) const
protectedvirtual

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 MonteCarloMoverResult IMP::core::RigidBodyTunneler::do_propose ( )
protectedvirtual

Implement propose_move()

Implements IMP::core::MonteCarloMover.

 virtual void IMP::core::RigidBodyTunneler::do_reject ( )
protectedvirtual

Implement reset_proposed_move()

Implements IMP::core::MonteCarloMover.

 static Floats IMP::core::RigidBodyTunneler::get_reduced_coordinates ( Model * m, ParticleIndex target, ParticleIndex ref )
static

returns center of mass and quaternion of rotation wrt ref

 static Floats IMP::core::RigidBodyTunneler::get_reduced_coordinates ( Model * m, ParticleIndex pi )
static

returns center of mass and quaternion of rotation of pi

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

Get information about the module and version of the object.

Reimplemented from IMP::Object.

Definition at line 106 of file RigidBodyTunneler.h.

 void IMP::core::RigidBodyTunneler::reset_stats ( )

Statistics.

 static void IMP::core::RigidBodyTunneler::set_reduced_coordinates ( Model * m, ParticleIndex target, ParticleIndex ref, Floats coords )
static

sets rigid body coordinates in the reference frame of ref

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