IMP Reference Guide
develop.d97d4ead1f,2024/11/21
The Integrative Modeling Platform
|
Modify the transformation of a rigid body. More...
#include <IMP/core/RigidBodyTunneler.h>
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
Definition at line 46 of file RigidBodyTunneler.h.
Public Member Functions | |
RigidBodyTunneler (Model *m, ParticleIndexes pis, ParticleIndex ref, double k, double move_probability=1.) | |
void | add_entry_point (Floats fl) |
add entry point More... | |
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 override |
virtual ::IMP::VersionInfo | get_version_info () const override |
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 () |
Accept/commit 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... | |
Model * | get_model () const |
ModelObjectsTemp | get_outputs () const |
const ScoreStatesTemp & | get_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 override |
virtual MonteCarloMoverResult | do_propose () override |
Implement propose_move() More... | |
virtual void | do_reject () override |
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 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 () |
IMP::core::RigidBodyTunneler::RigidBodyTunneler | ( | Model * | m, |
ParticleIndexes | pis, | ||
ParticleIndex | ref, | ||
double | k, | ||
double | move_probability = 1. |
||
) |
Constructor
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 |
void IMP::core::RigidBodyTunneler::add_entry_point | ( | Floats | fl | ) |
add entry point
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
|
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.
|
overrideprotectedvirtual |
Implement propose_move()
Implements IMP::core::MonteCarloMover.
|
overrideprotectedvirtual |
Implement reset_proposed_move()
Implements IMP::core::MonteCarloMover.
|
static |
returns center of mass and quaternion of rotation wrt ref
|
static |
returns center of mass and quaternion of rotation of pi
|
overridevirtual |
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 |
sets rigid body coordinates in the reference frame of ref