|
Rosetta 3.5
|
TODO: De-duplicate shared code from RotateJumpAxisMover (angle picking code) More...
#include <TorsionDOFMover.hh>


Public Member Functions | |
| TorsionDOFMover () | |
| default ctor More... | |
| TorsionDOFMover (core::id::AtomID const &atom1, core::id::AtomID const &atom2, core::id::AtomID const &atom3, core::id::AtomID const &atom4) | |
| constructor for random distribution (just needs torsion) More... | |
| TorsionDOFMover (core::id::AtomID const &atom1, core::id::AtomID const &atom2, core::id::AtomID const &atom3, core::id::AtomID const &atom4, core::Angle const upper, core::Angle const lower) | |
| constructor for range - these angles are in degrees, not radians! More... | |
| TorsionDOFMover (core::id::AtomID const &atom1, core::id::AtomID const &atom2, core::id::AtomID const &atom3, core::id::AtomID const &atom4, core::Angle const angle) | |
| constructor for single value - these angles are in degrees, not radians! More... | |
| virtual | ~TorsionDOFMover () |
| virtual void | apply (core::pose::Pose &pose) |
| virtual std::string | get_name () const |
| Each derived class must specify its name. The class name. More... | |
| void | set_angle_range (core::Angle const upper, core::Angle const lower) |
| set range of desired change - on [180, -180) degrees More... | |
| void | get_angle_range (core::Angle &upper, core::Angle &lower) const |
| return range of allowed angles More... | |
| void | set_DOF (core::id::AtomID const &atom1, core::id::AtomID const &atom2, core::id::AtomID const &atom3, core::id::AtomID const &atom4) |
| change the torsion DOF under consideration More... | |
| void | get_DOF (core::id::AtomID &atom1, core::id::AtomID &atom2, core::id::AtomID &atom3, core::id::AtomID &atom4) const |
| return DOF More... | |
| void | check_mmt (bool const setting) |
| (de)activate scoring check More... | |
| bool | check_mmt () const |
| getter for scoring check More... | |
| void | temp (core::Real const setting) |
| set temperature for scoring check More... | |
| core::Real | temp () const |
| getter for temperature for scoring check More... | |
| void | tries (core::Size const setting) |
| set number of tries More... | |
| core::Size | tries () const |
| getter for number of tries 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) | |
| Mover & | operator= (Mover const &other) |
| assignment operator More... | |
| virtual core::Real | last_proposal_density_ratio () |
| std::string const & | type () const |
| 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) |
| virtual MoverOP | clone () const |
| clone has to be overridden only if clone invocation is expected. More... | |
| virtual void | parse_my_tag (TagPtr const tag, DataMap &data, Filters_map const &filters, Movers_map const &movers, Pose const &pose) |
| Called by MoverFactory when constructing new Movers. Takes care of the specific mover's parsing. More... | |
| 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 Strings & | info () |
| non-const accessor More... | |
| virtual Strings const & | info () const |
| const accessor More... | |
| virtual bool | reinitialize_for_each_job () const |
| this function informs 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 |
| this function informs 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... | |
| virtual MoverOP | fresh_instance () const |
| this is like clone(), except it generates a new mover object freshly created with the default ctor. This function should be pure virtual but that would disrupt the code base; MAKE SURE YOU DEFINE IT if you want to have your mover be a protocol handed to the job distributor (august 08 vintage). More... | |
| void | set_current_job (protocols::jobdist::BasicJobCOP job) |
| jobdist::BasicJobCOP | get_current_job () const |
Private Member Functions | |
| core::Angle | calc_angle () |
| calculate angle for perturbation - call to RNG More... | |
| core::Energy | score_torsion (core::pose::Pose &pose) |
| calculate mmt score for the moving bond More... | |
| bool | boltzmann (core::Energy const pre_score, core::Energy const post_score) |
| boltzmann calculation - is the new score acceptable? More... | |
Private Attributes | |
| core::id::AtomID | atom1_ |
| these atoms define the torsion More... | |
| core::id::AtomID | atom2_ |
| core::id::AtomID | atom3_ |
| core::id::AtomID | atom4_ |
| core::Angle | upper_angle_ |
| these angles define the range of transformations More... | |
| core::Angle | lower_angle_ |
| bool | check_MMT_ |
| boolean - should we restrict moves based on MMTorsionEnergy? More... | |
| core::scoring::ScoreFunctionOP | mmt_ |
| MMTorsionEnergy scorefunction. More... | |
| core::Real | temp_ |
| temperature for accepting moves More... | |
| core::Size | tries_ |
| number of attempts at finding a valid move More... | |
Additional Inherited Members | |
Public Types inherited from protocols::moves::Mover | |
| typedef utility::tag::TagPtr | TagPtr |
| typedef core::pose::Pose | Pose |
| typedef core::pose::PoseCOP | PoseCOP |
| typedef protocols::filters::Filters_map | Filters_map |
| typedef std::list< std::string > | Strings |
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. these options will end up in -help of your application if users of this mover call register_options. do this recursively! if you use movers within your mover, call their register_options in your register_options() method. 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... | |
TODO: De-duplicate shared code from RotateJumpAxisMover (angle picking code)
This mover rotates a specific AtomTree Torsion degree of freedom (any valid 4-body torsion). It can rotate by a fixed amount, within a range, or randomly. Optionally, the mover will attempt to internally score the move with MMTorsionEnergy (similar to check_rama in Small/ShearMover). The mover will print a warning message at apply time if the specified DOF is bad. For now this mover only allows one DOF; if you want to have it consider multiple DOF's that might be a good idea. The DOF is determined by a set of 4 atoms; this allows the mover to check the validity of the DOF. I found it conceptually simpler to think about the 4 atoms involved in the torsion than try to trace DOF_IDs.
Definition at line 42 of file TorsionDOFMover.hh.
| protocols::simple_moves::TorsionDOFMover::TorsionDOFMover | ( | ) |
default ctor
Definition at line 50 of file TorsionDOFMover.cc.
References protocols::moves::Mover::type().
| protocols::simple_moves::TorsionDOFMover::TorsionDOFMover | ( | core::id::AtomID const & | atom1, |
| core::id::AtomID const & | atom2, | ||
| core::id::AtomID const & | atom3, | ||
| core::id::AtomID const & | atom4 | ||
| ) |
constructor for random distribution (just needs torsion)
random angle constructor. Magic numbers 180 and -179.9999999... maintain the uniform range. I'm sure there's a better way to get [180, -180) but I can't figure out what it is.
Definition at line 65 of file TorsionDOFMover.cc.
References protocols::moves::Mover::type().
| protocols::simple_moves::TorsionDOFMover::TorsionDOFMover | ( | core::id::AtomID const & | atom1, |
| core::id::AtomID const & | atom2, | ||
| core::id::AtomID const & | atom3, | ||
| core::id::AtomID const & | atom4, | ||
| core::Angle const | upper, | ||
| core::Angle const | lower | ||
| ) |
constructor for range - these angles are in degrees, not radians!
range of angles constructor - takes DEGREES not RADIANS.
Definition at line 85 of file TorsionDOFMover.cc.
References protocols::moves::Mover::type().
| protocols::simple_moves::TorsionDOFMover::TorsionDOFMover | ( | core::id::AtomID const & | atom1, |
| core::id::AtomID const & | atom2, | ||
| core::id::AtomID const & | atom3, | ||
| core::id::AtomID const & | atom4, | ||
| core::Angle const | angle | ||
| ) |
constructor for single value - these angles are in degrees, not radians!
particular angle constructor - takes DEGREES not RADIANS.
Definition at line 107 of file TorsionDOFMover.cc.
References protocols::moves::Mover::type().
|
virtual |
Definition at line 121 of file TorsionDOFMover.cc.
|
virtual |
Implements protocols::moves::Mover.
Definition at line 123 of file TorsionDOFMover.cc.
References atom1_, atom2_, atom3_, atom4_, core::pose::Pose::atom_tree(), boltzmann(), calc_angle(), check_MMT_, core::pose::Pose::conformation(), core::scoring::mm_twist, mmt_, score_torsion(), core::conformation::Conformation::set_torsion_angle(), core::kinematics::AtomTree::torsion_angle(), core::kinematics::AtomTree::torsion_angle_dof_id(), tries_, and core::id::DOF_ID::valid().
|
private |
boltzmann calculation - is the new score acceptable?
Definition at line 189 of file TorsionDOFMover.cc.
References protocols::simple_moves::RG(), and temp_.
Referenced by apply().
|
private |
calculate angle for perturbation - call to RNG
Definition at line 181 of file TorsionDOFMover.cc.
References lower_angle_, protocols::simple_moves::RG(), and upper_angle_.
Referenced by apply().
|
inline |
|
inline |
|
inline |
return range of allowed angles
Definition at line 68 of file TorsionDOFMover.hh.
References lower_angle_, and upper_angle_.
|
inline |
|
virtual |
Each derived class must specify its name. The class name.
Implements protocols::moves::Mover.
Definition at line 176 of file TorsionDOFMover.cc.
|
private |
calculate mmt score for the moving bond
calculate mmt score for the moving bond This is the stupidest possible method - score the whole pose. It would be much better if this could directly use MMTorsionEnergy to calculate about just the one bond in question, but I can't figure out how to reliably look up exactly the set of residues modified by this torsion (remember that changing this 4-body torsion affects other 4-bodies with a shared central bond).
Definition at line 186 of file TorsionDOFMover.cc.
References mmt_.
Referenced by apply().
|
inline |
set range of desired change - on [180, -180) degrees
getters, setters////////////////////////////////////////
Definition at line 64 of file TorsionDOFMover.hh.
References lower_angle_, and upper_angle_.
|
inline |
|
inline |
set temperature for scoring check
Definition at line 96 of file TorsionDOFMover.hh.
References temp_.
|
inline |
getter for temperature for scoring check
Definition at line 99 of file TorsionDOFMover.hh.
References temp_.
|
inline |
|
inline |
|
private |
these atoms define the torsion
Definition at line 120 of file TorsionDOFMover.hh.
|
private |
Definition at line 120 of file TorsionDOFMover.hh.
|
private |
Definition at line 120 of file TorsionDOFMover.hh.
|
private |
Definition at line 120 of file TorsionDOFMover.hh.
|
private |
boolean - should we restrict moves based on MMTorsionEnergy?
Definition at line 126 of file TorsionDOFMover.hh.
Referenced by apply(), and check_mmt().
|
private |
Definition at line 123 of file TorsionDOFMover.hh.
Referenced by calc_angle(), get_angle_range(), and set_angle_range().
|
private |
MMTorsionEnergy scorefunction.
Definition at line 129 of file TorsionDOFMover.hh.
Referenced by apply(), and score_torsion().
|
private |
temperature for accepting moves
Definition at line 132 of file TorsionDOFMover.hh.
Referenced by boltzmann(), and temp().
|
private |
number of attempts at finding a valid move
Definition at line 135 of file TorsionDOFMover.hh.
|
private |
these angles define the range of transformations
Definition at line 123 of file TorsionDOFMover.hh.
Referenced by calc_angle(), get_angle_range(), and set_angle_range().
1.8.4