IMP logo
IMP Reference Guide  2.7.0
The Integrative Modeling Platform
IMP::kinematics Namespace Reference

Functionality for dealing with kinematic mechanical structures. More...

Detailed Description

Functionality for dealing with kinematic mechanical structures.

Tools for handling the associated internal coordinates system are also provided.

Please note that this module is still at an experimental testing phase and should be used with caution.

Overview

This module provides a variety of functionality for defining and controlling kinematic structures (chains, trees and forests) over sets of rigid body particles. The IMP::kinematics::KinematicForest data structure provides the high-level interface to define the kinematic structure over a set of particles and to control their associated internal coordinates system. The basic building block of a kinematic structures is a kinematic joint (also known in the literature as a 'kinematic pair'), represented in the abstract class IMP::kinematics::Joint. A kinematic joint connects a pair of rigid bodies. See Wikipedia for some background theory about kinematic joints. The kinematics module supports different types of joints (prismatic / revolute / etc.) that differ in the constraints on the degrees of freedom of the joint. For instance, a prismatic joint or a slider (IMP::kinematics::PrismaticJoint) allows the two rigid bodies to slide along a shared axis among them (one degree of freedom), whereas a revolute joint (IMP::kinematics::RevoluteJoints) allows only rotation about the shared axis (one degree of freedom). The library also contains composite joints (IMP::kinematics::CompositeJoint) which allows composing several joints over the same pair of rigid bodies.

Conventions

The name "Joint" is used to refer to a kinematic pair between two rigid bodies.

rrt_sample

Sample protein conformations using rapidly exploring random tree (RRT).

rrt_ccd

Sample protein loop conformations using rapidly exploring random tree (RRT).

rmsd_cluster

RMSD based clustering of conformations

For an example of using the rrt_sample command line tool, see the manual.

Info

Author(s): Dina Schneidman, Barak Raveh, Yannick Spill

Maintainer: duhovka, barakr

License: LGPL. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Classes

class  BondAngleRevoluteJoint
 Joint that is parameterized as a bond angle between three particles. More...
 
class  CCDLoopClosure
 CCD loop closure. More...
 
class  CompositeJoint
 Joint that combines several inner joints, acting on the same rigid body pair. More...
 
class  DihedralAngleRevoluteJoint
 Joint that is parameterized as a dihedral angle between two planes. More...
 
class  DirectionalDOF
 
class  DOF
 Represention of one degree of freedom (DOF). More...
 
class  DOFsSampler
 Base class for sampling certain combinations of degrees of freedom. More...
 
class  DOFValues
 A class that holds DOF values for DOFs. More...
 
class  Joint
 Base class for joints between rigid bodies in a kinematic tree. More...
 
class  KinematicForest
 Define and manipulate a kinematic structure over a model. More...
 
class  KinematicForestScoreState
 
class  KinematicNode
 A rigid body that is connected by a joint to other rigid bodies. More...
 
class  LocalPlanner
 
class  PathLocalPlanner
 Local planner that samples conformations on a path between two nodes. More...
 
class  PrismaticJoint
 Joint in which two rigid bodies may slide along a line. More...
 
class  ProteinKinematics
 Kinematic structure over a protein, with backbone and side chain dihedrals. More...
 
class  RevoluteJoint
 Abstract class for all revolute joints. More...
 
class  RevoluteJointMover
 Modify a set of joints using a normal distribution. More...
 
class  RRT
 Simple implementation of the Rapidly-exploring Random Trees algorithm. More...
 
class  TransformationJoint
 
class  UniformBackboneSampler
 Sample uniformly over a set of backbone dihedral joints. More...
 

Typedefs

typedef IMP::Vector
< IMP::Pointer
< BondAngleRevoluteJoint > > 
BondAngleRevolteJoints
 
typedef IMP::Vector
< IMP::WeakPointer
< BondAngleRevoluteJoint > > 
BondAngleRevolteJointsTemp
 
typedef IMP::Vector
< IMP::Pointer< CompositeJoint > > 
CompositeJoints
 
typedef IMP::Vector
< IMP::WeakPointer
< CompositeJoint > > 
CompositeJointsTemp
 
typedef IMP::Vector
< IMP::Pointer
< DihedralAngleRevoluteJoint > > 
DihedralAngleRevoluteJoints
 
typedef IMP::Vector
< IMP::WeakPointer
< DihedralAngleRevoluteJoint > > 
DihedralAngleRevoluteJointsTemp
 
typedef IMP::Vector
< DirectionalDOF
DirectionalDOFs
 
typedef IMP::Vector
< IMP::Pointer< DOF > > 
DOFs
 
typedef IMP::Vector
< IMP::Pointer< DOFsSampler > > 
DOFsSamplers
 
typedef IMP::Vector
< IMP::WeakPointer
< DOFsSampler > > 
DOFsSamplersTemp
 
typedef IMP::Vector
< IMP::WeakPointer< DOF > > 
DOFsTemp
 
typedef IMP::Vector< DOFValuesDOFValuesList
 
typedef boost::adjacency_list
< boost::vecS, boost::vecS,
boost::undirectedS > 
Graph
 
typedef IMP::Vector
< IMP::Pointer< Joint > > 
Joints
 
typedef IMP::Vector
< IMP::WeakPointer< Joint > > 
JointsTemp
 
typedef IMP::Vector
< IMP::Pointer
< KinematicForest > > 
KinematicForests
 
typedef IMP::Vector
< IMP::WeakPointer
< KinematicForest > > 
KinematicForestsTemp
 
typedef IMP::Vector
< KinematicNode
KinematicNodes
 
typedef IMP::Vector
< IMP::Pointer< LocalPlanner > > 
LocalPlanners
 
typedef IMP::Vector
< IMP::WeakPointer
< LocalPlanner > > 
LocalPlannersTemp
 
typedef IMP::Vector
< IMP::Pointer
< PathLocalPlanner > > 
PathLocalPlanners
 
typedef IMP::Vector
< IMP::WeakPointer
< PathLocalPlanner > > 
PathLocalPlannersTemp
 
typedef IMP::Vector
< IMP::Pointer< PrismaticJoint > > 
PrismaticJoints
 
typedef IMP::Vector
< IMP::WeakPointer
< PrismaticJoint > > 
PrismaticJointsTemp
 
typedef IMP::Vector
< IMP::Pointer< RevoluteJoint > > 
RevoluteJoints
 
typedef IMP::Vector
< IMP::WeakPointer
< RevoluteJoint > > 
RevoluteJointsTemp
 
typedef IMP::Vector
< IMP::Pointer
< TransformationJoint > > 
TransformationJoints
 
typedef IMP::Vector
< IMP::WeakPointer
< TransformationJoint > > 
TransformationJointsTemp
 
typedef IMP::Vector
< IMP::Pointer
< UniformBackboneSampler > > 
UniformBackboneSamplers
 
typedef IMP::Vector
< IMP::WeakPointer
< UniformBackboneSampler > > 
UniformBackboneSamplersTemp
 

Functions

void add_missing_bonds (IMP::ParticlesTemp &atoms, IMP::ParticlesTemp &bonds)
 
IMP::atom::Bond create_bond (IMP::atom::Atoms &as)
 
IMP::atom::Atom find_atom (const IMP::ParticlesTemp &atoms, int input_index)
 
IMP::atom::Residue find_residue (const IMP::ParticlesTemp &residues, int res_index, std::string chain)
 
IMP::atom::Atom get_ca_atom (const IMP::ParticlesTemp &atoms, int residue_index, std::string chain_id)
 
void read_angle_file (const std::string &file_name, const IMP::ParticlesTemp &residues, const IMP::ParticlesTemp &atoms, IMP::atom::Residues &flexible_residues, std::vector< IMP::atom::Atoms > &dihedral_angles)
 
void read_connect_chains_file (const std::string &file_name, const IMP::ParticlesTemp &atoms, std::vector< IMP::atom::Atoms > &connect_atoms)
 
unsigned int rmsd_clustering (const std::vector< IMP::algebra::Vector3Ds > &coords_vec, std::vector< int > &out_cluster_numbers, float rmsd_thr, bool compute_trans)
 

Standard module functions

All IMP modules have a set of standard functions to help get information about the module and about files associated with the module.

std::string get_module_version ()
 
std::string get_module_name ()
 
std::string get_data_path (std::string file_name)
 Return the full path to one of this module's data files. More...
 
std::string get_example_path (std::string file_name)
 Return the full path to one of this module's example files. More...
 

Typedef Documentation

A vector of reference-counting object pointers.

Definition at line 306 of file revolute_joints.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
BondAngleRevoluteJoint

Definition at line 307 of file revolute_joints.h.

A vector of reference-counting object pointers.

Definition at line 117 of file CompositeJoint.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
CompositeJoint

Definition at line 117 of file CompositeJoint.h.

A vector of reference-counting object pointers.

Definition at line 305 of file revolute_joints.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
DihedralAngleRevoluteJoint

Definition at line 306 of file revolute_joints.h.

Pass or store a set of DirectionalDOF .

Definition at line 99 of file directional_DOFs.h.

A vector of reference-counting object pointers.

Definition at line 71 of file DOF.h.

A vector of reference-counting object pointers.

Definition at line 79 of file DOFsSampler.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
DOFsSampler

Definition at line 79 of file DOFsSampler.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
DOF

Definition at line 71 of file DOF.h.

Pass or store a set of DOFValues .

Definition at line 85 of file DOFValues.h.

A vector of reference-counting object pointers.

Definition at line 126 of file Joint.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
Joint

Definition at line 126 of file Joint.h.

A vector of reference-counting object pointers.

Definition at line 268 of file KinematicForest.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
KinematicForest

Definition at line 268 of file KinematicForest.h.

A vector of reference-counting object pointers.

Definition at line 80 of file local_planners.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
LocalPlanner

Definition at line 80 of file local_planners.h.

A vector of reference-counting object pointers.

Definition at line 80 of file local_planners.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
PathLocalPlanner

Definition at line 81 of file local_planners.h.

A vector of reference-counting object pointers.

Definition at line 80 of file PrismaticJoint.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
PrismaticJoint

Definition at line 80 of file PrismaticJoint.h.

A vector of reference-counting object pointers.

Definition at line 305 of file revolute_joints.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
RevoluteJoint

Definition at line 305 of file revolute_joints.h.

A vector of reference-counting object pointers.

Definition at line 44 of file TransformationJoint.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
TransformationJoint

Definition at line 44 of file TransformationJoint.h.

A vector of reference-counting object pointers.

Definition at line 46 of file UniformBackboneSampler.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
UniformBackboneSampler

Definition at line 46 of file UniformBackboneSampler.h.

Function Documentation

std::string IMP::kinematics::get_data_path ( std::string  file_name)

Return the full path to one of this module's data files.

To read the data file "data_library" that was placed in the data directory of this module, do something like

std::ifstream in(IMP::kinematics::get_data_path("data_library"));

This will ensure that the code works both when IMP is installed or if used via the setup_environment.sh script.

Note
Each module has its own data directory, so be sure to use this function from the correct module.
std::string IMP::kinematics::get_example_path ( std::string  file_name)

Return the full path to one of this module's example files.

To read the example file "example_protein.pdb" that was placed in the examples directory of this module, do something like

std::ifstream in(IMP::kinematics::get_example_path("example_protein.pdb"));

This will ensure that the code works both when IMP is installed or if used via the setup_environment.sh script.

Note
Each module has its own example directory, so be sure to use this function from the correct module.