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


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...


using DOF_ID = id::DOF_ID
< AtomTreeMinimizer
< AtomTreeMinimizer const > 
< SymMinimizerMap
< SymMinimizerMap const > 


static basic::Tracer TR ("core.optimization.symmetry.sym_atom_tree_minimize")
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)
static basic::Tracer TR ("core.optimize")
bool DOF_Node_sorter (DOF_NodeCOP a, DOF_NodeCOP b)
 Stolen from More...


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

typedef utility::pointer::shared_ptr< AtomTreeMinimizer const > core::optimization::symmetry::SymAtomTreeMinimizerCOP
typedef utility::pointer::shared_ptr< SymMinimizerMap const > core::optimization::symmetry::SymMinimizerMapCOP
typedef utility::pointer::shared_ptr< SymMinimizerMap > core::optimization::symmetry::SymMinimizerMapOP

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 

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::optimization::symmetry::SymMinimizerMap::asymmetric_dof(), core::kinematics::AtomTree::atom(), core::optimization::DOF_Node::atom_id(), core::pose::Pose::atom_tree(), 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::dependent(), core::optimization::DOF_Node::dof_id(), core::optimization::symmetry::SymMinimizerMap::end(), core::scoring::ScoreFunction::eval_dof_derivative(), core::scoring::ScoreFunction::finalize_after_derivatives(), core::pose::initialize_dof_id_map(), core::conformation::symmetry::is_symmetric(), core::optimization::symmetry::SymMinimizerMap::link_torsion_vectors(), core::optimization::symmetry::SymMinimizerMap::nangles(), core::optimization::symmetry::SymMinimizerMap::new_sym_min(), 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.optimize"  )
static basic::Tracer core::optimization::symmetry::TR ( "core.optimization.symmetry.sym_atom_tree_minimize"  )

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