Rosetta Protocols
2014.35

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...  
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 (ClosureProblemCOP problem) const 
Private Member Functions  
ClosureSolution (ClosureProblemCOP const problem, 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  
ClosureProblemCOP const  problem_ 
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 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::num_bump_filter_fails, protocols::kinematic_closure::num_rama_filter_fails, problem_, and temperature.

private 
Check for overlapping backbone atoms in this solution.
Apply the solution to the pose before calling this filter.
References problem_, core::pose::Pose::residue(), and core::pose::Pose::total_residue().
Referenced by apply_if_reasonable().

private 
Check for unlikely pivot torsions in this solution.
References core::pose::Pose::aa(), numeric::conversions::degrees(), degrees(), problem_, rama, torsion_angles_, type, numeric::random::uniform(), and uniform().
Referenced by apply_if_reasonable().
Real protocols::kinematic_closure::ClosureSolution::get_distance  (  ClosureProblemCOP  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_, distance(), and torsion_angles_.
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_, numeric::kinematic_closure::radians::chainXYZ(), jacobian_, numeric::max(), max(), problem_, r1, r2, s1, s2, 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().