Rosetta Protocols  2014.35
Public Member Functions | Private Attributes | List of all members
protocols::backrub::BackrubMover Class Reference

class for applying backrub moves to arbitrary protein segments More...

#include <BackrubMover.hh>

Public Member Functions

 BackrubMover ()
 
 BackrubMover (BackrubMover const &mover)
 
virtual protocols::moves::MoverOP clone () const
 Return a clone of the Mover object. More...
 
virtual protocols::moves::MoverOP fresh_instance () const
 Generates a new Mover object freshly created with the default ctor. More...
 
void init_with_options ()
 
virtual void parse_my_tag (utility::tag::TagCOP tag, basic::datacache::DataMap &data, protocols::filters::Filters_map const &filters, protocols::moves::Movers_map const &movers, core::pose::Pose const &pose)
 Called by MoverFactory when constructing new Movers. Takes care of the specific mover's parsing. More...
 
virtual void initialize_simulation (core::pose::Pose &pose, protocols::canonical_sampling::MetropolisHastingsMover const &metropolis_hastings_mover, core::Size cycle)
 Callback executed before any Monte Carlo trials are attempted. More...
 
void apply (Pose &pose)
 
virtual std::string get_name () const
 Each derived class must specify its name. The class name. More...
 
Size segment_id (core::id::AtomID start_atomid, core::id::AtomID end_atomid)
 get the segment ID for a given starting and ending atom More...
 
bool has_segment (core::id::AtomID start_atomid, core::id::AtomID end_atomid)
 determine whether a given segment exists More...
 
BackrubSegment const & segment (core::Size segment_id)
 get a particular segment More...
 
void clear_segments ()
 remove all segements More...
 
core::Size num_segments ()
 get the number of segments More...
 
Size add_segment (core::id::AtomID start_atomid, core::id::AtomID end_atomid, core::Real max_angle_disp=0)
 add a segment to the mover More...
 
core::Size add_mainchain_segments (utility::vector1< core::id::AtomID > atomids, core::Size min_atoms, core::Size max_atoms)
 add segments between a list of mainchain atomids More...
 
core::Size add_mainchain_segments (utility::vector1< core::Size > resnums, utility::vector1< std::string > atomnames, core::Size min_atoms, core::Size max_atoms)
 add segments between mainchain atoms in contiguous stretches of residues More...
 
core::Size add_mainchain_segments ()
 add segments between mainchain atoms using stored parameters More...
 
core::Size add_mainchain_segments_from_options ()
 add segments between mainchain atoms using command line options More...
 
void optimize_branch_angles (Pose &pose)
 optimize branching atoms for all segment pivot atoms More...
 
utility::vector1< core::Size >
const & 
pivot_residues () const
 get residues to pivot if no segments manually defined More...
 
void set_pivot_residues (utility::vector1< core::Size > const &pivot_residues)
 set residues to pivot if no segments manually defined More...
 
utility::vector1< std::string >
const & 
pivot_atoms () const
 get atom names to pivot if no segments manually defined More...
 
void set_pivot_atoms (utility::vector1< std::string > const &pivot_atoms)
 set atom names to pivot if no segments manually defined More...
 
core::Size min_atoms () const
 get minimum segment length if no segments manually defined More...
 
void set_min_atoms (core::Size min_atoms)
 set minimum segment length if no segments manually defined More...
 
core::Size max_atoms () const
 get maximum segment length if no segments manually defined More...
 
void set_max_atoms (core::Size max_atoms)
 set maximum segment length if no segments manually defined More...
 
core::Real max_angle_disp_4 () const
 get maximum angular displacement for 4 atom segments More...
 
void set_max_angle_disp_4 (core::Real max_angle_disp_4)
 set maximum angular displacement for 4 atom segments More...
 
core::Real max_angle_disp_7 () const
 get maximum angular displacement for 7 atom segments More...
 
void set_max_angle_disp_7 (core::Real max_angle_disp_7)
 set maximum angular displacement for 7 atom segments More...
 
core::Real max_angle_disp_slope () const
 get maximum angular displacement slope for other atom segments More...
 
void set_max_angle_disp_slope (core::Real max_angle_disp_slope)
 set maximum angular displacement slope for other atom segments More...
 
virtual bool custom_angle () const
 get whether rotation angle is customized More...
 
virtual void set_custom_angle (bool custom_angle)
 set whether rotation angle is customized More...
 
virtual bool preserve_detailed_balance () const
 get whether detailed balance is preserved (i.e. no branch angle optimization during moves) More...
 
virtual void set_preserve_detailed_balance (bool preserve_detailed_balance)
 set whether detailed balance is preserved (i.e. no branch angle optimization during moves) More...
 
bool require_mm_bend () const
 get whether to exit during initialize_simulation if the mm_bend term isn't turned on More...
 
void set_require_mm_bend (bool require_mm_bend)
 set whether to exit during initialize_simulation if the mm_bend term isn't turned on More...
 
virtual utility::vector1
< core::id::TorsionID_Range
torsion_id_ranges (core::pose::Pose &pose)
 get the TorsionIDs perturbed by the mover during moves, along with their ranges More...
 
virtual utility::vector1
< core::id::DOF_ID_Range
dof_id_ranges (core::pose::Pose &pose)
 get the DOF_IDs perturbed by the mover during moves, along with their ranges More...
 
void rotate_segment (Pose &pose, Size segment_id, core::Real angle, utility::vector0< core::Real > &start_constants, utility::vector0< core::Real > &end_constants)
 do a manual rotation about the given segment More...
 
core::Real random_angle (Pose &pose, Size segment_id, utility::vector0< core::Real > &start_constants, utility::vector0< core::Real > &end_constants)
 get a random angle for a segment subject to bond angle and rotation constraints More...
 
protocols::branch_angle::BranchAngleOptimizerbranchopt ()
 get the branch angle optimizer stored in the mover More...
 
core::Size next_segment_id () const
 set the id for the next move (i.e. nonrandom) More...
 
void set_next_segment_id (core::Size next_segment_id)
 set the id for the next move (i.e. nonrandom) More...
 
core::Size last_segment_id () const
 get id the last backrub segment moved More...
 
std::string last_start_atom_name () const
 get the name of the atom at the start of the last segment More...
 
std::string last_end_atom_name () const
 get the name of the atom at the end of the last segment More...
 
void set_next_angle (core::Real next_angle)
 set the rotation angle for the next move More...
 
core::Real next_angle () const
 get the rotation angle for the next move More...
 
core::Real last_angle () const
 get the last rotation angle More...
 
void update_type ()
 update string describing the move type More...
 
- Public Member Functions inherited from protocols::canonical_sampling::ThermodynamicMover
 ThermodynamicMover ()
 Default constructor. More...
 
virtual ~ThermodynamicMover ()
 Default destructor. More...
 
virtual void observe_after_metropolis (protocols::canonical_sampling::MetropolisHastingsMover const &metropolis_hastings_mover)
 Callback executed after the Metropolis criterion is evaluated. More...
 
virtual core::Real last_proposal_density_ratio ()
 Return the proposal density ratio for last apply method. More...
 
virtual void finalize_simulation (core::pose::Pose &pose, protocols::canonical_sampling::MetropolisHastingsMover const &metropolis_hastings_mover)
 Callback executed after all Monte Carlo trials are completed. More...
 
virtual bool is_multi_trial ()
 Return true if the move performs multiple trials on each apply. More...
 
virtual core::Real last_inner_score_temperature_delta ()
 If this is a multi-trial move, return the change in internal score/temperature caused by the last call to apply(). More...
 
virtual
protocols::canonical_sampling::MetropolisHastingsMoverAP 
metropolis_hastings_mover ()
 If this is a multi-trial move, return the MetropolisHastingsMover being used internally. More...
 
virtual void set_metropolis_hastings_mover (protocols::canonical_sampling::MetropolisHastingsMoverAP metropolis_hastings_mover)
 If this is a multi-trial move, set the MetropolisHastingsMover to be used internally. More...
 
- Public Member Functions inherited from protocols::moves::Mover
 Mover ()
 
virtual ~Mover ()
 
virtual MoverSP create ()
 
virtual void apply (core::io::serialization::PipeMap &pmap)
 
virtual void parse_state (SerializableState const &state)
 
virtual void parse_def (utility::lua::LuaObject const &def, utility::lua::LuaObject const &score_fxns, utility::lua::LuaObject const &tasks, MoverCacheSP cache)
 
virtual void save_state (SerializableState &state)
 
 Mover (std::string const &type_name)
 sets the type for a mover; name_ has been removed (2010/05/14) More...
 
 Mover (Mover const &other)
 
Moveroperator= (Mover const &other)
 assignment operator More...
 
std::string const & type () const
 
void set_type (std::string const &setting)
 
std::string get_current_tag () const
 A tag is a unique identifier used to identify structures produced by this Mover. get_current_tag() returns the tag, and set_current_tag( std::string tag ) sets the tag. This functionality is not intended for use with the 2008 job distributor. More...
 
void set_current_tag (std::string const &new_tag)
 
virtual void set_input_pose (PoseCOP pose)
 setter for poses contained for rms More...
 
virtual void set_native_pose (PoseCOP pose)
 setter for native poses contained for rms -— we should get rid of this method? it is widely used, but a bit unsafe More...
 
PoseCOP get_input_pose () const
 
PoseCOP get_native_pose () const
 
virtual void test_move (Pose &pose)
 : Unit test support function. Apply one move to a given pose. Allows extra test specific functions to be called before applying More...
 
void type (const std::string &type_in)
 
std::string get_type () const
 
MoverStatus get_last_move_status () const
 end parser interface, start Job Distributor interface///////////// More...
 
void reset_status ()
 resets status to SUCCESS, meant to be used before an apply(). The job distributor (august 08 vintage) uses this to ensure non-accumulation of status across apply()s. More...
 
virtual core::pose::PoseOP get_additional_output ()
 Mechanism by which a mover may return multiple output poses from a single input pose. More...
 
virtual void clear_info ()
 Strings container can be used to return miscellaneous info (as std::string) from a mover, such as notes about the results of apply(). The job distributor (Apr 09 vintage) will check this function to see if your protocol wants to add string info to the Job that ran this mover. One way this can be useful is that later, a JobOutputter may include/append this info to an output file. More...
 
virtual Stringsinfo ()
 non-const accessor More...
 
virtual Strings const & info () const
 const accessor More...
 
virtual bool reinitialize_for_each_job () const
 Inform the Job Distributor (August '08 vintage) whether this object needs to be freshly regenerated on each use. More...
 
virtual bool reinitialize_for_new_input () const
 Inform the Job Distributor (August '08 vintage) whether this object needs to be regenerated when the input pose is about to change, (for example, if the Mover has special code on the first apply() that is only valid for that one input pose). More...
 
void set_current_job (protocols::jobdist::BasicJobCOP job)
 
jobdist::BasicJobCOP get_current_job () const
 
virtual void show (std::ostream &output=std::cout) const
 Outputs details about the Mover, including current settings. More...
 

Private Attributes

utility::vector1
< protocols::backrub::BackrubSegment
segments_
 
protocols::branch_angle::BranchAngleOptimizer branchopt_
 
std::map
< protocols::backrub::BackrubSegment::BondAngleKey,
core::Size
bond_angle_map_
 
utility::vector1< core::Sizepivot_residues_
 
utility::vector1< std::stringpivot_atoms_
 
core::Size min_atoms_
 
core::Size max_atoms_
 
core::Real max_angle_disp_4_
 
core::Real max_angle_disp_7_
 
core::Real max_angle_disp_slope_
 
core::Size next_segment_id_
 
core::Size last_segment_id_
 
std::string last_start_atom_name_
 
std::string last_end_atom_name_
 
core::Real next_angle_
 
core::Real last_angle_
 
bool preserve_detailed_balance_
 
bool require_mm_bend_
 
bool custom_angle_
 

Additional Inherited Members

- Public Types inherited from protocols::moves::Mover
typedef utility::tag::TagCOP TagCOP
 
typedef core::pose::Pose Pose
 
typedef core::pose::PoseCOP PoseCOP
 
typedef
protocols::filters::Filters_map 
Filters_map
 
typedef std::list< std::stringStrings
 
- Static Public Member Functions inherited from protocols::moves::Mover
static std::string name ()
 
static void register_options ()
 Overload this static method if you access options within the mover. More...
 
- Protected Member Functions inherited from protocols::moves::Mover
void set_last_move_status (MoverStatus status)
 nonvirtual setter for MoverStatus last_status_. Protected means that only the mover itself will be able to change its own status. The job distributor (august 08 vintage) is aware of status set with this function and will do what the MoverStatus says. More...
 

Detailed Description

class for applying backrub moves to arbitrary protein segments

Constructor & Destructor Documentation

protocols::backrub::BackrubMover::BackrubMover ( )

References radians().

Referenced by fresh_instance().

protocols::backrub::BackrubMover::BackrubMover ( BackrubMover const &  mover)

References canonical_sampling.

Member Function Documentation

core::Size protocols::backrub::BackrubMover::add_mainchain_segments ( utility::vector1< core::id::AtomID atomids,
core::Size  min_atoms,
core::Size  max_atoms 
)
core::Size protocols::backrub::BackrubMover::add_mainchain_segments ( utility::vector1< core::Size resnums,
utility::vector1< std::string atomnames,
core::Size  min_atoms,
core::Size  max_atoms 
)

add segments between mainchain atoms in contiguous stretches of residues

References runtime_assert, and protocols::TR.

core::Size protocols::backrub::BackrubMover::add_mainchain_segments ( )

add segments between mainchain atoms using stored parameters

core::Size protocols::backrub::BackrubMover::add_mainchain_segments_from_options ( )

add segments between mainchain atoms using command line options

Size protocols::backrub::BackrubMover::add_segment ( core::id::AtomID  start_atomid,
core::id::AtomID  end_atomid,
core::Real  max_angle_disp = 0 
)

add a segment to the mover

Detailed:
The start atom MUST have all three stub atoms defined. However, the end atom may be at the very end of the chain. There must be at least one atom between start and end atoms.

If the segment is for whatever reason invalid, 0 is returned. Otherwise, the segment is added to the end of the segments vector and the ID to the new segment is returned. If the segment already exists, then nothing is changed and the existing segment ID is returned.

There has been absolutely no testing of how the code handles jumps! Use this with jumps at your own risk!

References runtime_assert, protocols::TR, and protocols::backrub::tree_distance().

Referenced by protocols::dna::DesignProteinBackboneAroundDNA::backrub().

void protocols::backrub::BackrubMover::apply ( Pose pose)
virtual
protocols::branch_angle::BranchAngleOptimizer& protocols::backrub::BackrubMover::branchopt ( )
inline
void protocols::backrub::BackrubMover::clear_segments ( )
inline
protocols::moves::MoverOP protocols::backrub::BackrubMover::clone ( ) const
virtual

Return a clone of the Mover object.

clone is meant to return an OP'ed deep copy of this object. This really should be a pure virtual in the base class, but adding pure virtuals to Mover would massively disrupt the code. This default implementation crashes at runtime instead of compiletime if you try to call it. If this code is causing you problems, your Mover needs to override this function.

Reimplemented from protocols::moves::Mover.

bool protocols::backrub::BackrubMover::custom_angle ( ) const
virtual

get whether rotation angle is customized

utility::vector1< core::id::DOF_ID_Range > protocols::backrub::BackrubMover::dof_id_ranges ( core::pose::Pose pose)
virtual
protocols::moves::MoverOP protocols::backrub::BackrubMover::fresh_instance ( ) const
virtual

Generates a new Mover object freshly created with the default ctor.

fresh_instance is meant to return a new object of this class, created with the default constructor. This really should be a pure virtual in the base class, but adding pure virtuals to Mover would massively disrupt the code. This default implementation crashes at runtime instead of compiletime if you try to call it. If this code is causing you problems, your Mover needs to override this function. This is used by the August 08 job distributor.

Reimplemented from protocols::moves::Mover.

References BackrubMover().

std::string protocols::backrub::BackrubMover::get_name ( ) const
virtual

Each derived class must specify its name. The class name.

Implements protocols::moves::Mover.

bool protocols::backrub::BackrubMover::has_segment ( core::id::AtomID  start_atomid,
core::id::AtomID  end_atomid 
)
inline

determine whether a given segment exists

References segment_id().

void protocols::backrub::BackrubMover::init_with_options ( )
void protocols::backrub::BackrubMover::initialize_simulation ( core::pose::Pose pose,
protocols::canonical_sampling::MetropolisHastingsMover const &  metropolis_hastings_mover,
core::Size  cycle 
)
virtual
core::Real protocols::backrub::BackrubMover::last_angle ( ) const

get the last rotation angle

std::string protocols::backrub::BackrubMover::last_end_atom_name ( ) const

get the name of the atom at the end of the last segment

core::Size protocols::backrub::BackrubMover::last_segment_id ( ) const

get id the last backrub segment moved

std::string protocols::backrub::BackrubMover::last_start_atom_name ( ) const

get the name of the atom at the start of the last segment

core::Real protocols::backrub::BackrubMover::max_angle_disp_4 ( ) const

get maximum angular displacement for 4 atom segments

core::Real protocols::backrub::BackrubMover::max_angle_disp_7 ( ) const

get maximum angular displacement for 7 atom segments

core::Real protocols::backrub::BackrubMover::max_angle_disp_slope ( ) const

get maximum angular displacement slope for other atom segments

core::Size protocols::backrub::BackrubMover::max_atoms ( ) const

get maximum segment length if no segments manually defined

core::Size protocols::backrub::BackrubMover::min_atoms ( ) const

get minimum segment length if no segments manually defined

core::Real protocols::backrub::BackrubMover::next_angle ( ) const

get the rotation angle for the next move

core::Size protocols::backrub::BackrubMover::next_segment_id ( ) const

set the id for the next move (i.e. nonrandom)

core::Size protocols::backrub::BackrubMover::num_segments ( )
inline

get the number of segments

References segments_.

Referenced by protocols::protein_interface_design::movers::BackrubDDMover::apply().

void protocols::backrub::BackrubMover::optimize_branch_angles ( Pose pose)
void protocols::backrub::BackrubMover::parse_my_tag ( utility::tag::TagCOP  tag,
basic::datacache::DataMap data,
protocols::filters::Filters_map const &  filters,
protocols::moves::Movers_map const &  movers,
core::pose::Pose const &  pose 
)
virtual

Called by MoverFactory when constructing new Movers. Takes care of the specific mover's parsing.

Some movers need not be parsed, so we shouldn't stop executions. This, however, calls attention to the lack of this method, which could be due to something as silly as a wrong parameters definition.

Reimplemented from protocols::moves::Mover.

References core::pose::get_resnum_list(), and utility::string_split().

utility::vector1< std::string > const & protocols::backrub::BackrubMover::pivot_atoms ( ) const

get atom names to pivot if no segments manually defined

utility::vector1< core::Size > const & protocols::backrub::BackrubMover::pivot_residues ( ) const

get residues to pivot if no segments manually defined

bool protocols::backrub::BackrubMover::preserve_detailed_balance ( ) const
virtual

get whether detailed balance is preserved (i.e. no branch angle optimization during moves)

Implements protocols::canonical_sampling::ThermodynamicMover.

Real protocols::backrub::BackrubMover::random_angle ( Pose pose,
Size  segment_id,
utility::vector0< core::Real > &  start_constants,
utility::vector0< core::Real > &  end_constants 
)
bool protocols::backrub::BackrubMover::require_mm_bend ( ) const

get whether to exit during initialize_simulation if the mm_bend term isn't turned on

void protocols::backrub::BackrubMover::rotate_segment ( Pose pose,
Size  segment_id,
core::Real  angle,
utility::vector0< core::Real > &  start_constants,
utility::vector0< core::Real > &  end_constants 
)
BackrubSegment const& protocols::backrub::BackrubMover::segment ( core::Size  segment_id)
inline

get a particular segment

References segment_id(), and segments_.

Size protocols::backrub::BackrubMover::segment_id ( core::id::AtomID  start_atomid,
core::id::AtomID  end_atomid 
)
inline

get the segment ID for a given starting and ending atom

Detailed:
if the segment ID does not exist, 0 is returned

References segments_.

Referenced by has_segment(), and segment().

void protocols::backrub::BackrubMover::set_custom_angle ( bool  custom_angle)
virtual

set whether rotation angle is customized

void protocols::backrub::BackrubMover::set_max_angle_disp_4 ( core::Real  max_angle_disp_4)

set maximum angular displacement for 4 atom segments

void protocols::backrub::BackrubMover::set_max_angle_disp_7 ( core::Real  max_angle_disp_7)

set maximum angular displacement for 7 atom segments

void protocols::backrub::BackrubMover::set_max_angle_disp_slope ( core::Real  max_angle_disp_slope)

set maximum angular displacement slope for other atom segments

void protocols::backrub::BackrubMover::set_max_atoms ( core::Size  max_atoms)

set maximum segment length if no segments manually defined

Referenced by protocols::backrub::init_backrub_mover_with_options().

void protocols::backrub::BackrubMover::set_min_atoms ( core::Size  min_atoms)

set minimum segment length if no segments manually defined

Referenced by protocols::backrub::init_backrub_mover_with_options().

void protocols::backrub::BackrubMover::set_next_angle ( core::Real  next_angle)

set the rotation angle for the next move

void protocols::backrub::BackrubMover::set_next_segment_id ( core::Size  next_segment_id)

set the id for the next move (i.e. nonrandom)

void protocols::backrub::BackrubMover::set_pivot_atoms ( utility::vector1< std::string > const &  pivot_atoms)

set atom names to pivot if no segments manually defined

Referenced by protocols::backrub::init_backrub_mover_with_options().

void protocols::backrub::BackrubMover::set_pivot_residues ( utility::vector1< core::Size > const &  pivot_residues)

set residues to pivot if no segments manually defined

Referenced by protocols::backrub::init_backrub_mover_with_options().

void protocols::backrub::BackrubMover::set_preserve_detailed_balance ( bool  preserve_detailed_balance)
virtual

set whether detailed balance is preserved (i.e. no branch angle optimization during moves)

Implements protocols::canonical_sampling::ThermodynamicMover.

void protocols::backrub::BackrubMover::set_require_mm_bend ( bool  require_mm_bend)

set whether to exit during initialize_simulation if the mm_bend term isn't turned on

utility::vector1< core::id::TorsionID_Range > protocols::backrub::BackrubMover::torsion_id_ranges ( core::pose::Pose pose)
virtual

get the TorsionIDs perturbed by the mover during moves, along with their ranges

Implements protocols::canonical_sampling::ThermodynamicMover.

void protocols::backrub::BackrubMover::update_type ( )

update string describing the move type

Detailed:
All move types are prefixed with "br". Sections are divided by underscores. The next two sections indicates the names of the atoms at the start and end of the backrub segment. The last section gives the size of the segment.

References protocols::motifs::mt, and type.

Member Data Documentation

std::map<protocols::backrub::BackrubSegment::BondAngleKey, core::Size> protocols::backrub::BackrubMover::bond_angle_map_
private
protocols::branch_angle::BranchAngleOptimizer protocols::backrub::BackrubMover::branchopt_
private

Referenced by branchopt().

bool protocols::backrub::BackrubMover::custom_angle_
private
core::Real protocols::backrub::BackrubMover::last_angle_
private
std::string protocols::backrub::BackrubMover::last_end_atom_name_
private
core::Size protocols::backrub::BackrubMover::last_segment_id_
private
std::string protocols::backrub::BackrubMover::last_start_atom_name_
private
core::Real protocols::backrub::BackrubMover::max_angle_disp_4_
private
core::Real protocols::backrub::BackrubMover::max_angle_disp_7_
private
core::Real protocols::backrub::BackrubMover::max_angle_disp_slope_
private
core::Size protocols::backrub::BackrubMover::max_atoms_
private
core::Size protocols::backrub::BackrubMover::min_atoms_
private
core::Real protocols::backrub::BackrubMover::next_angle_
private
core::Size protocols::backrub::BackrubMover::next_segment_id_
private
utility::vector1<std::string> protocols::backrub::BackrubMover::pivot_atoms_
private
utility::vector1<core::Size> protocols::backrub::BackrubMover::pivot_residues_
private
bool protocols::backrub::BackrubMover::preserve_detailed_balance_
private
bool protocols::backrub::BackrubMover::require_mm_bend_
private
utility::vector1<protocols::backrub::BackrubSegment> protocols::backrub::BackrubMover::segments_
private

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