Rosetta
|
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>
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... | |
![]() | |
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 Strings & | info () |
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 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::Size > | free_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::AtomID > | target_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::AtomICoor > | icoor_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 | |
![]() | |
typedef utility::tag::TagCOP | TagCOP |
typedef core::pose::Pose | Pose |
typedef core::pose::PoseCOP | PoseCOP |
typedef std::list< std::string > | Strings |
![]() | |
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... | |
Iterative loop closure mover, based on a linearization of the kinematics, which adjusts all free backbone torsion angles simultaneously in each iteration.
protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::JacobiLoopClosureMover | ( | ) |
Constructors ///.
Default constructor
|
default |
Copy constructor (not needed unless you need deep copies)
Copy constructor.
protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::JacobiLoopClosureMover | ( | protocols::loops::Loop const & | loop | ) |
Constructor based on a loop.
References create_default_movemap(), init_constructor(), protocols::loops::Loop::start(), and protocols::loops::Loop::stop().
protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::JacobiLoopClosureMover | ( | protocols::loops::Loop const & | loop, |
core::kinematics::MoveMapCOP const & | mm | ||
) |
Constructor based on a loop and a MoveMap.
References init_constructor(), protocols::loops::Loop::start(), protocols::loops::Loop::stop(), protocols::loops::TR(), and verbose_.
|
override |
Destructor (important for properly forward-declaring smart-pointer members)
|
overridevirtual |
Execute the loop closure.
Apply the mover.
Implements protocols::moves::Mover.
References core::kinematics::jacobian::calculate_error_twist(), closure_cycles_, closure_success_, core::pose::Pose::conformation(), core::optimization::MinimizerMap::copy_dofs_from_pose(), core::optimization::MinimizerMap::copy_dofs_to_pose(), err_lin_allowed_, err_rot_allowed_, init_apply(), jacobian_chain_, max_cycles_, movemap_, core::optimization::MinimizerMap::nangles(), core::optimization::MinimizerMap::setup(), target_, protocols::loops::TR(), update_current(), verbose_, and core::kinematics::jacobian::weigh_columns_inversely_squared().
|
overridevirtual |
required in the context of the parser/scripting scheme
Reimplemented from protocols::moves::Mover.
|
private |
Create default MoveMap.
References core::id::BB, protocols::loops::Loop::start(), and protocols::loops::Loop::stop().
Referenced by JacobiLoopClosureMover(), parse_my_tag(), and set_loop().
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().
|
private |
extract internal coordinates of the upper loop connection (between the final residue of the loop and the first residue that follows)
this function is called at initialization, and can later be manually overwritten using set_icoors
References core::kinematics::AtomTree::atom(), core::conformation::Residue::atom_name(), core::pose::Pose::atom_tree(), core::id::D, core::kinematics::tree::Atom::distance(), core::pose::Pose::dof(), core::kinematics::tree::Atom::dof(), core::pose::Pose::fold_tree(), core::chemical::ResidueType::get_base_type_cop(), core::kinematics::FoldTree::get_residue_edge(), icoor_targets_, core::kinematics::FoldTree::is_cutpoint(), core::kinematics::FoldTree::is_jump_point(), loop_, core::conformation::Residue::mainchain_atom(), core::pose::Pose::omega(), core::pose::Pose::phi(), core::pose::Pose::psi(), ref_atom_id_, core::pose::Pose::residue(), core::pose::Pose::residue_type(), core::kinematics::Edge::start(), target_bb_atom_ids_, core::id::THETA, and protocols::loops::TR().
Referenced by current_closed_as_target(), and init_apply().
|
overridevirtual |
required in the context of the parser/scripting scheme
Reimplemented from protocols::moves::Mover.
|
inline |
Get value for norm of allowed linear error vector [Ang] that defines successful closure.
References err_lin_allowed_.
|
inline |
Get value for norm of allowed rotational error vector [deg] that defines successful closure.
References err_rot_allowed_.
|
inline |
Get pointer to SeriesJacobian object.
References jacobian_chain_.
|
inline |
Get the loop to be closed.
References loop_.
|
inline |
Get value for maximum number of iterations to find a loop closure solution.
References max_cycles_.
|
inline |
Get the MoveMap.
References movemap_.
|
overridevirtual |
Each derived class must specify its name. The class name.
Implements protocols::moves::Mover.
References mover_name().
void protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::init_apply | ( | core::pose::Pose & | pose | ) |
Initializes private parameters of the Jacobi mover that depend on the pose.
References core::pose::Pose::conformation(), default_target_icoors(), core::pose::Pose::fold_tree(), free_residues_, core::kinematics::FoldTree::get_residue_edge(), core::kinematics::jacobian::JacobianStructure::get_single_chain(), jacobian_chain_, prepare_foldtree(), ref_atom_id_, core::kinematics::Edge::start(), store_target(), target_initialized_, and protocols::loops::TR().
Referenced by apply().
|
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().
|
inline |
Returns the number of cycles that were needed for the last closure.
References closure_cycles_.
|
inline |
Get boolean indicating whether last closure was successfully completed.
References closure_success_.
|
static |
|
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_.
|
private |
Function that checks and adjusts the fold tree as part of the init_apply method.
References core::conformation::Residue::connected_residue_at_upper(), core::chemical::CUTPOINT_LOWER, core::chemical::CUTPOINT_UPPER, core::id::D, core::pose::Pose::fold_tree(), core::chemical::ResidueType::get_base_type_cop(), core::kinematics::FoldTree::get_residue_edge(), core::conformation::Residue::has_variant_type(), core::kinematics::FoldTree::is_cutpoint(), core::kinematics::FoldTree::is_jump_point(), core::kinematics::FoldTree::is_root(), loop_, protocols::mean_field::min(), core::pose::Pose::omega(), core::id::PHI, core::pose::Pose::phi(), core::pose::Pose::psi(), core::kinematics::FoldTree::reorder(), core::pose::Pose::residue(), core::pose::Pose::residue_type(), core::pose::Pose::set_dof(), protocols::loops::set_loop_cutpoint_in_pose_fold_tree(), core::kinematics::Edge::start(), core::id::THETA, protocols::loops::TR(), and verbose_.
Referenced by init_apply().
|
static |
References protocols::loop_modeling::utilities::append_subelement_and_attributes_for_parse_loops_from_tag(), mover_name(), and protocols::moves::xsd_type_definition_w_attributes_and_repeatable_subelements().
Referenced by protocols::loops::loop_closure::jacobi::JacobiLoopClosureMoverCreator::provide_xml_schema().
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().
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_.
|
inline |
Set maximum number of iterations to find a loop closure solution.
References max_cycles_.
void protocols::loops::loop_closure::jacobi::JacobiLoopClosureMover::set_movemap | ( | core::kinematics::MoveMapOP const & | new_mm | ) |
Set the MoveMap.
References init_constructor(), and loop_.
|
inline |
|
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<<().
|
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().
|
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().
|
private |
counter of number of cycles in the loop closure while-loop
Referenced by apply(), and last_closure_cycles().
|
private |
BOOl to communicate with user about success/failure of closure.
Referenced by apply(), and last_closure_success().
|
private |
Referenced by apply(), get_allowed_norm_lin(), parse_my_tag(), and set_error_norms().
|
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().
|
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().
|
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().
|
private |
pointer to vector with Jacobian objects
Referenced by apply(), get_jacobian_chain(), init_apply(), and init_constructor().
|
private |
copy of the input loop
Referenced by current_closed_as_target(), default_target_icoors(), get_loop(), init_constructor(), prepare_foldtree(), set_movemap(), and update_current().
|
private |
number of iterations before closure is aborted
Referenced by apply(), get_max_cycles(), parse_my_tag(), and set_max_cycles().
|
private |
copy of the pointer to the movemap
Referenced by apply(), get_movemap(), init_constructor(), and set_loop().
|
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().
|
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().
|
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().
|
private |
Referenced by init_apply(), and store_target().
|
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().