![]() |
Rosetta
2021.16
|
Manage the main loop of a canonical Monte Carlo simulation. More...
#include <MetropolisHastingsMover.hh>

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 Strings & | info () |
| 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... | |
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::MonteCarlo & | nonconst_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 |
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.
| 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_.
|
overridedefault |
Destructor.
| void protocols::canonical_sampling::MetropolisHastingsMover::add_backrub_mover | ( | core::Real | weight | ) |
Convenience method to add a backrub move to the simulation.
References add_mover().
|
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().
|
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().
|
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 | ) |
| 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().
|
overridevirtual |
Run the Metropolis-Hastings simulation.
Implements protocols::moves::Mover.
Reimplemented in protocols::canonical_sampling::SidechainMetropolisHastingsMover.
References current_trial_, monte_carlo_, ntrials(), observers_, output_name_from_job_distributor_, prepare_simulation(), random_mover(), set_last_accepted(), set_last_move(), tempering_, protocols::canonical_sampling::tr(), wind_down_simulation(), and write_checkpoint().
|
overridevirtual |
Return the name of this mover.
Return a copy of this mover.
Reimplemented from protocols::moves::Mover.
Reimplemented in protocols::canonical_sampling::SidechainMetropolisHastingsMover.
|
inline |
Return the iteration currently being processed by the simulation.
References current_trial_.
Referenced by protocols::canonical_sampling::TrialCounterObserver::observe_after_metropolis(), and protocols::canonical_sampling::TemperingBase::observe_after_metropolis().
|
overridevirtual |
Return a newly instantiated mover.
Reimplemented from protocols::moves::Mover.
Reimplemented in protocols::canonical_sampling::SidechainMetropolisHastingsMover.
|
protected |
get checkpoint_id for restarting
References core::io::silent::SilentFileData::begin(), checkpoint_count_, checkpoint_ids_, protocols::jd2::current_output_filename(), protocols::jd2::current_output_name(), protocols::jd2::current_replica(), core::io::silent::SilentFileData::filename(), core::io::silent::SilentFileData::read_file(), tempering_, and protocols::canonical_sampling::tr().
Referenced by prepare_simulation().
| std::string protocols::canonical_sampling::MetropolisHastingsMover::get_last_checkpoint | ( | ) | 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().
|
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 |
Return the most recently used ThermodynamicMover.
References last_move_.
Referenced by protocols::canonical_sampling::TrialCounterObserver::observe_after_metropolis().
| protocols::moves::MonteCarloCOP protocols::canonical_sampling::MetropolisHastingsMover::monte_carlo | ( | ) | const |
Return the MonteCarlo object being used by this simulation.
References monte_carlo_.
Referenced by protocols::canonical_sampling::SidechainMetropolisHastingsMover::apply(), protocols::backrub::BackrubMover::initialize_simulation(), protocols::canonical_sampling::TrajectoryRecorder::initialize_simulation(), protocols::canonical_sampling::MetricRecorder::initialize_simulation(), protocols::canonical_sampling::SilentTrajectoryRecorder::observe_after_metropolis(), protocols::backrub::BackrubSidechainMover::observe_after_metropolis(), protocols::canonical_sampling::TrajectoryRecorder::observe_after_metropolis(), protocols::canonical_sampling::MetricRecorder::observe_after_metropolis(), protocols::canonical_sampling::SidechainMetropolisHastingsMover::pass_metropolis(), set_monte_carlo(), protocols::canonical_sampling::MetricRecorder::update_after_boltzmann(), and protocols::canonical_sampling::PDBTrajectoryRecorder::write_model().
|
inlineprotected |
Return the mover that was added at the given index.
References movers_.
|
static |
|
static |
|
protected |
Protected non-const access to the MonteCarlo object.
References monte_carlo_.
Referenced by protocols::canonical_sampling::SidechainMetropolisHastingsMover::apply().
|
inline |
Return the number of iterations used by this simulation.
References ntrials_.
Referenced by protocols::canonical_sampling::SidechainMetropolisHastingsMover::apply(), apply(), protocols::canonical_sampling::ProgressBarObserver::observe_after_metropolis(), and set_ntrials().
|
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 |
Return the file name used by some of the observers to output data.
References output_name_.
Referenced by protocols::canonical_sampling::TrialCounterObserver::finalize_simulation(), protocols::canonical_sampling::SimulatedTempering::finalize_simulation(), protocols::canonical_sampling::TemperingBase::finalize_simulation(), protocols::backrub::BackrubSidechainMover::finalize_simulation(), protocols::canonical_sampling::TrialCounterObserver::observe_after_metropolis(), protocols::canonical_sampling::TemperingBase::observe_after_metropolis(), prepare_simulation(), set_output_name(), protocols::canonical_sampling::MetricRecorder::update_after_boltzmann(), and protocols::canonical_sampling::PDBTrajectoryRecorder::write_model().
|
overridevirtual |
Use a RosettaScripts tag to configure this mover.
Reimplemented from protocols::moves::Mover.
Reimplemented in protocols::canonical_sampling::SidechainMetropolisHastingsMover.
References add_mover(), add_observer(), protocols::checkpoint::checkpoint_with_interval(), monte_carlo_, protocols::moves::MoverFactory::mover_creator_map(), mover_name(), protocols::moves::MoverFactory::newMover(), ntrials_, protocols::rosetta_scripts::parse_mover(), core::scoring::parse_score_function(), set_tempering(), tempering_, and protocols::canonical_sampling::tr().
Referenced by protocols::canonical_sampling::SidechainMetropolisHastingsMover::parse_my_tag().
|
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().
|
static |
References add_ct_name(), core::scoring::attributes_for_parse_score_function(), protocols::moves::complex_type_name_for_mover(), mover_name(), and protocols::moves::MoverFactory::mover_xml_schema_group_name().
Referenced by protocols::canonical_sampling::MetropolisHastingsMoverCreator::provide_xml_schema().
|
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().
|
overridevirtual |
Return false. This mover does not need to be reinitialized for each job.
Reimplemented from protocols::moves::Mover.
|
overridevirtual |
Return false. This mover does not need to be reinitialized for new input.
Reimplemented from protocols::moves::Mover.
|
inlineprotected |
Indicate whether or not the last attempted move was accepted.
References last_accepted_.
Referenced by protocols::canonical_sampling::SidechainMetropolisHastingsMover::apply(), and apply().
|
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 | ) |
| 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 |
Return the TemperatureController being used by this simulation.
References tempering_.
Referenced by protocols::canonical_sampling::SidechainMetropolisHastingsMover::apply(), protocols::canonical_sampling::TrialCounterObserver::initialize_simulation(), set_tempering(), protocols::canonical_sampling::MetricRecorder::update_after_boltzmann(), and protocols::canonical_sampling::PDBTrajectoryRecorder::write_model().
|
inlineprotected |
Protected non-const access to the TemperatureController.
References tempering_.
|
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().
|
protected |
write checkpoint snapshots for restarting
References protocols::jd2::add_current_job_data_to_ss(), checkpoint_count_, checkpoint_ids_, protocols::jd2::current_output_filename(), protocols::jd2::current_output_name(), protocols::jd2::current_replica(), current_trial_, monte_carlo_, core::conformation::membrane::out, and protocols::kinmatch::str().
Referenced by apply().
|
private |
Referenced by get_checkpoints(), and write_checkpoint().
|
private |
Referenced by get_checkpoints(), get_last_checkpoint(), and write_checkpoint().
|
private |
Referenced by apply(), current_trial(), and write_checkpoint().
|
private |
Referenced by last_accepted(), and set_last_accepted().
|
private |
Referenced by last_move(), and set_last_move().
|
private |
|
private |
Referenced by add_mover(), MetropolisHastingsMover(), mover_by_index(), prepare_simulation(), random_mover(), and wind_down_simulation().
|
private |
Referenced by ntrials(), parse_my_tag(), prepare_simulation(), and set_ntrials().
|
private |
Referenced by add_observer(), apply(), MetropolisHastingsMover(), observers(), prepare_simulation(), and wind_down_simulation().
|
private |
Referenced by output_file_name(), output_name(), and set_output_name().
|
private |
Referenced by apply(), prepare_simulation(), and wind_down_simulation().
|
private |
|
private |
Referenced by add_mover(), and random_mover().
1.8.7