![]() |
Rosetta Protocols
2014.35
|
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... | |
virtual | ~MetropolisHastingsMover () |
Destructor. More... | |
virtual void | apply (core::pose::Pose &pose) |
Run the Metropolis-Hastings simulation. More... | |
virtual std::string | get_name () const |
Return the name of this mover. More... | |
protocols::moves::MoverOP | clone () const |
Return a copy of this mover. More... | |
virtual protocols::moves::MoverOP | fresh_instance () const |
Return a newly instantiated mover. More... | |
virtual bool | reinitialize_for_each_job () const |
Return false. This mover does not need to be reinitialized for each job. More... | |
virtual bool | reinitialize_for_new_input () const |
Return false. This mover does not need to be reinitialized for new input. More... | |
virtual void | parse_my_tag (utility::tag::TagCOP tag, basic::datacache::DataMap &data, protocols::filters::Filters_map const &filters, protocols::moves::Movers_map const &movers, core::pose::Pose const &pose) |
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... | |
![]() | |
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 |
void | set_type (std::string const &setting) |
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) |
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... | |
void | set_current_job (protocols::jobdist::BasicJobCOP job) |
jobdist::BasicJobCOP | get_current_job () const |
virtual void | show (std::ostream &output=std::cout) const |
Outputs details about the Mover, including current settings. 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 | 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... | |
![]() | |
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... | |
Additional Inherited Members | |
![]() | |
typedef utility::tag::TagCOP | TagCOP |
typedef core::pose::Pose | Pose |
typedef core::pose::PoseCOP | PoseCOP |
typedef protocols::filters::Filters_map | Filters_map |
typedef std::list< std::string > | Strings |
![]() | |
static std::string | name () |
static void | register_options () |
Overload this static method if you access options within the mover. More... | |
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.
Referenced by fresh_instance().
protocols::canonical_sampling::MetropolisHastingsMover::MetropolisHastingsMover | ( | MetropolisHastingsMover const & | metropolis_hastings_mover | ) |
Copy constructor.
References clone(), monte_carlo_, movers_, observers_, and tempering_.
|
virtual |
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().
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 numeric::random::WeightedSampler::add_weight(), 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(), utility::file::file_exists(), in::file::movemap, movemap, protocols::simple_moves::BackboneMover::movemap(), protocols::simple_moves::BackboneMover::nmoves(), and option.
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(), monte_carlo_, option, core::pack::task::TaskFactory::push_back(), packing::resfile, protocols::moves::MonteCarlo::score_function(), and user.
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(), option, core::pack::task::TaskFactory::push_back(), packing::resfile, and user.
void protocols::canonical_sampling::MetropolisHastingsMover::add_small_mover | ( | core::Real | weight | ) |
Convenience method to add a small move to the simulation.
References add_mover(), utility::file::file_exists(), in::file::movemap, movemap, protocols::simple_moves::BackboneMover::movemap(), protocols::simple_moves::BackboneMover::nmoves(), and option.
|
virtual |
Run the Metropolis-Hastings simulation.
Implements protocols::moves::Mover.
Reimplemented in protocols::canonical_sampling::SidechainMetropolisHastingsMover.
References protocols::moves::MonteCarlo::boltzmann(), 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, and wind_down_simulation().
|
virtual |
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().
|
virtual |
Return a newly instantiated mover.
Reimplemented from protocols::moves::Mover.
Reimplemented in protocols::canonical_sampling::SidechainMetropolisHastingsMover.
References MetropolisHastingsMover().
|
virtual |
Return the name of this mover.
Implements protocols::moves::Mover.
Reimplemented in protocols::canonical_sampling::SidechainMetropolisHastingsMover.
|
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(), and set_monte_carlo().
|
inlineprotected |
Return the mover that was added at the given index.
References movers_.
|
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(), utility::io::ozstream::MPI_reroute_rank(), output_name_, and runtime_assert.
Referenced by protocols::canonical_sampling::MetricRecorder::initialize_simulation(), and protocols::canonical_sampling::SilentTrajectoryRecorder::restart_simulation().
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(), and set_output_name().
|
virtual |
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::moves::MoverFactory::get_instance(), monte_carlo_, protocols::moves::MoverFactory::newMover(), ntrials_, protocols::rosetta_scripts::parse_score_function(), set_tempering(), temperature, tempering_, protocols::canonical_sampling::tr, and weight.
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(), protocols::jd2::JobDistributor::get_instance(), monte_carlo_, movers_, ntrials_, observers_, output_name(), output_name_from_job_distributor_, protocols::moves::MonteCarlo::reset(), protocols::moves::MonteCarlo::reset_counters(), runtime_assert, protocols::moves::MonteCarlo::score_function(), set_output_name(), temperature, protocols::moves::MonteCarlo::temperature(), tempering_, and protocols::canonical_sampling::tr.
Referenced by protocols::canonical_sampling::SidechainMetropolisHastingsMover::apply(), and apply().
|
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_, numeric::random::WeightedSampler::random_sample(), protocols::RG, and weighted_sampler_.
Referenced by protocols::canonical_sampling::SidechainMetropolisHastingsMover::apply(), and apply().
|
virtual |
Return false. This mover does not need to be reinitialized for each job.
Reimplemented from protocols::moves::Mover.
|
virtual |
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(), and set_tempering().
|
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_, protocols::moves::MonteCarlo::score_function(), set_output_name(), protocols::moves::MonteCarlo::show_counters(), tempering_, and protocols::canonical_sampling::tr.
Referenced by protocols::canonical_sampling::SidechainMetropolisHastingsMover::apply(), and apply().
|
private |
Referenced by apply(), and current_trial().
|
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 |
Referenced by apply(), MetropolisHastingsMover(), parse_my_tag(), prepare_simulation(), set_monte_carlo(), set_tempering(), tempering(), and wind_down_simulation().
|
private |
Referenced by add_mover(), and random_mover().