IMP logo
IMP Reference Guide  develop.ba5ef9f91e,2024/02/26
The Integrative Modeling Platform
IMP::kinematics::ProteinKinematics Class Reference

#include <IMP/kinematics/ProteinKinematics.h>

+ Inheritance diagram for IMP::kinematics::ProteinKinematics:

Detailed Description

Kinematic structure over a protein, with backbone and side chain dihedrals. Should only be applied one over a given set of particles.

Note: Particles that are handled by this class should never be decorated with IMP::core::RigidBody externally, as this could lead to unexpected behavior (e.g., wrong coordinates) and it cannot be detected by IMP at the current time.

Definition at line 55 of file ProteinKinematics.h.

Public Member Functions

 ProteinKinematics (atom::Hierarchy mhd, bool flexible_backbone=true, bool flexible_side_chains=false)
 Constructor with all phi/psi rotatable. More...
 
 ProteinKinematics (atom::Hierarchy mhd, const atom::Residues &flexible_residues, const ParticleIndexQuads custom_dihedral_angles, atom::Atoms open_loop_bond_atoms=atom::Atoms(), bool flexible_backbone=true, bool flexible_side_chains=false)
 
 ProteinKinematics (atom::Hierarchy mhd, const atom::Residues &flexible_residues, const std::vector< atom::Atoms > &custom_dihedral_atoms, atom::Atoms open_loop_bond_atoms=atom::Atoms(), bool flexible_backbone=true, bool flexible_side_chains=false)
 
 ProteinKinematics (atom::Hierarchy mhd, const atom::Residues &flexible_residues, const ParticleIndexQuads custom_dihedral_angles, const std::vector< ProteinAngleType > &custom_dihedral_angle_types, atom::Atoms open_loop_bond_atoms=atom::Atoms(), bool flexible_backbone=true, bool flexible_side_chains=false)
 
void add_dihedral_joint (const atom::Residue r, ProteinAngleType angle_type, const atom::Atoms &atoms)
 
void add_dihedral_joints (const std::vector< atom::Residue > &residues, ProteinAngleType angle_type, const std::vector< atom::Atoms > &dihedral_angles)
 
void build_rigid_bodies ()
 automatically build rigid bodies for the protein kinematics structure More...
 
void build_topology_graph ()
 
DihedralAngleRevoluteJointget_chi1_joint (const atom::Residue r) const
 
DihedralAngleRevoluteJointget_chi2_joint (const atom::Residue r) const
 
DihedralAngleRevoluteJointget_chi3_joint (const atom::Residue r) const
 
DihedralAngleRevoluteJointget_chi4_joint (const atom::Residue r) const
 
DihedralAngleRevoluteJointget_chi5_joint (const atom::Residue r) const
 
DihedralAngleRevoluteJointget_joint (const atom::Residue r, ProteinAngleType angle) const
 
DihedralAngleRevoluteJoints get_joints ()
 returns a list of all joints associated with the ProteinKinematics structure More...
 
KinematicForestget_kinematic_forest ()
 
DihedralAngleRevoluteJoints get_loop_joints ()
 
DihedralAngleRevoluteJoints get_ordered_joints ()
 
DihedralAngleRevoluteJointget_other_joint (const atom::Residue r) const
 
double get_phi (const atom::Residue r) const
 get phi angle associated with residue r More...
 
DihedralAngleRevoluteJointget_phi_joint (const atom::Residue r) const
 
double get_psi (const atom::Residue r) const
 get psi angle associated with residue r More...
 
DihedralAngleRevoluteJointget_psi_joint (const atom::Residue r) const
 
core::RigidBodies get_rigid_bodies ()
 
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 mark_rotatable_angle (const std::vector< atom::Atom > &dihedral_angle)
 
void mark_rotatable_angles (const std::vector< atom::Atoms > &dihedral_angles)
 
void open_loop (atom::Atoms open_loop_bond_atoms)
 
void order_rigid_bodies (const std::vector< atom::Atoms > &dihedral_angles, const std::vector< atom::Atoms > &phi_angles, const std::vector< atom::Atoms > &psi_angles, const std::vector< atom::Atoms > &chi1_angles, const std::vector< atom::Atoms > &chi2_angles, const std::vector< atom::Atoms > &chi3_angles, const std::vector< atom::Atoms > &chi4_angles, const std::vector< atom::Atoms > &chi5_angles, atom::Atoms open_loop_bond_atoms)
 
void set_phi (const atom::Residue r, double angle)
 
void set_psi (const atom::Residue r, double angle)
 
- 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::Object
 Object (std::string name)
 Construct an object with the given name. More...
 
virtual void do_destroy ()
 

Constructor & Destructor Documentation

IMP::kinematics::ProteinKinematics::ProteinKinematics ( atom::Hierarchy  mhd,
bool  flexible_backbone = true,
bool  flexible_side_chains = false 
)

Constructor with all phi/psi rotatable.

Parameters
mhdhierarchy of a protein, obtained by e.g. reading a Pdb using IMP::Atom::read_pdb()
flexible_backbonewhether all phi/psi angles are flexible
flexible_side_chainswhether all chi angles are flexible (currently not implemented)
IMP::kinematics::ProteinKinematics::ProteinKinematics ( atom::Hierarchy  mhd,
const atom::Residues flexible_residues,
const ParticleIndexQuads  custom_dihedral_angles,
atom::Atoms  open_loop_bond_atoms = atom::Atoms(),
bool  flexible_backbone = true,
bool  flexible_side_chains = false 
)
Parameters
mhdhierarchy of a protein, obtained by e.g. reading a Pdb using IMP::Atom::read_pdb()
flexible_residuesall residues for which non-custom backbone of side-chain dihedrals may be flexible (side-chains are not implemented as of May 2017)
custom_dihedral_anglesIMP::ParticleIndexQuads - list of four particles that define a custom dihedral angle
flexible_backbonewhether all phi/psi angles in flexible_residues are flexible
flexible_side_chainswhether all chi angles in flexible_residues are flexible (currently not implemented)
IMP::kinematics::ProteinKinematics::ProteinKinematics ( atom::Hierarchy  mhd,
const atom::Residues flexible_residues,
const std::vector< atom::Atoms > &  custom_dihedral_atoms,
atom::Atoms  open_loop_bond_atoms = atom::Atoms(),
bool  flexible_backbone = true,
bool  flexible_side_chains = false 
)
Parameters
mhdhierarchy of a protein, obtained by e.g. reading a Pdb using IMP::Atom::read_pdb()
flexible_residuesall residues for which non-custom backbone of side-chain dihedrals may be flexible (side-chains are not implemented as of May 2017)
custom_dihedral_atomslists of four atoms that define a custom dihedral angle !!Only accessible from C++ use custom_dihedral_angles if constructingi n python.
open_loop_bond_atomsTODO: document
flexible_backbonewhether all phi/psi angles in flexible_residues are flexible
flexible_side_chainswhether all chi angles in flexible_residues are flexible (currently not implemented)
IMP::kinematics::ProteinKinematics::ProteinKinematics ( atom::Hierarchy  mhd,
const atom::Residues flexible_residues,
const ParticleIndexQuads  custom_dihedral_angles,
const std::vector< ProteinAngleType > &  custom_dihedral_angle_types,
atom::Atoms  open_loop_bond_atoms = atom::Atoms(),
bool  flexible_backbone = true,
bool  flexible_side_chains = false 
)
Parameters
mhdhierarchy of a protein, obtained by e.g. reading a Pdb using IMP::Atom::read_pdb()
flexible_residuesall residues for which non-custom backbone of side-chain dihedrals may be flexible (side-chains are not implemented as of May 2017)
custom_dihedral_anglesIMP::ParticleIndexQuads - list of four particles that define a custom dihedral angle
custom_dihedral_angle_typesthe types of all custom dihedral angles (a list of the same size)
open_loop_bond_atomsTODO: document
flexible_backbonewhether all phi/psi angles in flexible_residues are flexible
flexible_side_chainswhether all chi angles in flexible_residues are flexible (currently not implemented)

Member Function Documentation

void IMP::kinematics::ProteinKinematics::build_rigid_bodies ( )

automatically build rigid bodies for the protein kinematics structure

DihedralAngleRevoluteJoints IMP::kinematics::ProteinKinematics::get_joints ( )

returns a list of all joints associated with the ProteinKinematics structure

Definition at line 174 of file ProteinKinematics.h.

KinematicForest* IMP::kinematics::ProteinKinematics::get_kinematic_forest ( )

returns the kinematic forest associated with this ProteinKinematics object

Definition at line 192 of file ProteinKinematics.h.

DihedralAngleRevoluteJoints IMP::kinematics::ProteinKinematics::get_ordered_joints ( )

return joints sorted by BFS traversal from the root(s) of the kinematic structure

Definition at line 182 of file ProteinKinematics.h.

double IMP::kinematics::ProteinKinematics::get_phi ( const atom::Residue  r) const

get phi angle associated with residue r

Definition at line 162 of file ProteinKinematics.h.

double IMP::kinematics::ProteinKinematics::get_psi ( const atom::Residue  r) const

get psi angle associated with residue r

Definition at line 168 of file ProteinKinematics.h.

core::RigidBodies IMP::kinematics::ProteinKinematics::get_rigid_bodies ( )

get all rigid bodies that were automatically generated in the tree

Definition at line 196 of file ProteinKinematics.h.

virtual ::IMP::VersionInfo IMP::kinematics::ProteinKinematics::get_version_info ( ) const
overridevirtual

Get information about the module and version of the object.

Reimplemented from IMP::Object.

Definition at line 214 of file ProteinKinematics.h.

void IMP::kinematics::ProteinKinematics::mark_rotatable_angle ( const std::vector< atom::Atom > &  dihedral_angle)

mark a single dihedral angle as rotatable - remove the edge of the rotatable bond from graph_, and add it to rb_graph

void IMP::kinematics::ProteinKinematics::mark_rotatable_angles ( const std::vector< atom::Atoms > &  dihedral_angles)

mark specified dihedral angles as rotatable - remove the edges of the rotatable bonds from graph_, and add them to rb_graph


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