Rosetta  2020.37
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Attributes | List of all members
protocols::canonical_sampling::MetropolisHastingsMover Class Reference

Manage the main loop of a canonical Monte Carlo simulation. More...

#include <MetropolisHastingsMover.hh>

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

Public Member Functions

 MetropolisHastingsMover ()
 Default constructor. More...
 
 MetropolisHastingsMover (MetropolisHastingsMover const &metropolis_hastings_mover)
 Copy constructor. More...
 
 ~MetropolisHastingsMover () override
 Destructor. More...
 
void apply (core::pose::Pose &pose) override
 Run the Metropolis-Hastings simulation. More...
 
protocols::moves::MoverOP clone () const override
 Return the name of this mover. More...
 
protocols::moves::MoverOP fresh_instance () const override
 Return a newly instantiated mover. More...
 
bool reinitialize_for_each_job () const override
 Return false. This mover does not need to be reinitialized for each job. More...
 
bool reinitialize_for_new_input () const override
 Return false. This mover does not need to be reinitialized for new input. More...
 
void parse_my_tag (utility::tag::TagCOP tag, basic::datacache::DataMap &data) override
 Use a RosettaScripts tag to configure this mover. More...
 
protocols::moves::MonteCarloCOP monte_carlo () const
 Return the MonteCarlo object being used by this simulation. More...
 
void set_monte_carlo (protocols::moves::MonteCarloOP monte_carlo)
 Provide a MonteCarlo object to use for this simulation. More...
 
TemperatureControllerCOP tempering () const
 Return the TemperatureController being used by this simulation. More...
 
void set_tempering (TemperatureControllerOP)
 Provide a TemperatureController to use for this simulation. More...
 
core::Size ntrials () const
 Return the number of iterations used by this simulation. More...
 
void set_ntrials (core::Size ntrials)
 Set the number of iterations to use for this simulation. More...
 
core::Size current_trial () const
 Return the iteration currently being processed by the simulation. More...
 
std::string const & output_name () const
 Return the file name used by some of the observers to output data. More...
 
void set_output_name (std::string const &output_name)
 Set the file name used by some of the observers to output data. More...
 
std::string output_file_name (std::string const &suffix, bool cumulate_jobs=false, bool cumulate_replicas=false) const
 Return a file name that is consistent with the given options. More...
 
virtual ThermodynamicMoverOP random_mover () const
 Return true if the simulation has been completed. More...
 
virtual void add_mover (ThermodynamicMoverOP mover, core::Real weight, utility::tag::TagCOP const &subtag)
 Add the given mover to the simulation. More...
 
virtual void add_mover (ThermodynamicMoverOP mover, core::Real weight)
 Add the given mover to the simulation. More...
 
void add_backrub_mover (core::Real weight)
 Convenience method to add a backrub move to the simulation. More...
 
void add_kic_mover (core::Real weight, protocols::loops::Loop const &loop)
 Convenience method to add a kinematic closure move to the simulation. More...
 
void add_small_mover (core::Real weight)
 Convenience method to add a small move to the simulation. More...
 
void add_shear_mover (core::Real weight)
 Convenience method to add a shear move to the simulation. More...
 
void add_sidechain_mover (core::Real weight, core::Real prob_uniform, core::Real prob_withinrot, bool preserve_cbeta)
 Convenience method to add a sidechain move to the simulation. More...
 
void add_sidechain_mc_mover (core::Real weight, core::Real prob_uniform, core::Real prob_withinrot, bool preserve_cbeta, core::Size ntrials)
 Convenience method to add a Monte Carlo sidechain move to the simulation. This move uses an internal Monte Carlo loop to generate a whole new set of sidechain conformations. More...
 
void add_observer (ThermodynamicObserverOP observer)
 Add the given observer to this simulation. More...
 
ThermodynamicMover const & last_move () const
 Return the most recently used ThermodynamicMover. More...
 
bool last_accepted () const
 Return true if the last attempted move was accepted. More...
 
std::string get_last_checkpoint () const
 
std::string get_name () const override
 Each derived class must specify its name. The class name. 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...
 
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
 
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 bool mover_provides_citation_info () const
 Does this mover provide information about how to cite it? More...
 
virtual utility::vector1
< basic::citation_manager::CitationCollectionCOP > 
provide_citation_info () const
 Provide the citation. More...
 
virtual bool mover_is_unpublished () const
 Does this mover indicate that it is unpublished (and, by extension, that the author should be included in publications resulting from it)? More...
 
virtual utility::vector1
< basic::citation_manager::UnpublishedModuleInfoCOP > 
provide_authorship_info_for_unpublished () const
 Provide a list of authors and their e-mail addresses, as strings. More...
 

Static Public Member Functions

static std::string mover_name ()
 
static void provide_xml_schema (utility::tag::XMLSchemaDefinition &xsd)
 
static std::string mover_or_add_group_name ()
 
static std::string add_ct_name (std::string)
 
- 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

TemperatureControllerOP const & tempering ()
 Protected non-const access to the TemperatureController. More...
 
ThermodynamicMoverOP mover_by_index (numeric::Size idx) const
 Return the mover that was added at the given index. More...
 
void write_checkpoint (core::pose::Pose const &pose)
 write checkpoint snapshots for restarting More...
 
bool get_checkpoints ()
 get checkpoint_id for restarting More...
 
void wind_down_simulation (core::pose::Pose &pose)
 Finalize all the movers and observers used in this simulation, and write some debrief statistics to the tracer. More...
 
core::Size prepare_simulation (core::pose::Pose &pose)
 Initialize all the movers and observers to be used in this simulation. More...
 
void set_last_accepted (bool setting)
 Indicate whether or not the last attempted move was accepted. More...
 
void set_last_move (ThermodynamicMoverOP setting)
 Indicate what type of move was last attempted. More...
 
utility::vector1
< ThermodynamicObserverOP >
const & 
observers ()
 Return a list of all observers attached to this simulation. More...
 
protocols::moves::MonteCarlononconst_monte_carlo ()
 Protected non-const access to the MonteCarlo object. 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...
 

Private Attributes

protocols::moves::MonteCarloOP monte_carlo_
 
core::Size ntrials_
 
core::Size current_trial_
 
std::string output_name_
 
utility::vector1
< ThermodynamicMoverOP
movers_
 
utility::vector1
< ThermodynamicObserverOP
observers_
 
TemperatureControllerOP tempering_
 
numeric::random::WeightedSampler weighted_sampler_
 
ThermodynamicMoverOP last_move_
 
bool last_accepted_
 
bool output_name_from_job_distributor_
 
core::Size checkpoint_count_
 
std::vector< std::string > checkpoint_ids_
 

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
 

Detailed Description

Manage the main loop of a canonical Monte Carlo simulation.

To make the simulation flexible, most aspects of the algorithm have been delegated to other classes. Use the add_mover() methods to control which moves are used during the simulation. Use the set_tempering() method to control how the temperature changes during the simulation. This can be used to setup simulated annealing or parallel tempering runs. Management of the score function is delegated to the underlying MonteCarlo object, so use set_monte_carlo() to specify a score function. Use add_observer() to keep track of statistics and to record the trajectory.

Constructor & Destructor Documentation

protocols::canonical_sampling::MetropolisHastingsMover::MetropolisHastingsMover ( )

Default constructor.

References protocols::checkpoint::checkpoint_with_interval().

protocols::canonical_sampling::MetropolisHastingsMover::MetropolisHastingsMover ( MetropolisHastingsMover const &  metropolis_hastings_mover)

Copy constructor.

References monte_carlo_, movers_, observers_, and tempering_.

protocols::canonical_sampling::MetropolisHastingsMover::~MetropolisHastingsMover ( )
overridedefault

Destructor.

Member Function Documentation

void protocols::canonical_sampling::MetropolisHastingsMover::add_backrub_mover ( core::Real  weight)

Convenience method to add a backrub move to the simulation.

References add_mover().

std::string protocols::canonical_sampling::MetropolisHastingsMover::add_ct_name ( std::string  tag_name)
static

Referenced by provide_xml_schema().

void protocols::canonical_sampling::MetropolisHastingsMover::add_kic_mover ( core::Real  weight,
protocols::loops::Loop const &  loop 
)

Convenience method to add a kinematic closure move to the simulation.

References add_mover().

void protocols::canonical_sampling::MetropolisHastingsMover::add_mover ( ThermodynamicMoverOP  mover,
core::Real  weight,
utility::tag::TagCOP const &  subtag 
)
virtual

Add the given mover to the simulation.

In principle, information about the mover could be extracted from the given XML tag, but currently this function is a simple alias for add_mover().

Referenced by add_backrub_mover(), add_kic_mover(), add_shear_mover(), add_sidechain_mc_mover(), add_sidechain_mover(), add_small_mover(), and parse_my_tag().

void protocols::canonical_sampling::MetropolisHastingsMover::add_mover ( ThermodynamicMoverOP  mover,
core::Real  weight 
)
virtual

Add the given mover to the simulation.

Specify a weight to control how often this mover should be invoked. The weight does not have to be in any particular range. The probability of choosing any particular move will be the weight of that sampler divided by the sum of the weights of all the moves.

References movers_, and weighted_sampler_.

void protocols::canonical_sampling::MetropolisHastingsMover::add_observer ( ThermodynamicObserverOP  observer)

Add the given observer to this simulation.

References observers_.

Referenced by parse_my_tag().

void protocols::canonical_sampling::MetropolisHastingsMover::add_shear_mover ( core::Real  weight)

Convenience method to add a shear move to the simulation.

References add_mover().

void protocols::canonical_sampling::MetropolisHastingsMover::add_sidechain_mc_mover ( core::Real  weight,
core::Real  prob_uniform,
core::Real  prob_withinrot,
bool  preserve_cbeta,
core::Size  ntrials 
)

Convenience method to add a Monte Carlo sidechain move to the simulation. This move uses an internal Monte Carlo loop to generate a whole new set of sidechain conformations.

References add_mover(), and monte_carlo_.

void protocols::canonical_sampling::MetropolisHastingsMover::add_sidechain_mover ( core::Real  weight,
core::Real  prob_uniform,
core::Real  prob_withinrot,
bool  preserve_cbeta 
)

Convenience method to add a sidechain move to the simulation.

References add_mover().

void protocols::canonical_sampling::MetropolisHastingsMover::add_small_mover ( core::Real  weight)

Convenience method to add a small move to the simulation.

References add_mover().

void protocols::canonical_sampling::MetropolisHastingsMover::apply ( core::pose::Pose pose)
overridevirtual
protocols::moves::MoverOP protocols::canonical_sampling::MetropolisHastingsMover::clone ( ) const
overridevirtual

Return the name of this mover.

Return a copy of this mover.

Reimplemented from protocols::moves::Mover.

Reimplemented in protocols::canonical_sampling::SidechainMetropolisHastingsMover.

core::Size protocols::canonical_sampling::MetropolisHastingsMover::current_trial ( ) const
inline
protocols::moves::MoverOP protocols::canonical_sampling::MetropolisHastingsMover::fresh_instance ( ) const
overridevirtual

Return a newly instantiated mover.

Reimplemented from protocols::moves::Mover.

Reimplemented in protocols::canonical_sampling::SidechainMetropolisHastingsMover.

bool protocols::canonical_sampling::MetropolisHastingsMover::get_checkpoints ( )
protected
std::string protocols::canonical_sampling::MetropolisHastingsMover::get_last_checkpoint ( ) const
std::string protocols::canonical_sampling::MetropolisHastingsMover::get_name ( ) const
overridevirtual

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

Implements protocols::moves::Mover.

Reimplemented in protocols::canonical_sampling::SidechainMetropolisHastingsMover.

References mover_name().

bool protocols::canonical_sampling::MetropolisHastingsMover::last_accepted ( ) const
inline

Return true if the last attempted move was accepted.

References last_accepted_.

Referenced by protocols::canonical_sampling::TrialCounterObserver::observe_after_metropolis().

ThermodynamicMover const & protocols::canonical_sampling::MetropolisHastingsMover::last_move ( ) const
protocols::moves::MonteCarloCOP protocols::canonical_sampling::MetropolisHastingsMover::monte_carlo ( ) const
ThermodynamicMoverOP protocols::canonical_sampling::MetropolisHastingsMover::mover_by_index ( numeric::Size  idx) const
inlineprotected

Return the mover that was added at the given index.

References movers_.

std::string protocols::canonical_sampling::MetropolisHastingsMover::mover_name ( )
static
std::string protocols::canonical_sampling::MetropolisHastingsMover::mover_or_add_group_name ( )
static
protocols::moves::MonteCarlo & protocols::canonical_sampling::MetropolisHastingsMover::nonconst_monte_carlo ( )
protected

Protected non-const access to the MonteCarlo object.

References monte_carlo_.

Referenced by protocols::canonical_sampling::SidechainMetropolisHastingsMover::apply().

core::Size protocols::canonical_sampling::MetropolisHastingsMover::ntrials ( ) const
inline
utility::vector1< ThermodynamicObserverOP > const& protocols::canonical_sampling::MetropolisHastingsMover::observers ( )
inlineprotected

Return a list of all observers attached to this simulation.

References observers_.

Referenced by protocols::canonical_sampling::SidechainMetropolisHastingsMover::apply().

std::string protocols::canonical_sampling::MetropolisHastingsMover::output_file_name ( std::string const &  suffix,
bool  cumulate_jobs = false,
bool  cumulate_replicas = false 
) const

Return a file name that is consistent with the given options.

If cumulate_jobs is true, the same filename will be returned for different jobs, so that the jobs all get cumulated in the same file. Likewise, if cumulate_replicas is true, the same filename will be returned for all replicas. If either of these options are set, MPI must be enabled.

References protocols::jd2::current_replica(), and output_name_.

Referenced by protocols::canonical_sampling::MetricRecorder::initialize_simulation(), protocols::canonical_sampling::SilentTrajectoryRecorder::write_model(), and protocols::canonical_sampling::PDBTrajectoryRecorder::write_model().

std::string const & protocols::canonical_sampling::MetropolisHastingsMover::output_name ( ) const
void protocols::canonical_sampling::MetropolisHastingsMover::parse_my_tag ( utility::tag::TagCOP  tag,
basic::datacache::DataMap &  data 
)
overridevirtual
core::Size protocols::canonical_sampling::MetropolisHastingsMover::prepare_simulation ( core::pose::Pose pose)
protected

Initialize all the movers and observers to be used in this simulation.

The return value indicates the number of cycles that have already been run, if the simulation is not being started or restarted. I'm not totally sure what this means though, and I couldn't see any way for this function to return anything other than 0. The necessary logic might be commented out right now.

References protocols::jd2::current_output_name(), get_checkpoints(), protocols::moves::Mover::get_self_ptr(), monte_carlo_, movers_, ntrials_, observers_, output_name(), output_name_from_job_distributor_, set_output_name(), tempering_, and protocols::canonical_sampling::tr().

Referenced by protocols::canonical_sampling::SidechainMetropolisHastingsMover::apply(), and apply().

void protocols::canonical_sampling::MetropolisHastingsMover::provide_xml_schema ( utility::tag::XMLSchemaDefinition &  xsd)
static
ThermodynamicMoverOP protocols::canonical_sampling::MetropolisHastingsMover::random_mover ( ) const
virtual

Return true if the simulation has been completed.

Return a randomly chosen mover to use in the next iteration.

You can control the probability of selecting a particular mover via the weight argument to the add_mover() method.

References movers_, core::scoring::rg, and weighted_sampler_.

Referenced by protocols::canonical_sampling::SidechainMetropolisHastingsMover::apply(), and apply().

bool protocols::canonical_sampling::MetropolisHastingsMover::reinitialize_for_each_job ( ) const
overridevirtual

Return false. This mover does not need to be reinitialized for each job.

Reimplemented from protocols::moves::Mover.

bool protocols::canonical_sampling::MetropolisHastingsMover::reinitialize_for_new_input ( ) const
overridevirtual

Return false. This mover does not need to be reinitialized for new input.

Reimplemented from protocols::moves::Mover.

void protocols::canonical_sampling::MetropolisHastingsMover::set_last_accepted ( bool  setting)
inlineprotected

Indicate whether or not the last attempted move was accepted.

References last_accepted_.

Referenced by protocols::canonical_sampling::SidechainMetropolisHastingsMover::apply(), and apply().

void protocols::canonical_sampling::MetropolisHastingsMover::set_last_move ( ThermodynamicMoverOP  setting)
protected

Indicate what type of move was last attempted.

References last_move_.

Referenced by protocols::canonical_sampling::SidechainMetropolisHastingsMover::apply(), and apply().

void protocols::canonical_sampling::MetropolisHastingsMover::set_monte_carlo ( protocols::moves::MonteCarloOP  monte_carlo)

Provide a MonteCarlo object to use for this simulation.

References monte_carlo(), monte_carlo_, and tempering_.

void protocols::canonical_sampling::MetropolisHastingsMover::set_ntrials ( core::Size  ntrials)

Set the number of iterations to use for this simulation.

References ntrials(), and ntrials_.

void protocols::canonical_sampling::MetropolisHastingsMover::set_output_name ( std::string const &  output_name)

Set the file name used by some of the observers to output data.

References output_name(), and output_name_.

Referenced by prepare_simulation(), and wind_down_simulation().

void protocols::canonical_sampling::MetropolisHastingsMover::set_tempering ( TemperatureControllerOP  tempering)

Provide a TemperatureController to use for this simulation.

References monte_carlo_, tempering(), and tempering_.

Referenced by parse_my_tag().

TemperatureControllerCOP protocols::canonical_sampling::MetropolisHastingsMover::tempering ( ) const
TemperatureControllerOP const& protocols::canonical_sampling::MetropolisHastingsMover::tempering ( )
inlineprotected

Protected non-const access to the TemperatureController.

References tempering_.

void protocols::canonical_sampling::MetropolisHastingsMover::wind_down_simulation ( core::pose::Pose pose)
protected

Finalize all the movers and observers used in this simulation, and write some debrief statistics to the tracer.

References monte_carlo_, movers_, observers_, output_name_from_job_distributor_, set_output_name(), tempering_, and protocols::canonical_sampling::tr().

Referenced by protocols::canonical_sampling::SidechainMetropolisHastingsMover::apply(), and apply().

void protocols::canonical_sampling::MetropolisHastingsMover::write_checkpoint ( core::pose::Pose const &  pose)
protected

Member Data Documentation

core::Size protocols::canonical_sampling::MetropolisHastingsMover::checkpoint_count_
private
std::vector< std::string > protocols::canonical_sampling::MetropolisHastingsMover::checkpoint_ids_
private
core::Size protocols::canonical_sampling::MetropolisHastingsMover::current_trial_
private
bool protocols::canonical_sampling::MetropolisHastingsMover::last_accepted_
private

Referenced by last_accepted(), and set_last_accepted().

ThermodynamicMoverOP protocols::canonical_sampling::MetropolisHastingsMover::last_move_
private

Referenced by last_move(), and set_last_move().

protocols::moves::MonteCarloOP protocols::canonical_sampling::MetropolisHastingsMover::monte_carlo_
private
utility::vector1< ThermodynamicMoverOP > protocols::canonical_sampling::MetropolisHastingsMover::movers_
private
core::Size protocols::canonical_sampling::MetropolisHastingsMover::ntrials_
private
utility::vector1< ThermodynamicObserverOP > protocols::canonical_sampling::MetropolisHastingsMover::observers_
private
std::string protocols::canonical_sampling::MetropolisHastingsMover::output_name_
private
bool protocols::canonical_sampling::MetropolisHastingsMover::output_name_from_job_distributor_
private
TemperatureControllerOP protocols::canonical_sampling::MetropolisHastingsMover::tempering_
private
numeric::random::WeightedSampler protocols::canonical_sampling::MetropolisHastingsMover::weighted_sampler_
private

Referenced by add_mover(), and random_mover().


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