Rosetta 3.4
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)

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


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

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

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines