Rosetta Protocols  2014.35
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber Class Referenceabstract

Taboo-sampling perturber base class, the two variants of which, share much code in common, but interface with separate Ramachandran potentials. More...

#include <KinematicPerturber.hh>

Public Types

typedef KinematicPerturber parent

Public Member Functions

 BaseTabooPerturber (KinematicMoverCAP kinmover_in)
virtual ~BaseTabooPerturber ()
void perturb_chain (core::pose::Pose const &pose, utility::vector1< core::Real > &torsions, utility::vector1< core::Real > &bond_ang, utility::vector1< core::Real > &)
 function that perturbs the chain, i.e. sets new values for the torsions, bond angles and bond lengths note: the torsions/angles/lengths that are input to this function will be identical to the ones in the pose, i.e. only the dof values that are explicitly set by this function plus the pivots will have changed after loop closure More...
void set_pose_after_closure (core::pose::Pose &pose, utility::vector1< core::Real > const &torsions, utility::vector1< core::Real > const &bond_ang, utility::vector1< core::Real > const &bond_len, bool closure_successful) const
 after the kinmover has closed the loop, the perturber needs to put the solutions into the pose note: the base class version of this function sets the torsions, so any KinematicPerturber that only changes the torsions will not have to implement this function More...
void set_vary_ca_bond_angles (bool vary_ca_bond_angles)
void clear_torsion_string_stack ()
core::Size num_strings () const
core::conformation::torsion_bin_string next_torsion_string ()
- Public Member Functions inherited from protocols::loops::loop_closure::kinematic_closure::KinematicPerturber
 KinematicPerturber ()
virtual ~KinematicPerturber ()
virtual std::string perturber_type () const =0
void set_kinmover (KinematicMoverCAP kinmover)
void set_movemap (core::kinematics::MoveMapCOP mm)
core::kinematics::MoveMapCOP get_movemap () const
virtual bool perturber_exhausted () const
void set_max_sample_iterations (core::Size sample_its)
core::Size max_sample_iterations () const
void clear_torsion_string_stack ()
KinematicMoverCAP kinmover () const

Private Member Functions

virtual void get_random_phi_psi_for_residue (core::pose::Pose const &pose, core::Size resid, core::conformation::ppo_torsion_bin torbin, core::Real &phi, core::Real &psi) const =0
void refill_torsion_string_vector ()
virtual std::map
< core::conformation::ppo_torsion_bin,
get_entries_per_torsion_bin (utility::vector1< core::chemical::AA > loop_seq, core::Size resid) const =0
 This function is implemented by the derived classes and is used to interface with the particular Ramachandran library that the derived classs relies upon it is invoked inside of refill_torsion_string_vector. More...

Private Attributes

bool vary_ca_bond_angles_
bool sample_omega_for_pre_prolines_
core::Size num_strings_
< core::conformation::torsion_bin_string

Detailed Description

Taboo-sampling perturber base class, the two variants of which, share much code in common, but interface with separate Ramachandran potentials.

Member Typedef Documentation

Constructor & Destructor Documentation

protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::BaseTabooPerturber ( KinematicMoverCAP  kinmover_in)
protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::~BaseTabooPerturber ( )

Member Function Documentation

void protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::clear_torsion_string_stack ( )
virtual std::map< core::conformation::ppo_torsion_bin, core::Size > protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::get_entries_per_torsion_bin ( utility::vector1< core::chemical::AA loop_seq,
core::Size  resid 
) const
privatepure virtual

This function is implemented by the derived classes and is used to interface with the particular Ramachandran library that the derived classs relies upon it is invoked inside of refill_torsion_string_vector.

Implemented in protocols::loops::loop_closure::kinematic_closure::NeighborDependentTabooSamplingKinematicPerturber, and protocols::loops::loop_closure::kinematic_closure::TabooSamplingKinematicPerturber.

Referenced by refill_torsion_string_vector().

virtual void protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::get_random_phi_psi_for_residue ( core::pose::Pose const &  pose,
core::Size  resid,
core::conformation::ppo_torsion_bin  torbin,
core::Real phi,
core::Real psi 
) const
privatepure virtual
core::conformation::torsion_bin_string protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::next_torsion_string ( )
core::Size protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::num_strings ( ) const

References num_strings_.

void protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::perturb_chain ( core::pose::Pose const &  pose,
utility::vector1< core::Real > &  torsions,
utility::vector1< core::Real > &  bond_ang,
utility::vector1< core::Real > &  bond_len 
void protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::refill_torsion_string_vector ( )

Repopulate the torsion-bin-string vector that's used to select the regions of the Ramachandran map from which to draw the phi/psi angles. This queries the kinmover_ to make sure that none of the candidate torsion bin strings have been tried in the past.

  • for each position in the loop, fetch the corresponding residues, and then ask the Rama lookup table for the relative populations of each torsion bin, and generate a string of length n with the frequencies of each letter corresponding to the respective torsion bin's frequency for this residue
  • maybe the function to generate a corresponding string can even be part of the Rama function?
  • fill up with X if the strings aren't long enough – they must all have the same length
  • for later applications we could think about adjusting the torsion bin frequencies by those that have already been sampled –> we'd need another structure that holds the strings that were already sampled (might be moved there directly the moment they're provided by this function)
  • randomly shuffle each string
  • generate n random torsion strings for the loop by appending positions 1,2,3... of each of the now randomized strings [for the positions] – this reflects the respective torsion bin frequencies (because the initial strings do, see above)

References get_entries_per_torsion_bin(), protocols::loops::loop_closure::kinematic_closure::KinematicPerturber::kinmover(), num_strings_, ppo_torbin_X, numeric::random::random_permutation(), random_torsion_strings_, and numeric::random::RG.

Referenced by next_torsion_string().

void protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::set_pose_after_closure ( core::pose::Pose pose,
utility::vector1< core::Real > const &  torsions,
utility::vector1< core::Real > const &  ,
utility::vector1< core::Real > const &  ,
) const
void protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::set_vary_ca_bond_angles ( bool  vary_ca_bond_angles)

References vary_ca_bond_angles_.

Member Data Documentation

core::Size protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::num_strings_
utility::vector1< core::conformation::torsion_bin_string > protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::random_torsion_strings_
bool protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::sample_omega_for_pre_prolines_

Referenced by perturb_chain().

bool protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::vary_ca_bond_angles_

The documentation for this class was generated from the following files: