Rosetta
|
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< SymMinimizerMap > | SymMinimizerMapOP |
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 |
using core::optimization::symmetry::DOF_ID = typedef id::DOF_ID |
typedef utility::pointer::shared_ptr< SymMinimizerMap const > core::optimization::symmetry::SymMinimizerMapCOP |
typedef utility::pointer::shared_ptr< SymMinimizerMap > core::optimization::symmetry::SymMinimizerMapOP |
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 | ||
) |
References core::optimization::symmetry::SymMinimizerMap::atom_derivatives(), core::id::AtomID::atomno(), core::optimization::DOF_Node::atomno(), core::optimization::DOF_Node::atoms(), core::optimization::symmetry::SymMinimizerMap::begin(), core::pose::Pose::conformation(), core::optimization::symmetry::SymMinimizerMap::dependent_begin(), core::optimization::symmetry::SymMinimizerMap::dependent_end(), core::optimization::DOF_Node::dof_id(), core::optimization::symmetry::SymMinimizerMap::dof_node_from_id(), core::optimization::symmetry::SymMinimizerMap::domain_map(), core::kinematics::FoldTree::downstream_jump_residue(), core::optimization::symmetry::SymMinimizerMap::end(), core::pose::Pose::energies(), core::scoring::eval_atom_derivatives_for_minedge(), core::scoring::eval_atom_derivatives_for_minnode(), core::scoring::ScoreFunction::eval_npd_atom_derivative(), core::optimization::DOF_Node::F1(), core::optimization::DOF_Node::F2(), core::pose::Pose::fold_tree(), core::kinematics::FoldTree::get_jump_that_builds_residue(), core::conformation::symmetry::is_symmetric(), core::optimization::symmetry::SymMinimizerMap::new_sym_min(), core::pose::Pose::residue(), core::id::AtomID::rsd(), core::id::DOF_ID::rsd(), core::pose::Pose::size(), core::optimization::DOF_Node::type(), and core::scoring::ScoreFunction::weights().
Referenced by atom_tree_dfunc().
bool core::optimization::symmetry::DOF_Node_sorter | ( | DOF_NodeCOP | a, |
DOF_NodeCOP | b | ||
) |
Stolen from MinimizerMap.cc.
References core::pose::motif::a(), and protocols::match::upstream::b.
Referenced by core::optimization::symmetry::SymMinimizerMap::SymMinimizerMap().
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 | ||
) |
References protocols::comparative_modeling::features::A, core::optimization::symmetry::MinDebug::abs_deriv_dev, core::id::DOF_ID::atomno(), core::optimization::DOF_Node::atomno(), core::optimization::DOF_Node::atoms(), core::optimization::symmetry::SymMinimizerMap::begin(), core::optimization::symmetry::MinDebug::best_abs_log_norm_ratio, core::optimization::symmetry::MinDebug::best_cos_theta, core::optimization::symmetry::MinDebug::best_norm_analytic, core::optimization::symmetry::MinDebug::best_norm_numeric, core::optimization::DOF_Node::dependent(), core::optimization::symmetry::SymMinimizerMap::end(), core::chemical::element::F, core::chemical::element::I, protocols::mean_field::max(), protocols::mean_field::min(), core::optimization::symmetry::SymMinimizerMap::nangles(), core::optimization::symmetry::SymMinimizerMap::new_sym_min(), core::optimization::DOF_Node::parent(), core::optimization::symmetry::MinDebug::rel_deriv_dev, core::id::DOF_ID::rsd(), core::optimization::DOF_Node::rsd(), TR(), core::id::DOF_ID::type(), and core::optimization::DOF_Node::type().
Referenced by core::optimization::symmetry::SymAtomTreeMultifunc::dfunc().
|
static |
Referenced by numerical_derivative_check().
|
static |
Referenced by core::optimization::symmetry::SymAtomTreeMinimizer::run().
bool core::optimization::symmetry::check_hbonds = false |
bool core::optimization::symmetry::check_rama = false |
Referenced by protocols::normalmode::NormalModeMultifunc::dump(), core::optimization::AtomTreeMultifunc::dump(), core::optimization::CartesianMultifunc::dump(), core::optimization::symmetry::SymAtomTreeMultifunc::dump(), and protocols::kinematic_closure::solution_pickers::FilteredSolutions::FilteredSolutions().
bool core::optimization::symmetry::check_score_components = false |
bool core::optimization::symmetry::check_score_components_verbose = false |
bool core::optimization::symmetry::debug_inaccurateG = false |