Rosetta Protocols  2014.35
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>

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...
 
- Public Member Functions inherited from protocols::moves::Mover
 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)
 
Moveroperator= (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 Stringsinfo ()
 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::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_
 

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
protocols::filters::Filters_map 
Filters_map
 
typedef std::list< std::stringStrings
 
- 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...
 

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.

Referenced by fresh_instance().

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

Copy constructor.

References clone(), monte_carlo_, movers_, observers_, and tempering_.

protocols::canonical_sampling::MetropolisHastingsMover::~MetropolisHastingsMover ( )
virtual

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().

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 numeric::random::WeightedSampler::add_weight(), 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)
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)
void protocols::canonical_sampling::MetropolisHastingsMover::apply ( core::pose::Pose pose)
virtual
protocols::moves::MoverOP protocols::canonical_sampling::MetropolisHastingsMover::clone ( ) const
virtual

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
virtual

Return a newly instantiated mover.

Reimplemented from protocols::moves::Mover.

Reimplemented in protocols::canonical_sampling::SidechainMetropolisHastingsMover.

References MetropolisHastingsMover().

std::string protocols::canonical_sampling::MetropolisHastingsMover::get_name ( ) const
virtual

Return the name of this mover.

Implements protocols::moves::Mover.

Reimplemented in protocols::canonical_sampling::SidechainMetropolisHastingsMover.

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_.

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(), 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
void protocols::canonical_sampling::MetropolisHastingsMover::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 
)
virtual
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(), 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().

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_, numeric::random::WeightedSampler::random_sample(), protocols::RG, and weighted_sampler_.

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

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

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
virtual

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

Member Data Documentation

core::Size protocols::canonical_sampling::MetropolisHastingsMover::current_trial_
private

Referenced by apply(), and current_trial().

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: