Rosetta
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover Class Reference

Iterative loop closure mover, based on a linearization of the kinematics, which adjusts all free backbone torsion angles simultaneously in each iteration. More...

#include <JacobiLoopClosureMover.hh>

Inheritance diagram for protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover:
Inheritance graph
[legend]

Public Member Functions

 JacobiLoopClosureMover ()
 Constructors ///. More...
 
 JacobiLoopClosureMover (JacobiLoopClosureMover const &src)
 Copy constructor (not needed unless you need deep copies) More...
 
 JacobiLoopClosureMover (protocols::loops::Loop const &loop)
 Constructor based on a loop. More...
 
 JacobiLoopClosureMover (protocols::loops::Loop const &loop, core::kinematics::MoveMapCOP const &mm)
 Constructor based on a loop and a MoveMap. More...
 
 ~JacobiLoopClosureMover () override
 Destructor (important for properly forward-declaring smart-pointer members) More...
 
void set_loop (protocols::loops::Loop const &new_loop)
 Mover Methods ///. More...
 
protocols::loops::LoopCOP get_loop ()
 Get the loop to be closed. More...
 
void set_movemap (core::kinematics::MoveMapOP const &new_mm)
 Set the MoveMap. More...
 
core::kinematics::MoveMapCOP get_movemap ()
 Get the MoveMap. More...
 
core::kinematics::jacobian::SeriesJacobiansOP get_jacobian_chain ()
 Get pointer to SeriesJacobian object. More...
 
void init_apply (core::pose::Pose &pose)
 Initializes private parameters of the Jacobi mover that depend on the pose. More...
 
void apply (core::pose::Pose &pose) override
 Execute the loop closure. More...
 
void show (std::ostream &output=std::cout) const override
 Show the contents of the Mover. More...
 
bool last_closure_success ()
 Get boolean indicating whether last closure was successfully completed. More...
 
core::Size last_closure_cycles ()
 Returns the number of cycles that were needed for the last closure. More...
 
void set_max_cycles (core::Size max_cycles)
 Set maximum number of iterations to find a loop closure solution. More...
 
core::Size get_max_cycles ()
 Get value for maximum number of iterations to find a loop closure solution. More...
 
void set_error_norms (core::Real error_norm_rot, core::Real error_norm_lin)
 Set norm-values of allowed rotational [deg] and linear error vectors [Ang] that define successful closure. More...
 
core::Real get_allowed_norm_rot ()
 Get value for norm of allowed rotational error vector [deg] that defines successful closure. More...
 
core::Real get_allowed_norm_lin ()
 Get value for norm of allowed linear error vector [Ang] that defines successful closure. More...
 
void set_verbose (bool setting)
 Set whether or not to output non-critical information. More...
 
void current_closed_as_target (core::pose::Pose const &pose)
 Set current loop connection with subsequent residue as target connection. More...
 
void parse_my_tag (utility::tag::TagCOP tag, basic::datacache::DataMap &) override
 Rosetta Scripts Support ///. More...
 
protocols::moves::MoverOP fresh_instance () const override
 required in the context of the parser/scripting scheme More...
 
protocols::moves::MoverOP clone () const override
 required in the context of the parser/scripting scheme More...
 
std::string get_name () const override
 Each derived class must specify its name. The class name. More...
 
- Public Member Functions inherited from protocols::moves::Mover
 Mover ()
 
virtual MoverOP create ()
 
MoverCOP get_self_ptr () const
 
MoverOP get_self_ptr ()
 
MoverCAP get_self_weak_ptr () const
 
MoverAP get_self_weak_ptr ()
 
 Mover (std::string const &type_name)
 sets the type for a mover; name_ has been removed (2010/05/14) More...
 
virtual void test_move (Pose &pose)
 : Unit test support function. Apply one move to a given pose. Allows extra test specific functions to be called before applying More...
 
virtual bool reinitialize_for_each_job () const
 Inform the Job Distributor (August '08 vintage) whether this object needs to be freshly regenerated on each use. More...
 
virtual bool reinitialize_for_new_input () const
 Inform the Job Distributor (August '08 vintage) whether this object needs to be regenerated when the input pose is about to change, (for example, if the Mover has special code on the first apply() that is only valid for that one input pose). More...
 
MoverStatus get_last_move_status () const
 end parser interface, start Job Distributor interface///////////// More...
 
void reset_status ()
 resets status to SUCCESS, meant to be used before an apply(). The job distributor (august 08 vintage) uses this to ensure non-accumulation of status across apply()s. More...
 
virtual core::pose::PoseOP get_additional_output ()
 Mechanism by which a mover may return multiple output poses from a single input pose. More...
 
void set_type (std::string const &setting)
 Set the 'type' string. More...
 
std::string get_type () const
 
void type (const std::string &type_in)
 Set the 'type' string. More...
 
std::string const & type () const
 Get the set 'type' string. More...
 
virtual void set_input_pose (PoseCOP pose)
 setter for poses contained for rms More...
 
virtual void set_native_pose (PoseCOP pose)
 setter for native poses contained for rms -— we should get rid of this method? it is widely used, but a bit unsafe More...
 
PoseCOP get_input_pose () const
 
PoseCOP get_native_pose () const
 
void set_current_job (protocols::jobdist::BasicJobCOP job)
 
jobdist::BasicJobCOP get_current_job () const
 
virtual void set_current_tag (std::string const &new_tag)
 
std::string get_current_tag () const
 A tag is a unique identifier used to identify structures produced by this Mover. get_current_tag() returns the tag, and set_current_tag( std::string tag ) sets the tag. This functionality is not intended for use with the 2008 job distributor. More...
 
virtual core::Real last_proposal_density_ratio ()
 
virtual void clear_info ()
 Strings container can be used to return miscellaneous info (as std::string) from a mover, such as notes about the results of apply(). The job distributor (Apr 09 vintage) will check this function to see if your protocol wants to add string info to the Job that ran this mover. One way this can be useful is that later, a JobOutputter may include/append this info to an output file. More...
 
virtual Stringsinfo ()
 non-const accessor More...
 
virtual Strings const & info () const
 const accessor More...
 
virtual void provide_citation_info (basic::citation_manager::CitationCollectionList &) const
 Provide citations to the passed CitationCollectionList Subclasses should add the info for themselves and any other classes they use. More...
 

Static Public Member Functions

static std::string mover_name ()
 
static void provide_xml_schema (utility::tag::XMLSchemaDefinition &xsd)
 
- Static Public Member Functions inherited from protocols::moves::Mover
static std::string name ()
 
static void register_options ()
 Overload this static method if you access options within the mover. More...
 

Private Member Functions

core::kinematics::MoveMapOP create_default_movemap (protocols::loops::Loop loop)
 Create default MoveMap. More...
 
void init_constructor (protocols::loops::Loop const &loop, core::kinematics::MoveMapCOP const &mm)
 Initializes data members from constructor input arguments. More...
 
void prepare_foldtree (core::pose::Pose &pose)
 Function that checks and adjusts the fold tree as part of the init_apply method. More...
 
void default_target_icoors (core::pose::Pose const &pose)
 extract internal coordinates of the upper loop connection (between the final residue of the loop and the first residue that follows) More...
 
void store_target (core::pose::Pose const &pose)
 Set the target based on residue defaults. More...
 
core::kinematics::RT update_current (core::pose::Pose const &pose)
 Calculate the current position and Euler angles of the final C-atom in the loop w.r.t the reference frame connected to ref_atom_id_. More...
 

Private Attributes

core::Size max_cycles_ = 200
 number of iterations before closure is aborted More...
 
core::Real err_rot_allowed_ = 5 * numeric::constants::d::degrees_to_radians
 Maximum norms of rotational [rad] and linear error [Ang] for closure to be accepted as successful. More...
 
core::Real err_lin_allowed_ = 0.1
 
bool verbose_ = false
 setting that determines whether non-critical information is printed to tracer. Errors/warnings are always printed More...
 
protocols::loops::LoopOP loop_ {nullptr}
 copy of the input loop More...
 
core::kinematics::MoveMapCOP movemap_ {nullptr}
 copy of the pointer to the movemap More...
 
utility::vector1< core::Sizefree_residues_
 vector1 with the numbers of the residues whose phi and psi angles are allowed to be adjusted by the mover More...
 
core::kinematics::jacobian::SeriesJacobiansOP jacobian_chain_ {nullptr}
 pointer to vector with Jacobian objects More...
 
core::Size closure_cycles_ {0}
 counter of number of cycles in the loop closure while-loop More...
 
bool closure_success_ {false}
 BOOl to communicate with user about success/failure of closure. More...
 
core::id::AtomID ref_atom_id_ {0,0}
 atom id of the first CA atom in the loop, which is fixed to the preceding backbone residue and whose stub is the reference frame for all vectors and matrices More...
 
utility::vector1< core::id::AtomIDtarget_bb_atom_ids_ {6}
 atom ids of the backbone atoms of the last residue of the loop and the first residue following More...
 
core::kinematics::RT target_
 
bool target_initialized_ = false
 
utility::vector1< core::chemical::AtomICooricoor_targets_
 internal coordinates of the target residue, which determine how the loop must be connected to the backbone. Stored in this form, and not as homogeneous matrix, because maybe a user in the future would like to change individual values manually More...
 

Additional Inherited Members

- Public Types inherited from protocols::moves::Mover
typedef utility::tag::TagCOP TagCOP
 
typedef core::pose::Pose Pose
 
typedef core::pose::PoseCOP PoseCOP
 
typedef std::list< std::string > Strings
 
- Protected Member Functions inherited from protocols::moves::Mover
void set_last_move_status (MoverStatus status)
 nonvirtual setter for MoverStatus last_status_. Protected means that only the mover itself will be able to change its own status. The job distributor (august 08 vintage) is aware of status set with this function and will do what the MoverStatus says. More...
 

Detailed Description

Iterative loop closure mover, based on a linearization of the kinematics, which adjusts all free backbone torsion angles simultaneously in each iteration.

Constructor & Destructor Documentation

◆ JacobiLoopClosureMover() [1/4]

protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::JacobiLoopClosureMover ( )

Constructors ///.

Default constructor

◆ JacobiLoopClosureMover() [2/4]

protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::JacobiLoopClosureMover ( JacobiLoopClosureMover const &  src)
default

Copy constructor (not needed unless you need deep copies)

Copy constructor.

◆ JacobiLoopClosureMover() [3/4]

protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::JacobiLoopClosureMover ( protocols::loops::Loop const &  loop)

◆ JacobiLoopClosureMover() [4/4]

protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::JacobiLoopClosureMover ( protocols::loops::Loop const &  loop,
core::kinematics::MoveMapCOP const &  mm 
)

◆ ~JacobiLoopClosureMover()

protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::~JacobiLoopClosureMover ( )
override

Destructor (important for properly forward-declaring smart-pointer members)

Member Function Documentation

◆ apply()

void protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::apply ( core::pose::Pose pose)
overridevirtual

◆ clone()

protocols::moves::MoverOP protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::clone ( ) const
overridevirtual

required in the context of the parser/scripting scheme

Reimplemented from protocols::moves::Mover.

◆ create_default_movemap()

core::kinematics::MoveMapOP protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::create_default_movemap ( protocols::loops::Loop  loop)
private

◆ current_closed_as_target()

void protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::current_closed_as_target ( core::pose::Pose const &  pose)

Set current loop connection with subsequent residue as target connection.

References default_target_icoors(), core::pose::Pose::fold_tree(), core::kinematics::FoldTree::is_cutpoint(), loop_, and store_target().

◆ default_target_icoors()

void protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::default_target_icoors ( core::pose::Pose const &  pose)
private

◆ fresh_instance()

protocols::moves::MoverOP protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::fresh_instance ( ) const
overridevirtual

required in the context of the parser/scripting scheme

Reimplemented from protocols::moves::Mover.

◆ get_allowed_norm_lin()

core::Real protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::get_allowed_norm_lin ( )
inline

Get value for norm of allowed linear error vector [Ang] that defines successful closure.

References err_lin_allowed_.

◆ get_allowed_norm_rot()

core::Real protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::get_allowed_norm_rot ( )
inline

Get value for norm of allowed rotational error vector [deg] that defines successful closure.

References err_rot_allowed_.

◆ get_jacobian_chain()

core::kinematics::jacobian::SeriesJacobiansOP protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::get_jacobian_chain ( )
inline

Get pointer to SeriesJacobian object.

References jacobian_chain_.

◆ get_loop()

protocols::loops::LoopCOP protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::get_loop ( )
inline

Get the loop to be closed.

References loop_.

◆ get_max_cycles()

core::Size protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::get_max_cycles ( )
inline

Get value for maximum number of iterations to find a loop closure solution.

References max_cycles_.

◆ get_movemap()

core::kinematics::MoveMapCOP protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::get_movemap ( )
inline

Get the MoveMap.

References movemap_.

◆ get_name()

std::string protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::get_name ( ) const
overridevirtual

Each derived class must specify its name. The class name.

Implements protocols::moves::Mover.

References mover_name().

◆ init_apply()

void protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::init_apply ( core::pose::Pose pose)

◆ init_constructor()

void protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::init_constructor ( protocols::loops::Loop const &  loop,
core::kinematics::MoveMapCOP const &  mm 
)
private

Initializes data members from constructor input arguments.

References free_residues_, jacobian_chain_, loop_, movemap_, protocols::loops::stop, and protocols::loops::TR().

Referenced by JacobiLoopClosureMover(), parse_my_tag(), set_loop(), and set_movemap().

◆ last_closure_cycles()

core::Size protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::last_closure_cycles ( )
inline

Returns the number of cycles that were needed for the last closure.

References closure_cycles_.

◆ last_closure_success()

bool protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::last_closure_success ( )
inline

Get boolean indicating whether last closure was successfully completed.

References closure_success_.

◆ mover_name()

std::string protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::mover_name ( )
static

◆ parse_my_tag()

void protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::parse_my_tag ( utility::tag::TagCOP  tag,
basic::datacache::DataMap  
)
overridevirtual

Rosetta Scripts Support ///.

parse XML tag (to use this Mover in Rosetta Scripts)

Reimplemented from protocols::moves::Mover.

References create_default_movemap(), err_lin_allowed_, err_rot_allowed_, init_constructor(), max_cycles_, protocols::loop_modeling::utilities::parse_loops_from_tag(), and verbose_.

◆ prepare_foldtree()

void protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::prepare_foldtree ( core::pose::Pose pose)
private

◆ provide_xml_schema()

void protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::provide_xml_schema ( utility::tag::XMLSchemaDefinition &  xsd)
static

◆ set_error_norms()

void protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::set_error_norms ( core::Real  error_norm_rot,
core::Real  error_norm_lin 
)

Set norm-values of allowed rotational [deg] and linear error vectors [Ang] that define successful closure.

error_norm_rot should be supplied in degrees.

References err_lin_allowed_, err_rot_allowed_, and protocols::loops::TR().

◆ set_loop()

void protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::set_loop ( protocols::loops::Loop const &  new_loop)

Mover Methods ///.

Set the loop to be closed

References create_default_movemap(), init_constructor(), and movemap_.

◆ set_max_cycles()

void protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::set_max_cycles ( core::Size  max_cycles)
inline

Set maximum number of iterations to find a loop closure solution.

References max_cycles_.

◆ set_movemap()

void protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::set_movemap ( core::kinematics::MoveMapOP const &  new_mm)

Set the MoveMap.

References init_constructor(), and loop_.

◆ set_verbose()

void protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::set_verbose ( bool  setting)
inline

Set whether or not to output non-critical information.

Default is false

References verbose_.

◆ show()

void protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::show ( std::ostream &  output = std::cout) const
overridevirtual

Show the contents of the Mover.

Reimplemented from protocols::moves::Mover.

References protocols::moves::Mover::show().

Referenced by protocols::loops::loop_closure::jacobi::operator<<().

◆ store_target()

void protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::store_target ( core::pose::Pose const &  pose)
private

Set the target based on residue defaults.

Calculate the target position and Euler angles of the final C-atom in the loop w.r.t the reference frame connected to ref_atom_id_.

This function calculates the pose (position and orientation) of the last backbone atom of the loop (C-atom [C] of the end residue [e] of the loop [l], 'Cle'). For that, the stored internal coordinates of the connection to the backbone are used to relate Cl to the first CA-atom of the backbone (CAbb) after the loop This CAbb atom in term is fixed w.r.t. the CA atom of the start residue of the loop (CA1).

References core::kinematics::AtomTree::atom(), core::pose::Pose::atom_tree(), core::kinematics::Stub::from_four_points(), core::kinematics::tree::Atom::get_stub(), ref_atom_id_, target_, target_bb_atom_ids_, target_initialized_, and core::kinematics::tree::Atom::xyz().

Referenced by current_closed_as_target(), and init_apply().

◆ update_current()

core::kinematics::RT protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::update_current ( core::pose::Pose const &  pose)
private

Calculate the current position and Euler angles of the final C-atom in the loop w.r.t the reference frame connected to ref_atom_id_.

Calculate the current position and Euler angles of the CA-atom following the loop w.r.t the stub connected to ref_atom_id_.

References core::kinematics::AtomTree::atom(), core::pose::Pose::atom_tree(), core::kinematics::RT::get_rotation(), core::kinematics::tree::Atom::get_stub(), core::kinematics::RT::get_translation(), icoor_targets_, loop_, core::pose::Pose::psi(), ref_atom_id_, and target_bb_atom_ids_.

Referenced by apply().

Member Data Documentation

◆ closure_cycles_

core::Size protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::closure_cycles_ {0}
private

counter of number of cycles in the loop closure while-loop

Referenced by apply(), and last_closure_cycles().

◆ closure_success_

bool protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::closure_success_ {false}
private

BOOl to communicate with user about success/failure of closure.

Referenced by apply(), and last_closure_success().

◆ err_lin_allowed_

core::Real protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::err_lin_allowed_ = 0.1
private

◆ err_rot_allowed_

core::Real protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::err_rot_allowed_ = 5 * numeric::constants::d::degrees_to_radians
private

Maximum norms of rotational [rad] and linear error [Ang] for closure to be accepted as successful.

Referenced by apply(), get_allowed_norm_rot(), parse_my_tag(), and set_error_norms().

◆ free_residues_

utility::vector1<core::Size> protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::free_residues_
private

vector1 with the numbers of the residues whose phi and psi angles are allowed to be adjusted by the mover

Referenced by init_apply(), and init_constructor().

◆ icoor_targets_

utility::vector1< core::chemical::AtomICoor > protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::icoor_targets_
private

internal coordinates of the target residue, which determine how the loop must be connected to the backbone. Stored in this form, and not as homogeneous matrix, because maybe a user in the future would like to change individual values manually

this member variable is set when the apply() function is called because it relies on the conformation

Referenced by default_target_icoors(), and update_current().

◆ jacobian_chain_

core::kinematics::jacobian::SeriesJacobiansOP protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::jacobian_chain_ {nullptr}
private

pointer to vector with Jacobian objects

Referenced by apply(), get_jacobian_chain(), init_apply(), and init_constructor().

◆ loop_

protocols::loops::LoopOP protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::loop_ {nullptr}
private

◆ max_cycles_

core::Size protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::max_cycles_ = 200
private

number of iterations before closure is aborted

Referenced by apply(), get_max_cycles(), parse_my_tag(), and set_max_cycles().

◆ movemap_

core::kinematics::MoveMapCOP protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::movemap_ {nullptr}
private

copy of the pointer to the movemap

Referenced by apply(), get_movemap(), init_constructor(), and set_loop().

◆ ref_atom_id_

core::id::AtomID protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::ref_atom_id_ {0,0}
private

atom id of the first CA atom in the loop, which is fixed to the preceding backbone residue and whose stub is the reference frame for all vectors and matrices

this member variable is set when the apply() function is called because it relies on the conformation

Referenced by default_target_icoors(), init_apply(), store_target(), and update_current().

◆ target_

core::kinematics::RT protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::target_
private

@ brief target vectors for the loop closure. Are either initialized based on residuetype defaults, or can be set via current_closed_as_target, before calling apply()

Referenced by apply(), and store_target().

◆ target_bb_atom_ids_

utility::vector1<core::id::AtomID> protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::target_bb_atom_ids_ {6}
private

atom ids of the backbone atoms of the last residue of the loop and the first residue following

this member variable is set when the apply() function is called because it relies on the conformation

Referenced by default_target_icoors(), store_target(), and update_current().

◆ target_initialized_

bool protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::target_initialized_ = false
private

Referenced by init_apply(), and store_target().

◆ verbose_

bool protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::verbose_ = false
private

setting that determines whether non-critical information is printed to tracer. Errors/warnings are always printed

Referenced by apply(), JacobiLoopClosureMover(), parse_my_tag(), prepare_foldtree(), and set_verbose().


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