Rosetta
|
Namespaces | |
symmetry | |
Typedefs | |
typedef utility::pointer::shared_ptr< AtomTreeMinimizer > | AtomTreeMinimizerOP |
typedef utility::pointer::shared_ptr< AtomTreeMinimizer const > | AtomTreeMinimizerCOP |
typedef boost::tuple< Vector, Vector, Vector, Vector > | VectorQuad |
typedef utility::pointer::shared_ptr< CartesianMinimizer > | CartesianMinimizerOP |
typedef utility::pointer::shared_ptr< CartesianMinimizer const > | CartesianMinimizerCOP |
typedef utility::pointer::shared_ptr< CartesianMinimizerMap > | CartesianMinimizerMapOP |
typedef utility::pointer::shared_ptr< CartesianMinimizerMap const > | CartesianMinimizerMapCOP |
typedef utility::pointer::shared_ptr< DOF_Node > | DOF_NodeOP |
typedef utility::pointer::shared_ptr< DOF_Node const > | DOF_NodeCOP |
typedef utility::pointer::shared_ptr< LineMinimizationAlgorithm > | LineMinimizationAlgorithmOP |
typedef utility::pointer::shared_ptr< LineMinimizationAlgorithm const > | LineMinimizationAlgorithmCOP |
typedef utility::pointer::shared_ptr< MinimizerMap > | MinimizerMapOP |
typedef utility::pointer::shared_ptr< MinimizerMap const > | MinimizerMapCOP |
typedef utility::pointer::shared_ptr< MinimizerOptions > | MinimizerOptionsOP |
typedef utility::pointer::shared_ptr< MinimizerOptions const > | MinimizerOptionsCOP |
typedef utility::pointer::shared_ptr< Multifunc > | MultifuncOP |
typedef utility::pointer::shared_ptr< Multifunc const > | MultifuncCOP |
typedef utility::pointer::shared_ptr< SimpleDerivCheckResult > | SimpleDerivCheckResultOP |
typedef utility::pointer::shared_ptr< SimpleDerivCheckResult const > | SimpleDerivCheckResultCOP |
typedef utility::pointer::shared_ptr< NumDerivCheckData > | NumDerivCheckDataOP |
typedef utility::pointer::shared_ptr< NumDerivCheckData const > | NumDerivCheckDataCOP |
typedef utility::pointer::shared_ptr< NumericalDerivCheckResult > | NumericalDerivCheckResultOP |
typedef utility::pointer::shared_ptr< NumericalDerivCheckResult const > | NumericalDerivCheckResultCOP |
typedef utility::pointer::shared_ptr< Particle > | ParticleOP |
typedef utility::pointer::shared_ptr< Particle const > | ParticleCOP |
typedef utility::vector1< ParticleOP > | ParticleOPs |
typedef utility::pointer::shared_ptr< ParticleSwarmMinimizer > | ParticleSwarmMinimizerOP |
typedef utility::pointer::shared_ptr< ParticleSwarmMinimizer const > | ParticleSwarmMinimizerCOP |
typedef utility::vector1< Real > | Multivec |
Functions | |
static basic::Tracer | TR ("core.optimization") |
void | atom_tree_dfunc (pose::Pose &pose, MinimizerMap &min_map, scoring::ScoreFunction const &scorefxn, Multivec const &vars, Multivec &dE_dvars) |
Real | torsional_derivative_from_cartesian_derivatives (kinematics::tree::Atom const &atom, optimization::DOF_Node const &dof_node, Real dof_deriv, Real torsion_scale_factor) |
void | atom_tree_get_atompairE_deriv (pose::Pose &pose, MinimizerMap &min_map, scoring::ScoreFunction const &scorefxn) |
SimpleDerivCheckResult | simple_numeric_deriv_check (Multifunc const &func, Multivec const &start_vars, Multivec const &dE_dvars, bool send_to_stdout, bool verbose, Size nsteps=5, Real const increment=0.0005) |
Numeric deriv check for Multifuncs other than the AtomTreeMultifunc. More... | |
void | numerical_derivative_check (MinimizerMap const &min_map, Multifunc const &func, Multivec const &start_vars, Multivec const &dE_dvars, NumericalDerivCheckResultOP deriv_check_result, bool const verbose) |
static basic::Tracer | TR ("core.optimization.AtomTreeMinimizer") |
static basic::Tracer | TR ("core.optimization") |
void | activate_dof_deriv_terms_for_cart_min (pose::Pose &pose, scoring::ScoreFunction const &scorefxn, CartesianMinimizerMap const &min_map) |
Activate DOF-derivative defining terms for stationary residues if the atoms defining the DOFs these terms depend on are moving. More... | |
void | cartesian_dfunc (pose::Pose &pose, CartesianMinimizerMap &min_map, scoring::ScoreFunction const &scorefxn, Multivec const &vars, Multivec &dE_dvars) |
void | cartesian_collect_atompairE_deriv (pose::Pose &pose, CartesianMinimizerMap &min_map, scoring::ScoreFunction const &scorefxn, Multivec &dE_dvars, core::Real scale) |
void | cartesian_collect_torsional_deriv (pose::Pose &pose, CartesianMinimizerMap &min_map, core::scoring::ScoreFunction const &scorefxn, Multivec &dE_dvars, core::Real scale) |
void | cart_numerical_derivative_check (CartesianMinimizerMap const &min_map, CartesianMultifunc const &func, Multivec const &start_vars, Multivec const &dE_dvars, NumericalDerivCheckResultOP deriv_check_result, bool const verbose) |
void | tors_deriv_to_cartesian (Real dE_dtor, VectorQuad const &coords, VectorQuad &dE_dxs) |
static basic::Tracer | TR ("core.optimization.CartesianMinimizer") |
static basic::Tracer | TR ("core.optimization.CMAES_Minimizer") |
static basic::Tracer | TR ("core.optimization.GA_Minimizer") |
static bool | yes_no_random (Real probability) |
Return true with given probability. More... | |
static basic::Tracer | TR ("core.optimization.LineMinimizer") |
static basic::Tracer | TR ("core.optimization.Minimizer") |
bool | DOF_Node_sorter (DOF_NodeCOP a, DOF_NodeCOP b) |
static basic::Tracer | TR ("core.optimization.NelderMeadSimplex") |
std::ostream & | operator<< (std::ostream &os, Particle const &p) |
stream output operator for Particle types More... | |
bool | cmp_particles (ParticleOP a, ParticleOP b) |
typedef utility::pointer::shared_ptr< AtomTreeMinimizer const > core::optimization::AtomTreeMinimizerCOP |
typedef utility::pointer::shared_ptr< AtomTreeMinimizer > core::optimization::AtomTreeMinimizerOP |
typedef utility::pointer::shared_ptr< CartesianMinimizer const > core::optimization::CartesianMinimizerCOP |
typedef utility::pointer::shared_ptr< CartesianMinimizerMap const > core::optimization::CartesianMinimizerMapCOP |
typedef utility::pointer::shared_ptr< CartesianMinimizerMap > core::optimization::CartesianMinimizerMapOP |
typedef utility::pointer::shared_ptr< CartesianMinimizer > core::optimization::CartesianMinimizerOP |
typedef utility::pointer::shared_ptr< DOF_Node const > core::optimization::DOF_NodeCOP |
typedef utility::pointer::shared_ptr< DOF_Node > core::optimization::DOF_NodeOP |
typedef utility::pointer::shared_ptr< LineMinimizationAlgorithm const > core::optimization::LineMinimizationAlgorithmCOP |
typedef utility::pointer::shared_ptr< LineMinimizationAlgorithm > core::optimization::LineMinimizationAlgorithmOP |
typedef utility::pointer::shared_ptr< MinimizerMap const > core::optimization::MinimizerMapCOP |
typedef utility::pointer::shared_ptr< MinimizerMap > core::optimization::MinimizerMapOP |
typedef utility::pointer::shared_ptr< MinimizerOptions const > core::optimization::MinimizerOptionsCOP |
typedef utility::pointer::shared_ptr< MinimizerOptions > core::optimization::MinimizerOptionsOP |
typedef utility::pointer::shared_ptr< Multifunc const > core::optimization::MultifuncCOP |
typedef utility::pointer::shared_ptr< Multifunc > core::optimization::MultifuncOP |
typedef utility::vector1< Real > core::optimization::Multivec |
typedef utility::pointer::shared_ptr< NumDerivCheckData const > core::optimization::NumDerivCheckDataCOP |
typedef utility::pointer::shared_ptr< NumDerivCheckData > core::optimization::NumDerivCheckDataOP |
typedef utility::pointer::shared_ptr< NumericalDerivCheckResult const > core::optimization::NumericalDerivCheckResultCOP |
typedef utility::pointer::shared_ptr< NumericalDerivCheckResult > core::optimization::NumericalDerivCheckResultOP |
typedef utility::pointer::shared_ptr< Particle const > core::optimization::ParticleCOP |
typedef utility::pointer::shared_ptr< Particle > core::optimization::ParticleOP |
typedef utility::vector1< ParticleOP > core::optimization::ParticleOPs |
typedef utility::pointer::shared_ptr< ParticleSwarmMinimizer const > core::optimization::ParticleSwarmMinimizerCOP |
typedef utility::pointer::shared_ptr< ParticleSwarmMinimizer > core::optimization::ParticleSwarmMinimizerOP |
typedef utility::pointer::shared_ptr< SimpleDerivCheckResult const > core::optimization::SimpleDerivCheckResultCOP |
typedef utility::pointer::shared_ptr< SimpleDerivCheckResult > core::optimization::SimpleDerivCheckResultOP |
typedef boost::tuple< Vector,Vector,Vector,Vector > core::optimization::VectorQuad |
void core::optimization::activate_dof_deriv_terms_for_cart_min | ( | pose::Pose & | pose, |
scoring::ScoreFunction const & | scorefxn, | ||
CartesianMinimizerMap const & | min_map | ||
) |
Activate DOF-derivative defining terms for stationary residues if the atoms defining the DOFs these terms depend on are moving.
One-body and two-body energies that define DOF derivatives are activated for nodes and edges in the minimization graph if the terms depend on atoms that are moving. The terms report which atoms define the DOFs they depend on as PartialAtomIDs. These are resolved into full-fledged atom IDs using the Residues in the Pose's Conformation.
When 1-body energies are activated, they need only be activated on the inactive residue. When 2-body energies are activated, they need to be activated on the inactive residue, and on the edges between the inactive residue and the other inactive neighbors that define the DOFs that they term depends on.
This code activates terms on residues that the ScoreFunction's setup_for_minimizing function determined were inactive. This causes the MinimizationGraph's "fixed_energies" EMap to be inaccurate: it "double counts" these terms contributions for these residues, which leads to the cosmetic discrepancy between the energy that's seen by the minimizer and the actual total energy for the Pose. This is only a cosmetic discrepancy because the minimizer will produce exactly the same results with a constant offset to the score. However, this discrepancy is ugly, so it had to be fixed.
So to compensate, the unfixed energies are re-accumulated out of the Energies object and then subtracted out of the fixed_energies.
References core::scoring::EMapVector::accumulate(), core::optimization::CartesianMinimizerMap::atom_is_moving(), core::scoring::ScoreFunction::ci_1b_methods_begin(), core::scoring::ScoreFunction::ci_1b_methods_end(), core::scoring::methods::ci_2b, core::scoring::ScoreFunction::ci_2b_begin(), core::scoring::ScoreFunction::ci_2b_end(), core::scoring::ScoreFunction::ci_lr_2b_methods_begin(), core::scoring::ScoreFunction::ci_lr_2b_methods_end(), core::pose::Pose::conformation(), core::optimization::CartesianMinimizerMap::domain_map(), core::pose::Pose::energies(), core::scoring::Energies::energy_graph(), core::pose::symmetry::is_symmetric(), core::scoring::Energies::long_range_container(), core::scoring::Energies::minimization_graph(), core::scoring::Energies::onebody_energies(), core::pose::Pose::residue(), core::conformation::Conformation::resolve_partial_atom_id(), and core::pose::Pose::total_residue().
Referenced by core::optimization::CartesianMinimizer::run().
void core::optimization::atom_tree_dfunc | ( | pose::Pose & | pose, |
MinimizerMap & | 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::kinematics::AtomTree::atom(), core::optimization::DOF_Node::atom_id(), core::pose::Pose::atom_tree(), atom_tree_get_atompairE_deriv(), core::optimization::MinimizerMap::begin(), core::optimization::MinimizerMap::copy_dofs_to_pose(), core::optimization::DOF_Node::dof_id(), core::optimization::MinimizerMap::end(), core::scoring::ScoreFunction::eval_dof_derivative(), core::scoring::ScoreFunction::finalize_after_derivatives(), core::optimization::MinimizerMap::link_torsion_vectors(), core::optimization::MinimizerMap::nangles(), core::scoring::ScoreFunction::setup_for_derivatives(), core::optimization::DOF_Node::torsion_id(), core::optimization::MinimizerMap::torsion_scale_factor(), torsional_derivative_from_cartesian_derivatives(), and core::optimization::MinimizerMap::zero_torsion_vectors().
Referenced by protocols::ncbb::SecStructMinimizeMultiFunc::dfunc(), protocols::normalmode::NormalModeMultifunc::dfunc(), and core::optimization::AtomTreeMultifunc::dfunc().
void core::optimization::atom_tree_get_atompairE_deriv | ( | pose::Pose & | pose, |
MinimizerMap & | min_map, | ||
scoring::ScoreFunction const & | scorefxn | ||
) |
First evaluate all derivatives for the residue- and residue-pair decomposable terms, using the minimization graph as a guide. Then, evaluate any further derivatives for those terms that are not residue- or residue-pair decomposable
References core::optimization::MinimizerMap::atom_derivatives(), core::id::AtomID::atomno(), core::optimization::DOF_Node::atoms(), core::optimization::MinimizerMap::begin(), core::optimization::MinimizerMap::domain_map(), core::optimization::MinimizerMap::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::scoring::Energies::minimization_graph(), core::pose::Pose::residue(), core::id::AtomID::rsd(), core::pose::Pose::size(), and core::scoring::ScoreFunction::weights().
Referenced by atom_tree_dfunc().
void core::optimization::cart_numerical_derivative_check | ( | CartesianMinimizerMap const & | min_map, |
CartesianMultifunc const & | func, | ||
Multivec const & | start_vars, | ||
Multivec const & | dE_dvars, | ||
NumericalDerivCheckResultOP | deriv_check_result, | ||
bool const | verbose | ||
) |
References protocols::comparative_modeling::features::A, core::id::AtomID::atomno(), core::chemical::element::F, core::optimization::CartesianMinimizerMap::get_atom(), core::chemical::element::I, protocols::mean_field::max(), protocols::mean_field::min(), core::optimization::CartesianMinimizerMap::natoms(), core::optimization::CartesianMinimizerMap::ndofs(), core::id::AtomID::rsd(), and TR().
Referenced by core::optimization::CartesianMultifunc::dfunc().
void core::optimization::cartesian_collect_atompairE_deriv | ( | pose::Pose & | pose, |
CartesianMinimizerMap & | min_map, | ||
scoring::ScoreFunction const & | scorefxn, | ||
Multivec & | dE_dvars, | ||
core::Real | scale | ||
) |
References core::optimization::CartesianMinimizerMap::atom_derivatives(), core::id::AtomID::atomno(), core::optimization::CartesianMinimizerMap::domain_map(), core::pose::Pose::energies(), core::scoring::eval_atom_derivatives_for_minnode(), core::scoring::ScoreFunction::eval_npd_atom_derivative(), core::scoring::eval_weighted_atom_derivatives_for_minedge(), core::optimization::CartesianMinimizerMap::get_atom(), core::conformation::symmetry::is_symmetric(), core::scoring::Energies::minimization_graph(), core::optimization::CartesianMinimizerMap::natoms(), core::pose::Pose::residue(), core::id::AtomID::rsd(), core::pose::Pose::size(), and core::scoring::ScoreFunction::weights().
Referenced by cartesian_dfunc().
void core::optimization::cartesian_collect_torsional_deriv | ( | pose::Pose & | pose, |
CartesianMinimizerMap & | min_map, | ||
core::scoring::ScoreFunction const & | scorefxn, | ||
Multivec & | dE_dvars, | ||
core::Real | scale | ||
) |
References core::pose::Pose::conformation(), protocols::simple_filters::coords(), core::scoring::ScoreFunction::eval_dof_derivative(), core::optimization::CartesianMinimizerMap::get_atom_index(), core::optimization::CartesianMinimizerMap::get_dof_id(), core::conformation::Conformation::get_torsion_angle_atom_ids(), core::optimization::CartesianMinimizerMap::get_TorsionID(), core::optimization::CartesianMinimizerMap::ntorsions(), tors_deriv_to_cartesian(), and core::pose::Pose::xyz().
Referenced by cartesian_dfunc().
void core::optimization::cartesian_dfunc | ( | pose::Pose & | pose, |
CartesianMinimizerMap & | min_map, | ||
scoring::ScoreFunction const & | scorefxn, | ||
Multivec const & | vars, | ||
Multivec & | dE_dvars | ||
) |
References cartesian_collect_atompairE_deriv(), cartesian_collect_torsional_deriv(), core::pose::Pose::conformation(), core::optimization::CartesianMinimizerMap::copy_dofs_to_pose(), core::scoring::ScoreFunction::finalize_after_derivatives(), core::conformation::symmetry::is_symmetric(), core::optimization::CartesianMinimizerMap::ndofs(), core::scoring::ScoreFunction::setup_for_derivatives(), and core::optimization::CartesianMinimizerMap::zero_stored_derivs().
Referenced by core::optimization::CartesianMultifunc::dfunc().
bool core::optimization::cmp_particles | ( | ParticleOP | a, |
ParticleOP | b | ||
) |
References core::pose::motif::a(), and protocols::match::upstream::b.
Referenced by core::optimization::ParticleSwarmMinimizer::run().
bool core::optimization::DOF_Node_sorter | ( | DOF_NodeCOP | a, |
DOF_NodeCOP | b | ||
) |
References core::pose::motif::a(), and protocols::match::upstream::b.
Referenced by core::optimization::MinimizerMap::setup().
void core::optimization::numerical_derivative_check | ( | MinimizerMap const & | min_map, |
Multifunc const & | func, | ||
Multivec const & | start_vars, | ||
Multivec const & | dE_dvars, | ||
NumericalDerivCheckResultOP | deriv_check_result, | ||
bool const | verbose | ||
) |
References protocols::comparative_modeling::features::A, core::id::DOF_ID::atomno(), core::optimization::DOF_Node::atomno(), core::optimization::DOF_Node::atoms(), core::optimization::MinimizerMap::begin(), core::optimization::DOF_Node::dependent(), core::optimization::DOF_Node::dof_id(), core::optimization::MinimizerMap::end(), core::chemical::element::F, core::chemical::element::I, protocols::mean_field::max(), protocols::mean_field::min(), core::optimization::MinimizerMap::nangles(), core::optimization::DOF_Node::parent(), core::id::DOF_ID::rsd(), core::optimization::DOF_Node::rsd(), TR(), core::id::DOF_ID::type(), and core::optimization::DOF_Node::type().
Referenced by protocols::ligand_docking::ga_ligand_dock::GriddedAtomTreeMultifunc::dfunc(), and core::optimization::AtomTreeMultifunc::dfunc().
std::ostream & core::optimization::operator<< | ( | std::ostream & | os, |
Particle const & | p | ||
) |
stream output operator for Particle types
References core::chemical::element::F, core::optimization::Particle::fitness_, core::optimization::Particle::fitness_pbest(), and core::optimization::Particle::p_.
SimpleDerivCheckResult core::optimization::simple_numeric_deriv_check | ( | Multifunc const & | func, |
Multivec const & | start_vars, | ||
Multivec const & | dE_dvars, | ||
bool | send_to_stdout, | ||
bool | verbose, | ||
Size | nsteps, | ||
Real const | increment | ||
) |
Numeric deriv check for Multifuncs other than the AtomTreeMultifunc.
References protocols::comparative_modeling::features::A, core::optimization::SimpleDerivCheckResult::abs_deriv_dev(), core::optimization::SimpleDerivCheckResult::best_abs_log_norm_ratio(), core::optimization::SimpleDerivCheckResult::best_cos_theta(), core::optimization::SimpleDerivCheckResult::best_norm_analytic(), core::optimization::SimpleDerivCheckResult::best_norm_numeric(), core::chemical::element::F, core::chemical::element::I, protocols::mean_field::max(), protocols::mean_field::min(), core::optimization::SimpleDerivCheckResult::rel_deriv_dev(), core::optimization::SimpleDerivCheckResult::step_data(), and TR().
void core::optimization::tors_deriv_to_cartesian | ( | Real | dE_dtor, |
VectorQuad const & | coords, | ||
VectorQuad & | dE_dxs | ||
) |
References protocols::simple_filters::coords().
Referenced by cartesian_collect_torsional_deriv(), and core::pack::scmin::CartSCMinMultifunc::dfunc().
Real core::optimization::torsional_derivative_from_cartesian_derivatives | ( | kinematics::tree::Atom const & | atom, |
optimization::DOF_Node const & | dof_node, | ||
Real | dof_deriv, | ||
Real | torsion_scale_factor | ||
) |
Refactored from atom_tree_dfunc above for use in alternate minimization contexts
References core::kinematics::tree::Atom::dof(), core::optimization::DOF_Node::F1(), core::optimization::DOF_Node::F2(), core::kinematics::tree::Atom::get_dof_axis_and_end_pos(), core::chemical::rings::PHI, core::id::RB4, core::id::RB5, core::id::RB6, core::chemical::rings::THETA, and core::optimization::DOF_Node::type().
Referenced by atom_tree_dfunc(), core::optimization::symmetry::atom_tree_dfunc(), and core::pack::scmin::SCMinMultifunc::dfunc().
|
static |
Referenced by core::optimization::Minimizer::dfpmin(), core::optimization::Minimizer::dfpmin_armijo(), core::optimization::Minimizer::lbfgs(), core::optimization::Minimizer::linmin_iterated(), core::optimization::GA_Minimizer::loop(), numerical_derivative_check(), core::optimization::JJH_Minimizer::run(), core::optimization::CMAES_Minimizer::run(), core::optimization::GA_Minimizer::run(), simple_numeric_deriv_check(), and core::optimization::GA_Minimizer::step().
|
static |
Referenced by cart_numerical_derivative_check().
|
static |
|
static |
Referenced by core::optimization::CartesianMinimizer::run().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Return true with given probability.
References protocols::simple_moves::bb_sampler::probability, and core::scoring::rg.
Referenced by core::optimization::GA_Minimizer::cross_over(), core::optimization::GA_Minimizer::mutate(), and core::optimization::GA_Minimizer::step().