Rosetta  2021.16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
protocols::simple_moves::TorsionDOFMover Class Reference

TODO: De-duplicate shared code from RotateJumpAxisMover (angle picking code) More...

#include <TorsionDOFMover.hh>

Inheritance diagram for protocols::simple_moves::TorsionDOFMover:
Inheritance graph
[legend]

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...
 
 ~TorsionDOFMover () override
 
void apply (core::pose::Pose &pose) override
 Main Method. More...
 
std::string get_name () const override
 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 MoverOP create ()
 
MoverCOP get_self_ptr () const
 
MoverOP get_self_ptr ()
 
MoverCAP get_self_weak_ptr () const
 
MoverAP get_self_weak_ptr ()
 
 Mover (std::string const &type_name)
 sets the type for a mover; name_ has been removed (2010/05/14) More...
 
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...
 
virtual MoverOP clone () const
 Return a clone of the Mover object. 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...
 
virtual MoverOP fresh_instance () const
 Generates a new Mover object freshly created with the default ctor. More...
 
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...
 
void set_type (std::string const &setting)
 Set the 'type' string. More...
 
std::string get_type () const
 
void type (const std::string &type_in)
 Set the 'type' string. More...
 
std::string const & type () const
 Get the set 'type' string. More...
 
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 parse_my_tag (TagCOP tag, basic::datacache::DataMap &data)
 Called by MoverFactory when constructing new Movers. Takes care of the specific mover's parsing. More...
 
void set_current_job (protocols::jobdist::BasicJobCOP job)
 
jobdist::BasicJobCOP get_current_job () const
 
virtual void set_current_tag (std::string const &new_tag)
 
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...
 
virtual void show (std::ostream &output=std::cout) const
 Outputs details about the Mover, including current settings. More...
 
virtual core::Real last_proposal_density_ratio ()
 
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 void provide_citation_info (basic::citation_manager::CitationCollectionList &) const
 Provide citations to the passed CitationCollectionList Subclasses should add the info for themselves and any other classes they use. More...
 

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::TagCOP TagCOP
 
typedef core::pose::Pose Pose
 
typedef core::pose::PoseCOP PoseCOP
 
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. 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

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.

Constructor & Destructor Documentation

protocols::simple_moves::TorsionDOFMover::TorsionDOFMover ( )

default ctor

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.

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.

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.

References protocols::moves::Mover::type().

protocols::simple_moves::TorsionDOFMover::~TorsionDOFMover ( )
overridedefault

Member Function Documentation

void protocols::simple_moves::TorsionDOFMover::apply ( core::pose::Pose )
overridevirtual
bool protocols::simple_moves::TorsionDOFMover::boltzmann ( core::Energy const  pre_score,
core::Energy const  post_score 
)
private

boltzmann calculation - is the new score acceptable?

References protocols::mean_field::max(), protocols::simple_moves::bb_sampler::probability, core::scoring::rg, and temp_.

Referenced by apply().

core::Angle protocols::simple_moves::TorsionDOFMover::calc_angle ( )
private

calculate angle for perturbation - call to RNG

References lower_angle_, core::scoring::rg, and upper_angle_.

Referenced by apply().

void protocols::simple_moves::TorsionDOFMover::check_mmt ( bool const  setting)
inline

(de)activate scoring check

References check_MMT_.

bool protocols::simple_moves::TorsionDOFMover::check_mmt ( ) const
inline

getter for scoring check

References check_MMT_.

void protocols::simple_moves::TorsionDOFMover::get_angle_range ( core::Angle upper,
core::Angle lower 
) const
inline

return range of allowed angles

References lower_angle_, and upper_angle_.

void protocols::simple_moves::TorsionDOFMover::get_DOF ( core::id::AtomID atom1,
core::id::AtomID atom2,
core::id::AtomID atom3,
core::id::AtomID atom4 
) const
inline

return DOF

References atom1_, atom2_, atom3_, and atom4_.

std::string protocols::simple_moves::TorsionDOFMover::get_name ( ) const
overridevirtual

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

Implements protocols::moves::Mover.

core::Energy protocols::simple_moves::TorsionDOFMover::score_torsion ( core::pose::Pose pose)
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).

References mmt_.

Referenced by apply().

void protocols::simple_moves::TorsionDOFMover::set_angle_range ( core::Angle const  upper,
core::Angle const  lower 
)
inline

set range of desired change - on [180, -180) degrees

getters, setters////////////////////////////////////////

References lower_angle_, and upper_angle_.

void protocols::simple_moves::TorsionDOFMover::set_DOF ( core::id::AtomID const &  atom1,
core::id::AtomID const &  atom2,
core::id::AtomID const &  atom3,
core::id::AtomID const &  atom4 
)
inline

change the torsion DOF under consideration

References atom1_, atom2_, atom3_, and atom4_.

void protocols::simple_moves::TorsionDOFMover::temp ( core::Real const  setting)
inline

set temperature for scoring check

References temp_.

core::Real protocols::simple_moves::TorsionDOFMover::temp ( ) const
inline

getter for temperature for scoring check

References temp_.

void protocols::simple_moves::TorsionDOFMover::tries ( core::Size const  setting)
inline

set number of tries

References tries_.

core::Size protocols::simple_moves::TorsionDOFMover::tries ( ) const
inline

getter for number of tries

References tries_.

Member Data Documentation

core::id::AtomID protocols::simple_moves::TorsionDOFMover::atom1_
private

these atoms define the torsion

Referenced by apply(), get_DOF(), and set_DOF().

core::id::AtomID protocols::simple_moves::TorsionDOFMover::atom2_
private

Referenced by apply(), get_DOF(), and set_DOF().

core::id::AtomID protocols::simple_moves::TorsionDOFMover::atom3_
private

Referenced by apply(), get_DOF(), and set_DOF().

core::id::AtomID protocols::simple_moves::TorsionDOFMover::atom4_
private

Referenced by apply(), get_DOF(), and set_DOF().

bool protocols::simple_moves::TorsionDOFMover::check_MMT_
private

boolean - should we restrict moves based on MMTorsionEnergy?

Referenced by apply(), and check_mmt().

core::Angle protocols::simple_moves::TorsionDOFMover::lower_angle_
private
core::scoring::ScoreFunctionOP protocols::simple_moves::TorsionDOFMover::mmt_
private

MMTorsionEnergy scorefunction.

Referenced by apply(), and score_torsion().

core::Real protocols::simple_moves::TorsionDOFMover::temp_
private

temperature for accepting moves

Referenced by boltzmann(), and temp().

core::Size protocols::simple_moves::TorsionDOFMover::tries_
private

number of attempts at finding a valid move

Referenced by apply(), and tries().

core::Angle protocols::simple_moves::TorsionDOFMover::upper_angle_
private

these angles define the range of transformations

Referenced by calc_angle(), get_angle_range(), and set_angle_range().


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