Rosetta
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>

Inheritance diagram for protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber:
Inheritance graph
[legend]

Public Types

typedef KinematicPerturber parent
 

Public Member Functions

 BaseTabooPerturber (KinematicMoverCAP kinmover_in)
 
 ~BaseTabooPerturber () override
 
void perturb_chain (core::pose::Pose const &pose, utility::vector1< core::Real > &torsions, utility::vector1< core::Real > &bond_ang, utility::vector1< core::Real > &) override
 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 override
 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 ()
 
 ~KinematicPerturber () override
 
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, core::Sizeget_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_
 
utility::vector1< core::conformation::torsion_bin_stringrandom_torsion_strings_
 

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

◆ parent

Constructor & Destructor Documentation

◆ BaseTabooPerturber()

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

◆ ~BaseTabooPerturber()

protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::~BaseTabooPerturber ( )
overridedefault

Member Function Documentation

◆ clear_torsion_string_stack()

void protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::clear_torsion_string_stack ( )
inline

◆ get_entries_per_torsion_bin()

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().

◆ get_random_phi_psi_for_residue()

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

◆ next_torsion_string()

core::conformation::torsion_bin_string protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::next_torsion_string ( )

◆ num_strings()

core::Size protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::num_strings ( ) const
inline

References num_strings_.

◆ perturb_chain()

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 
)
overridevirtual

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

Implements protocols::loops::loop_closure::kinematic_closure::KinematicPerturber.

References core::pose::Pose::aa(), core::chemical::aa_pro, protocols::loops::loop_closure::kinematic_closure::KinematicPerturber::get_movemap(), get_random_phi_psi_for_residue(), protocols::loops::loop_closure::kinematic_closure::KinematicPerturber::kinmover(), next_torsion_string(), core::scoring::rg, sample_omega_for_pre_prolines_, and vary_ca_bond_angles_.

◆ refill_torsion_string_vector()

void protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::refill_torsion_string_vector ( )
private

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 core::sequence::end, get_entries_per_torsion_bin(), protocols::loops::loop_closure::kinematic_closure::KinematicPerturber::kinmover(), num_strings_, core::conformation::ppo_torbin_X, random_torsion_strings_, and core::scoring::rg.

Referenced by next_torsion_string().

◆ set_pose_after_closure()

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 &  ,
bool   
) const
overridevirtual

◆ set_vary_ca_bond_angles()

void protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::set_vary_ca_bond_angles ( bool  vary_ca_bond_angles)
inline

References vary_ca_bond_angles_.

Member Data Documentation

◆ num_strings_

core::Size protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::num_strings_
private

◆ random_torsion_strings_

utility::vector1< core::conformation::torsion_bin_string > protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::random_torsion_strings_
private

◆ sample_omega_for_pre_prolines_

bool protocols::loops::loop_closure::kinematic_closure::BaseTabooPerturber::sample_omega_for_pre_prolines_
private

Referenced by perturb_chain().

◆ vary_ca_bond_angles_

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

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