Rosetta  2020.46
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
protocols::canonical_sampling::ThermodynamicMover Class Referenceabstract

Base class for moves that can obey detailed balance. More...

#include <ThermodynamicMover.hh>

Inheritance diagram for protocols::canonical_sampling::ThermodynamicMover:
Inheritance graph
[legend]

Public Member Functions

 ThermodynamicMover ()
 Default constructor. More...
 
 ~ThermodynamicMover () override
 Default destructor. 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...
 
virtual void observe_after_metropolis (protocols::canonical_sampling::MetropolisHastingsMover const &metropolis_hastings_mover)
 Callback executed after the Metropolis criterion is evaluated. More...
 
core::Real last_proposal_density_ratio () override
 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 preserve_detailed_balance () const =0
 Return true if detailed balance is being preserved (i.e. no branch angle optimization). More...
 
virtual void set_preserve_detailed_balance (bool preserve_detailed_balance)=0
 Set to true if detailed balance should be preserved (i.e. no branch angle optimization). This will be set to true for all movers used by MetropolisHastingsMover. More...
 
virtual bool is_multi_trial ()
 Return true if the move performs multiple trials on each apply. More...
 
virtual core::Real last_inner_score_delta_over_temperature ()
 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...
 
virtual utility::vector1
< core::id::TorsionID_Range
torsion_id_ranges (core::pose::Pose &pose)=0
 Return a list specifying which torsions may be perturbed by apply(), and the in what range each perturbation may be. More...
 
virtual utility::vector1
< core::id::DOF_ID_Range
dof_id_ranges (core::pose::Pose &pose)
 Return a list specifying which degrees of freedom may be perturbed by apply(), and the in what range each perturbation may be. 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 apply (Pose &)=0
 Main Method. 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...
 
virtual std::string get_name () const =0
 Each derived class must specify its name. The class name. 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 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...
 

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

Base class for moves that can obey detailed balance.

In order to sample a thermodynamic state using a Monte Carlo simulation, the moves must obey detailed balance. This base class provides a framework for writing moves that can obey this condition. One interesting method is set_preserve_detailed_balance(), which indicates whether or not detailed balance needs to be obeyed. This flag makes it possible to implement fancy (but biased) features for use in contexts where rigorous thermodynamic sampling isn't needed. If the move requires a non-unity proposal ratio to obey detailed balance, it can reimplement last_proposal_density_ratio(). Support for movers that make multiple trial moves under the hood is provided by is_multi_trial() and its related methods. A number of callbacks, including initialize_simulation(), observe_after_metropolis(), and finalize_simulation(), are also defined to let the mover react to certain milestones in the simulation.

Constructor & Destructor Documentation

protocols::canonical_sampling::ThermodynamicMover::ThermodynamicMover ( )

Default constructor.

protocols::canonical_sampling::ThermodynamicMover::~ThermodynamicMover ( )
overridedefault

Default destructor.

Member Function Documentation

utility::vector1< core::id::DOF_ID_Range > protocols::canonical_sampling::ThermodynamicMover::dof_id_ranges ( core::pose::Pose pose)
virtual

Return a list specifying which degrees of freedom may be perturbed by apply(), and the in what range each perturbation may be.

Torsion DOFs that would be returned by torsion_id_ranges() are not returned by this function too.

Reimplemented in protocols::simple_moves::ShearMover, protocols::backrub::BackrubMover, protocols::simple_moves::SmallMover, protocols::simple_moves::BackboneMover, protocols::simple_moves::sidechain_moves::SidechainMover, and protocols::simple_moves::sidechain_moves::SidechainMoverBase.

void protocols::canonical_sampling::ThermodynamicMover::finalize_simulation ( core::pose::Pose pose,
protocols::canonical_sampling::MetropolisHastingsMover const &  metropolis_hastings_mover 
)
virtual

Callback executed after all Monte Carlo trials are completed.

Reimplemented in protocols::backrub::BackrubSidechainMover.

void protocols::canonical_sampling::ThermodynamicMover::initialize_simulation ( core::pose::Pose pose,
protocols::canonical_sampling::MetropolisHastingsMover const &  metropolis_hastings_mover,
core::Size  cycle 
)
virtual
bool protocols::canonical_sampling::ThermodynamicMover::is_multi_trial ( )
virtual
core::Real protocols::canonical_sampling::ThermodynamicMover::last_inner_score_delta_over_temperature ( )
virtual

If this is a multi-trial move, return the change in internal score/temperature caused by the last call to apply().

See also
is_multi_trial()

Reimplemented in protocols::simple_moves::sidechain_moves::SidechainMCMover.

core::Real protocols::canonical_sampling::ThermodynamicMover::last_proposal_density_ratio ( )
overridevirtual
protocols::canonical_sampling::MetropolisHastingsMoverAP protocols::canonical_sampling::ThermodynamicMover::metropolis_hastings_mover ( )
virtual

If this is a multi-trial move, return the MetropolisHastingsMover being used internally.

See also
is_multi_trial()

Reimplemented in protocols::simple_moves::sidechain_moves::SidechainMCMover.

void protocols::canonical_sampling::ThermodynamicMover::observe_after_metropolis ( protocols::canonical_sampling::MetropolisHastingsMover const &  metropolis_hastings_mover)
virtual

Callback executed after the Metropolis criterion is evaluated.

Reimplemented in protocols::backrub::BackrubSidechainMover.

virtual bool protocols::canonical_sampling::ThermodynamicMover::preserve_detailed_balance ( ) const
pure virtual
void protocols::canonical_sampling::ThermodynamicMover::set_metropolis_hastings_mover ( protocols::canonical_sampling::MetropolisHastingsMoverAP  metropolis_hastings_mover)
virtual

If this is a multi-trial move, set the MetropolisHastingsMover to be used internally.

See also
is_multi_trial()

Reimplemented in protocols::simple_moves::sidechain_moves::SidechainMCMover.

virtual void protocols::canonical_sampling::ThermodynamicMover::set_preserve_detailed_balance ( bool  preserve_detailed_balance)
pure virtual
virtual utility::vector1<core::id::TorsionID_Range> protocols::canonical_sampling::ThermodynamicMover::torsion_id_ranges ( core::pose::Pose pose)
pure virtual

Return a list specifying which torsions may be perturbed by apply(), and the in what range each perturbation may be.

This method should probably not be pure virtual, and in fact should probably not even exist. I searched most of the codebase, and could only find it being used in one pilot app. It is also a somewhat difficult method to write, which means that most of the implementations are either untested or no-ops. It might be better to remove the method altogether and implement it on a class-by-class basis as necessary.

Implemented in protocols::simple_moves::ShearMover, protocols::backrub::BackrubMover, protocols::simple_moves::SmallMover, protocols::backrub::BackrubSidechainMover, protocols::simple_moves::sidechain_moves::SidechainMover, protocols::simple_moves::sidechain_moves::SidechainMoverBase, protocols::simple_moves::BBGaussianMover, protocols::rigid::RigidBodyMover, protocols::kinematic_closure::BalancedKicMover, and protocols::rigid::UniformRigidBodyMover.


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