Rosetta
|
Atom tree multifunction class. More...
#include <SymMinimizerMap.hh>
Public Types | |
typedef conformation::symmetry::SymmetryInfoCOP | SymmetryInfoCOP |
typedef std::list< DOF_NodeOP > | DOF_Nodes |
typedef DOF_Nodes::const_iterator | const_iterator |
![]() | |
typedef id::AtomID | AtomID |
typedef id::DOF_ID | DOF_ID |
typedef id::DOF_Type | DOF_Type |
Public Member Functions | |
SymMinimizerMap (pose::Pose const &pose, kinematics::MoveMap const &mm, SymmetryInfoCOP symm_info, bool const new_sym_min=false) | |
~SymMinimizerMap () override | |
Destructor. More... | |
void | add_torsion (DOF_ID const &new_torsion, DOF_ID const &parent) override |
The atom tree will report that a new torsion has been identified as free in the traversal of the atom tree. If this is an independent torsion, then the SymMinimizerMap will add a new DOF_Node, but otherwise, will ignore the DOF. The atom tree will traverse through dependent torsions in addition to independent torsions, and it's the job of the SymMinimizerMap to weed out the dependent torsions. More... | |
void | add_atom (AtomID const &atom_id, DOF_ID const &dof_id) override |
Add an atom to the list of atoms controlled by a given DOF. The SymMinimzierMap will figure out, first, if the dof_id is a dependent or independent dof. If it's a dependent DOF, then it will figure out if the given atom has any interactions with an independent residue. If not, then the atom is ignored. If it does, then the SymMinimizerMap will figure out what independent DOF the given dependent DOF is a a clone of, and add this atom as being controlled by that dependent DOF. More... | |
kinematics::DomainMap const & | domain_map () const override |
void | copy_dofs_from_pose (pose::Pose const &pose, Multivec &dofs) const |
void | copy_dofs_to_pose (pose::Pose &pose, Multivec const &dofs) const |
DOF_NodeOP | dof_node_from_id (DOF_ID const &id) const |
Size | nangles () const |
void | zero_torsion_vectors () |
void | link_torsion_vectors () |
Real | torsion_scale_factor (DOF_Node const &dof_node) const |
void | reset_jump_rb_deltas (pose::Pose &pose, Multivec &dofs) const |
const_iterator | begin () const |
begin iterator for the independent dofs More... | |
const_iterator | end () const |
End iterator for the independent dofs. More... | |
const_iterator | dependent_begin () const |
const_iterator | dependent_end () const |
DOF_Nodes const & | dof_nodes () const |
utility::vector1< scoring::DerivVectorPair > & | atom_derivatives (Size resid) |
Retrieve the per-atom derivatives that are accumulated in to. More... | |
bool | new_sym_min () const |
id::DOF_ID | asymmetric_dof (DOF_ID const &cloned_dof) const |
Convert a cloned dof into its equivalent in the asymmetric unit. More... | |
![]() | |
MinimizerMapBase () | |
default ctor; noop More... | |
~MinimizerMapBase () override | |
dstor More... | |
Private Member Functions | |
void | add_new_dof_node (DOF_ID const &new_torsion, DOF_ID const &parent, bool dependent) |
Non-virtual method – not invoked directly by the atom tree. More... | |
void | assign_rosetta_torsions () |
Private Attributes | |
pose::Pose const & | pose_ |
SymmetryInfoCOP | symm_info_ |
utility::vector1< bool > | res_interacts_with_asymmetric_unit_ |
DOF_Nodes | dof_nodes_ |
DOF_Nodes | dependent_dof_nodes_ |
Size | n_independent_dof_nodes_ |
id::DOF_ID_Map< DOF_NodeOP > | dof_node_pointer_ |
pointer from DOF_ID to the corresponding DOF_NodeOP More... | |
kinematics::DomainMap | domain_map_ |
utility::vector1< utility::vector1< scoring::DerivVectorPair > > | atom_derivatives_ |
id::DOF_ID_Map< id::TorsionID > | dof_id2torsion_id_ |
adding this guy so we can tell more accurately which dof's are dependent/independent More... | |
bool | new_sym_min_ |
Atom tree multifunction class.
typedef DOF_Nodes::const_iterator core::optimization::symmetry::SymMinimizerMap::const_iterator |
typedef std::list< DOF_NodeOP > core::optimization::symmetry::SymMinimizerMap::DOF_Nodes |
typedef conformation::symmetry::SymmetryInfoCOP core::optimization::symmetry::SymMinimizerMap::SymmetryInfoCOP |
core::optimization::symmetry::SymMinimizerMap::SymMinimizerMap | ( | pose::Pose const & | pose, |
kinematics::MoveMap const & | mm, | ||
SymmetryInfoCOP | symm_info, | ||
bool const | new_sym_min = false |
||
) |
References assign_rosetta_torsions(), atom_derivatives_, core::conformation::Conformation::atom_tree(), core::pose::Pose::atom_tree(), core::id::DOF_ID::BOGUS_DOF_ID(), core::pose::Pose::conformation(), dof_id2torsion_id_, dof_node_pointer_, core::optimization::symmetry::DOF_Node_sorter(), dof_nodes_, domain_map_, core::pose::Pose::energies(), core::scoring::Energies::energy_graph(), core::pose::initialize_atomid_map(), core::pose::initialize_dof_id_map(), core::conformation::Residue::natoms(), res_interacts_with_asymmetric_unit_, core::pose::Pose::residue(), core::kinematics::AtomTree::root(), core::pose::setup_dof_mask_from_move_map(), core::pose::setup_dof_to_torsion_map(), core::pose::Pose::size(), symm_info_, and core::kinematics::AtomTree::update_domain_map().
|
overridedefault |
Destructor.
|
overridevirtual |
Add an atom to the list of atoms controlled by a given DOF. The SymMinimzierMap will figure out, first, if the dof_id is a dependent or independent dof. If it's a dependent DOF, then it will figure out if the given atom has any interactions with an independent residue. If not, then the atom is ignored. If it does, then the SymMinimizerMap will figure out what independent DOF the given dependent DOF is a a clone of, and add this atom as being controlled by that dependent DOF.
Implements core::kinematics::MinimizerMapBase.
References dof_node_pointer_, and core::id::DOF_ID::valid().
|
private |
Non-virtual method – not invoked directly by the atom tree.
References dependent_dof_nodes_, dof_node_pointer_, dof_nodes_, n_independent_dof_nodes_, and new_sym_min_.
Referenced by add_torsion().
|
overridevirtual |
The atom tree will report that a new torsion has been identified as free in the traversal of the atom tree. If this is an independent torsion, then the SymMinimizerMap will add a new DOF_Node, but otherwise, will ignore the DOF. The atom tree will traverse through dependent torsions in addition to independent torsions, and it's the job of the SymMinimizerMap to weed out the dependent torsions.
Implements core::kinematics::MinimizerMapBase.
References add_new_dof_node(), core::id::DOF_ID::BOGUS_DOF_ID(), core::pose::Pose::conformation(), dof_id2torsion_id_, core::conformation::symmetry::is_symmetric(), new_sym_min_, pose_, core::id::RB1, symm_info_, core::id::DOF_ID::type(), and core::id::TorsionID::valid().
|
private |
id::DOF_ID core::optimization::symmetry::SymMinimizerMap::asymmetric_dof | ( | DOF_ID const & | cloned_dof | ) | const |
Convert a cloned dof into its equivalent in the asymmetric unit.
use the bb_follows mapping to find the residue in the asymmetric unit that this cloned atom corresponds to
References core::id::DOF_ID::atomno(), core::pose::Pose::conformation(), core::conformation::Conformation::fold_tree(), core::kinematics::FoldTree::get_jump_that_builds_residue(), core::kinematics::FoldTree::jump_edge(), pose_, core::id::RB1, core::id::RB6, core::id::DOF_ID::rsd(), core::kinematics::Edge::stop(), symm_info_, and core::id::DOF_ID::type().
Referenced by core::optimization::symmetry::atom_tree_dfunc().
|
inline |
Retrieve the per-atom derivatives that are accumulated in to.
References atom_derivatives_.
Referenced by core::optimization::symmetry::atom_tree_get_atompairE_deriv().
|
inline |
begin iterator for the independent dofs
Allow read/write access to the DOF_Nodes themselves, but do not allow anyone to change the DOF_Nodes list. Elements cannot be dropped from the list, nor should the list be clearable. Of course: if you have a const iterator to a list element containing a pointer, then it is entirely possible to perform non-const operations on the thing being pointed at. HOWEVER, neither the pointer nor the list element can be changed.
References dof_nodes_.
Referenced by core::optimization::symmetry::atom_tree_dfunc(), core::optimization::symmetry::atom_tree_get_atompairE_deriv(), and core::optimization::symmetry::numerical_derivative_check().
void core::optimization::symmetry::SymMinimizerMap::copy_dofs_from_pose | ( | pose::Pose const & | pose, |
Multivec & | dofs | ||
) | const |
void core::optimization::symmetry::SymMinimizerMap::copy_dofs_to_pose | ( | pose::Pose & | pose, |
Multivec const & | dofs | ||
) | const |
References core::optimization::DOF_Node::dependent(), core::optimization::DOF_Node::dof_id(), dof_nodes_, new_sym_min_, core::pose::Pose::set_dof(), and torsion_scale_factor().
Referenced by core::optimization::symmetry::atom_tree_dfunc(), core::optimization::symmetry::SymAtomTreeMultifunc::dump(), and core::optimization::symmetry::SymAtomTreeMultifunc::operator()().
|
inline |
References dependent_dof_nodes_.
Referenced by core::optimization::symmetry::atom_tree_get_atompairE_deriv().
|
inline |
References dependent_dof_nodes_.
Referenced by core::optimization::symmetry::atom_tree_get_atompairE_deriv().
DOF_NodeOP core::optimization::symmetry::SymMinimizerMap::dof_node_from_id | ( | DOF_ID const & | id | ) | const |
References dof_node_pointer_.
Referenced by core::optimization::symmetry::atom_tree_get_atompairE_deriv().
|
inline |
References dof_nodes_.
|
overridevirtual |
Implements core::kinematics::MinimizerMapBase.
References domain_map_.
Referenced by core::optimization::symmetry::atom_tree_get_atompairE_deriv(), and core::optimization::symmetry::SymAtomTreeMinimizer::run().
|
inline |
End iterator for the independent dofs.
References dof_nodes_.
Referenced by core::optimization::symmetry::atom_tree_dfunc(), core::optimization::symmetry::atom_tree_get_atompairE_deriv(), and core::optimization::symmetry::numerical_derivative_check().
void core::optimization::symmetry::SymMinimizerMap::link_torsion_vectors | ( | ) |
References core::optimization::DOF_Node::depth(), dof_nodes_, and core::optimization::DOF_Node::link_vectors().
Referenced by core::optimization::symmetry::atom_tree_dfunc().
|
inline |
|
inline |
void core::optimization::symmetry::SymMinimizerMap::reset_jump_rb_deltas | ( | pose::Pose & | pose, |
Multivec & | dofs | ||
) | const |
References core::optimization::DOF_Node::atom_id(), core::optimization::DOF_Node::dependent(), dof_nodes_, core::id::DOF_type_is_rb(), core::kinematics::Jump::fold_in_rb_deltas(), core::pose::Pose::jump(), new_sym_min_, core::pose::Pose::set_jump(), and core::optimization::DOF_Node::type().
Referenced by core::optimization::symmetry::SymAtomTreeMinimizer::run().
void core::optimization::symmetry::SymMinimizerMap::zero_torsion_vectors | ( | ) |
References atom_derivatives_, and dof_nodes_.
Referenced by core::optimization::symmetry::atom_tree_dfunc().
|
private |
Referenced by atom_derivatives(), SymMinimizerMap(), and zero_torsion_vectors().
|
private |
Referenced by add_new_dof_node(), dependent_begin(), and dependent_end().
|
private |
adding this guy so we can tell more accurately which dof's are dependent/independent
Referenced by add_torsion(), assign_rosetta_torsions(), and SymMinimizerMap().
|
private |
pointer from DOF_ID to the corresponding DOF_NodeOP
Referenced by add_atom(), add_new_dof_node(), dof_node_from_id(), and SymMinimizerMap().
|
private |
|
private |
Referenced by domain_map(), and SymMinimizerMap().
|
private |
Referenced by add_new_dof_node(), and nangles().
|
private |
Referenced by add_new_dof_node(), add_torsion(), copy_dofs_from_pose(), copy_dofs_to_pose(), new_sym_min(), and reset_jump_rb_deltas().
|
private |
Referenced by add_torsion(), and asymmetric_dof().
|
private |
Referenced by SymMinimizerMap().
|
private |
Referenced by add_torsion(), asymmetric_dof(), and SymMinimizerMap().