Taboo-sampling perturber base class, the two variants of which, share much code in common, but interface with separate Ramachandran potentials.
More...
|
| 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 () |
|
| 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 |
|
Taboo-sampling perturber base class, the two variants of which, share much code in common, but interface with separate Ramachandran potentials.
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().