Rosetta
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
core::optimization::symmetry::SymMinimizerMap Class Reference

Atom tree multifunction class. More...

#include <SymMinimizerMap.hh>

Inheritance diagram for core::optimization::symmetry::SymMinimizerMap:
Inheritance graph
[legend]

Public Types

typedef conformation::symmetry::SymmetryInfoCOP SymmetryInfoCOP
 
typedef std::list< DOF_NodeOPDOF_Nodes
 
typedef DOF_Nodes::const_iterator const_iterator
 
- Public Types inherited from core::kinematics::MinimizerMapBase
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...
 
- Public Member Functions inherited from core::kinematics::MinimizerMapBase
 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_NodeOPdof_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::TorsionIDdof_id2torsion_id_
 adding this guy so we can tell more accurately which dof's are dependent/independent More...
 
bool new_sym_min_
 

Detailed Description

Atom tree multifunction class.

Member Typedef Documentation

◆ const_iterator

◆ DOF_Nodes

◆ SymmetryInfoCOP

Constructor & Destructor Documentation

◆ SymMinimizerMap()

core::optimization::symmetry::SymMinimizerMap::SymMinimizerMap ( pose::Pose const &  pose,
kinematics::MoveMap const &  mm,
SymmetryInfoCOP  symm_info,
bool const  new_sym_min = false 
)

◆ ~SymMinimizerMap()

core::optimization::symmetry::SymMinimizerMap::~SymMinimizerMap ( )
overridedefault

Destructor.

Member Function Documentation

◆ add_atom()

void core::optimization::symmetry::SymMinimizerMap::add_atom ( AtomID const &  atom_id,
DOF_ID const &  dof_id 
)
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().

◆ add_new_dof_node()

void core::optimization::symmetry::SymMinimizerMap::add_new_dof_node ( DOF_ID const &  new_torsion,
DOF_ID const &  parent,
bool  dependent 
)
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().

◆ add_torsion()

void core::optimization::symmetry::SymMinimizerMap::add_torsion ( DOF_ID const &  new_torsion,
DOF_ID const &  parent 
)
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().

◆ assign_rosetta_torsions()

void core::optimization::symmetry::SymMinimizerMap::assign_rosetta_torsions ( )
private

◆ asymmetric_dof()

id::DOF_ID core::optimization::symmetry::SymMinimizerMap::asymmetric_dof ( DOF_ID const &  cloned_dof) const

◆ atom_derivatives()

utility::vector1< scoring::DerivVectorPair >& core::optimization::symmetry::SymMinimizerMap::atom_derivatives ( Size  resid)
inline

Retrieve the per-atom derivatives that are accumulated in to.

References atom_derivatives_.

Referenced by core::optimization::symmetry::atom_tree_get_atompairE_deriv().

◆ begin()

const_iterator core::optimization::symmetry::SymMinimizerMap::begin ( ) const
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().

◆ copy_dofs_from_pose()

void core::optimization::symmetry::SymMinimizerMap::copy_dofs_from_pose ( pose::Pose const &  pose,
Multivec dofs 
) const

◆ copy_dofs_to_pose()

void core::optimization::symmetry::SymMinimizerMap::copy_dofs_to_pose ( pose::Pose pose,
Multivec const &  dofs 
) const

◆ dependent_begin()

const_iterator core::optimization::symmetry::SymMinimizerMap::dependent_begin ( ) const
inline

◆ dependent_end()

const_iterator core::optimization::symmetry::SymMinimizerMap::dependent_end ( ) const
inline

◆ dof_node_from_id()

DOF_NodeOP core::optimization::symmetry::SymMinimizerMap::dof_node_from_id ( DOF_ID const &  id) const

◆ dof_nodes()

DOF_Nodes const& core::optimization::symmetry::SymMinimizerMap::dof_nodes ( ) const
inline

References dof_nodes_.

◆ domain_map()

kinematics::DomainMap const & core::optimization::symmetry::SymMinimizerMap::domain_map ( ) const
overridevirtual

◆ end()

const_iterator core::optimization::symmetry::SymMinimizerMap::end ( ) const
inline

◆ link_torsion_vectors()

void core::optimization::symmetry::SymMinimizerMap::link_torsion_vectors ( )

◆ nangles()

Size core::optimization::symmetry::SymMinimizerMap::nangles ( ) const
inline

◆ new_sym_min()

bool core::optimization::symmetry::SymMinimizerMap::new_sym_min ( ) const
inline

◆ reset_jump_rb_deltas()

void core::optimization::symmetry::SymMinimizerMap::reset_jump_rb_deltas ( pose::Pose pose,
Multivec dofs 
) const

◆ torsion_scale_factor()

Real core::optimization::symmetry::SymMinimizerMap::torsion_scale_factor ( DOF_Node const &  dof_node) const

◆ zero_torsion_vectors()

void core::optimization::symmetry::SymMinimizerMap::zero_torsion_vectors ( )

Member Data Documentation

◆ atom_derivatives_

utility::vector1< utility::vector1< scoring::DerivVectorPair > > core::optimization::symmetry::SymMinimizerMap::atom_derivatives_
private

◆ dependent_dof_nodes_

DOF_Nodes core::optimization::symmetry::SymMinimizerMap::dependent_dof_nodes_
private

◆ dof_id2torsion_id_

id::DOF_ID_Map< id::TorsionID > core::optimization::symmetry::SymMinimizerMap::dof_id2torsion_id_
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().

◆ dof_node_pointer_

id::DOF_ID_Map< DOF_NodeOP > core::optimization::symmetry::SymMinimizerMap::dof_node_pointer_
private

pointer from DOF_ID to the corresponding DOF_NodeOP

Referenced by add_atom(), add_new_dof_node(), dof_node_from_id(), and SymMinimizerMap().

◆ dof_nodes_

DOF_Nodes core::optimization::symmetry::SymMinimizerMap::dof_nodes_
private

◆ domain_map_

kinematics::DomainMap core::optimization::symmetry::SymMinimizerMap::domain_map_
private

Referenced by domain_map(), and SymMinimizerMap().

◆ n_independent_dof_nodes_

Size core::optimization::symmetry::SymMinimizerMap::n_independent_dof_nodes_
private

Referenced by add_new_dof_node(), and nangles().

◆ new_sym_min_

bool core::optimization::symmetry::SymMinimizerMap::new_sym_min_
private

◆ pose_

pose::Pose const& core::optimization::symmetry::SymMinimizerMap::pose_
private

Referenced by add_torsion(), and asymmetric_dof().

◆ res_interacts_with_asymmetric_unit_

utility::vector1< bool > core::optimization::symmetry::SymMinimizerMap::res_interacts_with_asymmetric_unit_
private

Referenced by SymMinimizerMap().

◆ symm_info_

SymmetryInfoCOP core::optimization::symmetry::SymMinimizerMap::symm_info_
private

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