Rosetta
|
Represent a single solution to a kinematic closure problem. More...
#include <ClosureSolution.hh>
Public Member Functions | |
void | apply (Pose &pose) const |
Apply this solution to the given pose. More... | |
bool | apply_if_reasonable (Pose &pose, bool rama_on=true, bool bump_on=true, bool be_lenient=false) const |
If this solution passes rama and bump checks, apply it to the given pose. Return whether or not the filters were passed. More... | |
core::Size | get_index () const |
Return a unique number identifying this solution. More... | |
Real | get_jacobian () const |
Return the Jacobian for this solution. More... | |
Real | get_distance (ClosureProblem const *problem) const |
Private Member Functions | |
ClosureSolution (ClosureProblem const *problem, core::Size const solution_index, ParameterList const &torsion_angles, ParameterList const &bond_angles, ParameterList const &bond_lengths) | |
Constructor used internally to build a solution from the internal degrees of freedom returned by the closure algorithm. More... | |
bool | check_rama (Pose const &pose, Real const temperature) const |
Check for unlikely pivot torsions in this solution. More... | |
bool | check_overlap (Pose const &pose, Real const scale_factor) const |
Check for overlapping backbone atoms in this solution. More... | |
Private Attributes | |
ClosureProblem const * | problem_ |
core::Size const | index_ |
ParameterList const | bond_lengths_ |
ParameterList const | bond_angles_ |
ParameterList const | torsion_angles_ |
Real | jacobian_ |
Friends | |
class | ClosureProblem |
Represent a single solution to a kinematic closure problem.
The ClosureSolution class represents the solutions returned by ClosureProblem.solve(). The most important methods of this class are apply() and apply_if_reasonable(). The former unconditionally applies the solution to the given pose, while the latter does so only if the solution passes a rama and bump check.
|
private |
Constructor used internally to build a solution from the internal degrees of freedom returned by the closure algorithm.
This constructor is called by ClosureProblem, which is a friend class. It is declared as private because it should only be called from code that has been specifically written to solve a closure problem.
void protocols::kinematic_closure::ClosureSolution::apply | ( | Pose & | pose | ) | const |
Apply this solution to the given pose.
References protocols::kinematic_closure::ClosureProblem::apply_internal_coordinates(), bond_angles_, bond_lengths_, problem_, and torsion_angles_.
Referenced by apply_if_reasonable().
bool protocols::kinematic_closure::ClosureSolution::apply_if_reasonable | ( | Pose & | pose, |
bool | rama_on = true , |
||
bool | bump_on = true , |
||
bool | be_lenient = false |
||
) | const |
If this solution passes rama and bump checks, apply it to the given pose. Return whether or not the filters were passed.
References apply(), check_overlap(), check_rama(), protocols::kinematic_closure::ClosureProblem::mutate_residues(), protocols::kinematic_closure::num_bump_filter_fails, protocols::kinematic_closure::num_rama_filter_fails, protocols::kinematic_closure::ClosureProblem::perturbed_sequence(), problem_, protocols::kinematic_closure::ClosureProblem::restore(), and protocols::kinematic_closure::ClosureProblem::sequence_mutated().
|
private |
Check for overlapping backbone atoms in this solution.
Apply the solution to the pose before calling this filter.
References core::conformation::Residue::atom_type(), protocols::kinematic_closure::ClosureProblem::first_residue(), core::conformation::Residue::is_protein(), protocols::kinematic_closure::ClosureProblem::last_residue(), core::chemical::AtomType::lj_radius(), core::conformation::Residue::nbr_atom(), core::conformation::Residue::nbr_radius(), core::conformation::Residue::nheavyatoms(), problem_, core::pose::Pose::residue(), core::pose::Pose::size(), and core::conformation::Residue::xyz().
Referenced by apply_if_reasonable().
|
private |
Check for unlikely pivot torsions in this solution.
References core::pose::Pose::aa(), protocols::kinematic_closure::ClosureProblem::pivot_atoms(), protocols::kinematic_closure::ClosureProblem::pivot_residues(), protocols::simple_moves::bb_sampler::probability, problem_, core::scoring::rama, torsion_angles_, and protocols::kinematic_closure::ClosureProblem::unperturbed_torsions_.
Referenced by apply_if_reasonable().
Real protocols::kinematic_closure::ClosureSolution::get_distance | ( | ClosureProblem const * | problem | ) | const |
@ brief Return a distance metric indicating how similar this solution is to the given problem.
Note that this is not a rigorous distance metric. It's just meant to distinguish one solution that's nearly identical to the given problem from several solutions that aren't.
References bond_angles_, bond_lengths_, core::kinematics::distance(), protocols::kinematic_closure::ClosureProblem::num_atoms(), torsion_angles_, protocols::kinematic_closure::ClosureProblem::unperturbed_angles_, protocols::kinematic_closure::ClosureProblem::unperturbed_lengths_, and protocols::kinematic_closure::ClosureProblem::unperturbed_torsions_.
Size protocols::kinematic_closure::ClosureSolution::get_index | ( | ) | const |
Return a unique number identifying this solution.
References index_.
Real protocols::kinematic_closure::ClosureSolution::get_jacobian | ( | ) | const |
Return the Jacobian for this solution.
This quantity indicates how much the dihedral space around the pivots was warped by the choice of controls and is used as a normalization factor when picking a move in such a way that obeys detailed balance. The return value is cached, so it's cheap to call this function multiple times.
References bond_angles_, bond_lengths_, jacobian_, protocols::mean_field::max(), protocols::kinematic_closure::ClosureProblem::num_atoms(), protocols::kinematic_closure::ClosureProblem::pivot_atoms(), problem_, protocols::hybridization::r1, protocols::hybridization::r2, and torsion_angles_.
|
friend |
|
private |
Referenced by apply(), get_distance(), and get_jacobian().
|
private |
Referenced by apply(), get_distance(), and get_jacobian().
|
private |
Referenced by get_index().
|
mutableprivate |
Referenced by get_jacobian().
|
private |
Referenced by apply(), apply_if_reasonable(), check_overlap(), check_rama(), and get_jacobian().
|
private |
Referenced by apply(), check_rama(), get_distance(), and get_jacobian().