Rosetta
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

using DOF_ID = id::DOF_ID
 
typedef utility::pointer::shared_ptr< SymMinimizerMapSymMinimizerMapOP
 
typedef utility::pointer::shared_ptr< SymMinimizerMap const > SymMinimizerMapCOP
 

Functions

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

◆ DOF_ID

◆ SymMinimizerMapCOP

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

◆ SymMinimizerMapOP

typedef utility::pointer::shared_ptr< SymMinimizerMap > core::optimization::symmetry::SymMinimizerMapOP

Function Documentation

◆ atom_tree_dfunc()

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

◆ atom_tree_get_atompairE_deriv()

void core::optimization::symmetry::atom_tree_get_atompairE_deriv ( pose::Pose pose,
SymMinimizerMap symm_min_map,
scoring::ScoreFunction const &  scorefxn 
)

◆ DOF_Node_sorter()

bool core::optimization::symmetry::DOF_Node_sorter ( DOF_NodeCOP  a,
DOF_NodeCOP  b 
)

◆ numerical_derivative_check()

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 
)

◆ TR() [1/2]

static basic::Tracer core::optimization::symmetry::TR ( "core.optimization.symmetry.sym_atom_tree_minimize"  )
static

◆ TR() [2/2]

static basic::Tracer core::optimization::symmetry::TR ( "core.optimize"  )
static

Variable Documentation

◆ check_hbonds

bool core::optimization::symmetry::check_hbonds = false

◆ check_rama

bool core::optimization::symmetry::check_rama = false

◆ check_score_components

bool core::optimization::symmetry::check_score_components = false

◆ check_score_components_verbose

bool core::optimization::symmetry::check_score_components_verbose = false

◆ debug_inaccurateG

bool core::optimization::symmetry::debug_inaccurateG = false