Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Typedefs | Functions | Variables
core::optimization::symmetry Namespace Reference

Classes

class  MinDebug
 
class  SymAtomTreeMinimizer
 High-level atom tree minimizer class. More...
 
class  SymAtomTreeMultifunc
 Atom tree multifunction class. More...
 
class  SymMinimizerMap
 Atom tree multifunction class. More...
 

Typedefs

typedef id::DOF_ID DOF_ID
 
typedef
utility::pointer::owning_ptr
< AtomTreeMinimizer
SymAtomTreeMinimizerOP
 
typedef
utility::pointer::owning_ptr
< AtomTreeMinimizer const > 
SymAtomTreeMinimizerCOP
 
typedef
utility::pointer::owning_ptr
< SymMinimizerMap
SymMinimizerMapOP
 
typedef
utility::pointer::owning_ptr
< SymMinimizerMap const > 
SymMinimizerMapCOP
 

Functions

static basic::Tracer TR ("core.optimization.symmetry")
 
void atom_tree_dfunc (pose::Pose &pose, SymMinimizerMap &symm_min_map, scoring::ScoreFunction const &scorefxn, Multivec const &vars, Multivec &dE_dvars)
 
void atom_tree_get_atompairE_deriv (pose::Pose &pose, SymMinimizerMap &symm_min_map, scoring::ScoreFunction const &scorefxn)
 
void numerical_derivative_check (SymMinimizerMap const &min_map, Multifunc const &func, Multivec const &start_vars, Multivec const &dE_dvars, bool const verbose)
 
bool DOF_Node_sorter (DOF_NodeCOP a, DOF_NodeCOP b)
 Stolen from MinimizerMap.cc. More...
 

Variables

bool debug_inaccurateG = false
 
bool check_score_components = false
 
bool check_score_components_verbose = false
 
bool check_rama = false
 
bool check_hbonds = false
 

Typedef Documentation

Definition at line 72 of file sym_atom_tree_minimize.cc.

Definition at line 25 of file SymAtomTreeMinimizer.fwd.hh.

Definition at line 23 of file SymAtomTreeMinimizer.fwd.hh.

Definition at line 26 of file SymMinimizerMap.fwd.hh.

Definition at line 23 of file SymMinimizerMap.fwd.hh.

Function Documentation

void core::optimization::symmetry::atom_tree_dfunc ( pose::Pose pose,
SymMinimizerMap &  symm_min_map,
scoring::ScoreFunction const &  scorefxn,
Multivec const &  vars,
Multivec &  dE_dvars 
)
Detailed:
car note that this calculates the deriv for all torsion angles even car those that are fixed. Because of the way that the derivative is car calculated, I don't believe this is a significant slow down (ie car have to run over all the atom pairs twice, regardless of the number car of torsion angles)

car multiple neighborlists: car cendist centroid distances in current structure, cutoff for vdw car dis2_tether centroid distances in tether structure, cutoff for tether

db computes the derivative of E with respect to each db of the torsion angles. Using the chain rule, we have db db dE/d phi = dE/dr * dr/dphi db db dr/dphi = Eab x (V-Vb) . (V' - V)/|V-V'| db db (the first cross product is the displacement of V upon a rotation dphi db around the unit vector Eab, Vb is the coordinates of the second atom in db the bond) db car dE/dR = 2r (for vdw at least) db since | V-V'| = r, db db dE/ dphi = 2 Eab x (V-Vb) . (V' - V) db db note that Eab and Vb are different for each torsion angle, but V' db and V are the same. rearranging: db db = - 2 Eab X Vb . (V' - V) - 2 Eab . (V' x V). db db now we need the averages over all Vi of the difference and the db crossproduct of V and V'.

car below, Eab x Vb is 'vec' car Eab is 'unit' car (V'-V) is 'f2' car 'F2tot' = f2*dE_dR (cumulative) car (V' X V) is 'f1' ('F1_xxxE' is cumulative for potential xxx) car eval_dE_dR actually returns dE_dR/r

car if two atoms are fixed relatively in cartesian space, then dr/dphi = 0 car and there is no contribution to the derivative

Definition at line 123 of file sym_atom_tree_minimize.cc.

References core::kinematics::AtomTree::atom(), core::optimization::DOF_Node::atom_id(), core::pose::Pose::atom_tree(), core::optimization::atom_tree_get_atompairE_deriv(), core::optimization::symmetry::SymMinimizerMap::begin(), core::pose::Pose::conformation(), core::optimization::symmetry::SymMinimizerMap::copy_dofs_to_pose(), core::optimization::DOF_Node::dof_id(), core::optimization::symmetry::SymMinimizerMap::end(), core::scoring::ScoreFunction::eval_dof_derivative(), core::scoring::ScoreFunction::finalize_after_derivatives(), core::conformation::symmetry::is_symmetric(), core::optimization::symmetry::SymMinimizerMap::link_torsion_vectors(), core::optimization::symmetry::SymMinimizerMap::nangles(), core::scoring::ScoreFunction::setup_for_derivatives(), core::optimization::DOF_Node::torsion_id(), core::optimization::symmetry::SymMinimizerMap::torsion_scale_factor(), core::optimization::torsional_derivative_from_cartesian_derivatives(), and core::optimization::symmetry::SymMinimizerMap::zero_torsion_vectors().

Referenced by core::optimization::symmetry::SymAtomTreeMultifunc::dfunc().

void core::optimization::symmetry::atom_tree_get_atompairE_deriv ( pose::Pose pose,
SymMinimizerMap &  symm_min_map,
scoring::ScoreFunction const &  scorefxn 
)
bool core::optimization::symmetry::DOF_Node_sorter ( DOF_NodeCOP  a,
DOF_NodeCOP  b 
)
void core::optimization::symmetry::numerical_derivative_check ( SymMinimizerMap const &  min_map,
Multifunc const &  func,
Multivec const &  start_vars,
Multivec const &  dE_dvars,
bool const  verbose 
)
static basic::Tracer core::optimization::symmetry::TR ( "core.optimization.symmetry"  )
static

Variable Documentation

bool core::optimization::symmetry::check_hbonds = false
bool core::optimization::symmetry::check_rama = false
bool core::optimization::symmetry::check_score_components = false
bool core::optimization::symmetry::check_score_components_verbose = false
bool core::optimization::symmetry::debug_inaccurateG = false