![]() |
Rosetta
2021.16
|
Base class for tempering Monte Carlo optimizations. More...
#include <TemperingBase.hh>

Public Member Functions | |
| TemperingBase () | |
| Default constructor. More... | |
| void | apply (core::pose::Pose &) override |
| No-op implemented only to satisfy the Mover interface. More... | |
| std::string | get_name () const override |
| Return the name of this class. More... | |
| void | parse_my_tag (utility::tag::TagCOP tag, basic::datacache::DataMap &data) override |
| Called by MoverFactory when constructing new Movers. Takes care of the specific mover's parsing. More... | |
| void | initialize_simulation (core::pose::Pose &pose, protocols::canonical_sampling::MetropolisHastingsMover const &metropolis_hastings_mover, core::Size cycle) override |
| Callback executed before any Monte Carlo trials are attempted. More... | |
| void | initialize_simulation (core::pose::Pose &pose, protocols::canonical_sampling::MetropolisHastingsMover const &metropolis_hastings_mover, core::Size level, core::Real temperature, core::Size cycle) override |
| void | observe_after_metropolis (protocols::canonical_sampling::MetropolisHastingsMover const &metropolis_hastings_mover) override |
| Callback executed after the Metropolis criterion is evaluated. More... | |
| void | finalize_simulation (core::pose::Pose &pose, protocols::canonical_sampling::MetropolisHastingsMover const &metropolis_hastings_mover) override |
| Callback executed after all Monte Carlo trials are completed. More... | |
| core::Real | temperature () const override |
| Return the temperature of the underlying MonteCarlo object. More... | |
| core::Real | temperature (core::Size level) const override |
| Return the temperature of the given level. More... | |
| core::Size | temperature_level () const override |
| Return the current temperature level. More... | |
| core::Size | n_temp_levels () const override |
| Return the number of temperature levels used by this controller. More... | |
Public Member Functions inherited from protocols::canonical_sampling::TemperatureController | |
| TemperatureController () | |
| Default constructor. More... | |
| TemperatureController (TemperatureController const &) | |
| Copy constructor. More... | |
| TemperatureController & | operator= (TemperatureController const &)=default |
| This has substantially different behavior than the copy constructor. More... | |
| bool | reinitialize_for_each_job () const override |
| Return false. This class does not need to be reinitialized for each job. More... | |
| bool | reinitialize_for_new_input () const override |
| Return false. This class does not need to be reinitialized for new input. More... | |
| virtual core::Real | temperature_move (core::Real score)=0 |
| Execute the temperature move. More... | |
| virtual core::Real | temperature_move (core::pose::Pose &pose) |
| Execute a temperature move which depends on the current pose. More... | |
| virtual GridCoord | level_2_grid_coord (core::Size level) const |
| virtual core::Size | exchange_grid_dim () const |
| virtual core::Size | nlevels_per_dim (core::Size) const |
| protocols::moves::MonteCarloCOP | monte_carlo () const |
| Return const access to the MonteCarlo object being controlled. More... | |
| virtual bool | finished_simulation (core::Size trials, core::Size ntrials) |
| Return true if the simulation has been completed. More... | |
| virtual void | set_monte_carlo (protocols::moves::MonteCarloOP monte_carlo) |
| Set the MonteCarlo object to be controlled. More... | |
Public Member Functions inherited from protocols::canonical_sampling::ThermodynamicObserver | |
| ThermodynamicObserver () | |
| Default constructor. More... | |
| ~ThermodynamicObserver () override | |
| Destructor. More... | |
| void | apply (core::pose::Pose &) override |
| Callback executed after each move is made. More... | |
| virtual bool | restart_simulation (core::pose::Pose &, MetropolisHastingsMover &, core::Size &, core::Size &, core::Real &) |
| Attempt to restart the last simulation that was recorded by this observer. More... | |
| virtual bool | requires_pose () |
| Return false if this observer does not require a valid pose. TrialCounterObserver is an example of such an observer. 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... | |
| virtual MoverOP | clone () const |
| Return a clone of the Mover object. More... | |
| virtual MoverOP | fresh_instance () const |
| Generates a new Mover object freshly created with the default ctor. More... | |
| MoverStatus | get_last_move_status () const |
| end parser interface, start Job Distributor interface///////////// More... | |
| void | reset_status () |
| resets status to SUCCESS, meant to be used before an apply(). The job distributor (august 08 vintage) uses this to ensure non-accumulation of status across apply()s. More... | |
| virtual core::pose::PoseOP | get_additional_output () |
| Mechanism by which a mover may return multiple output poses from a single input pose. More... | |
| void | set_type (std::string const &setting) |
| Set the 'type' string. More... | |
| std::string | get_type () const |
| void | type (const std::string &type_in) |
| Set the 'type' string. More... | |
| std::string const & | type () const |
| Get the set 'type' string. More... | |
| virtual void | set_input_pose (PoseCOP pose) |
| setter for poses contained for rms More... | |
| virtual void | set_native_pose (PoseCOP pose) |
| setter for native poses contained for rms -— we should get rid of this method? it is widely used, but a bit unsafe More... | |
| PoseCOP | get_input_pose () const |
| PoseCOP | get_native_pose () const |
| 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 void | attributes_for_tempering_base (utility::tag::AttributeList &, utility::tag::XMLSchemaDefinition &) |
| static void | register_options () |
| Register the options used by this mover with the global options system. More... | |
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 | |
| void | set_defaults () |
| Help the constructor initialize the object. More... | |
| virtual void | init_from_options () |
| Assign user-specified command-line values to data members. More... | |
| virtual bool | initialize_from_file (std::string const &filename) |
| Initialize temperatures and weights from a file. More... | |
| virtual void | write_to_file (std::string const &file_in, std::string const &output_name, utility::vector1< core::Real > const &wcounts) |
| Save temperatures and weights to a file. More... | |
| bool | check_temp_consistency () |
| Assert that the current temperature of the MonteCarlo object agrees with the current temperature level of this object. More... | |
| virtual bool | time_for_temp_move () |
| Return true if a temperature move should be made on this iteration. More... | |
| void | reset_temp_counter () |
| core::Size | current_temp () const |
| Return the current temperature level. Identical to temperature_level() as far as I can tell. More... | |
| void | clear () |
| Forget all temperature levels and return to an uninitialized state. More... | |
| void | set_temperatures (utility::vector1< core::Real > const &) |
| Explicitly set the temperature levels. More... | |
| virtual void | set_current_temp (core::Size new_temp) |
| Set the temperature to the given level. More... | |
| bool | stats_line_output () const |
| Return true if a statistics summary should be written. More... | |
| bool | stats_silent_output () const |
| Return true if a statistics summary should be inserted into a silent file. More... | |
| std::string const & | stats_file () const |
| Return the name of the silent file into which statistics should be recorded. More... | |
| void | generate_temp_range (core::Real temp_low, core::Real temp_high, core::Size n_levels, InterpolationType interpolation=linear) |
| Explicitly set the temperature levels by interpolating the given parameters. More... | |
| MultiTemperatureTrialCounter & | trial_counter () |
Protected Member Functions inherited from protocols::canonical_sampling::TemperatureController | |
| protocols::moves::MonteCarloOP | monte_carlo () |
| Return non-const access to the MonteCarlo object being controlled. 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... | |
Protected Attributes | |
| utility::vector1< core::Real > | temperatures_ |
| Temperature levels. More... | |
| core::Size | temperature_stride_ |
Frequency for attempting temperature moves (e.g. once every io_stride_ steps). More... | |
| core::Size | io_stride_ |
Frequency with which statistics should be written (e.g. once every io_stride_ steps). More... | |
| bool | trust_current_temp_ |
| If false, look for current temperature in monte_carlo_ before each move. Set to true by default. More... | |
| bool | stats_line_output_ |
| If true, a statistics summary will be written. More... | |
| bool | stats_silent_output_ |
| If true, the statistics summary will be inserted in a silent file. More... | |
| std::string | stats_file_ |
| Name of the silent file used for writing statistics. More... | |
| bool | instance_initialized_ |
| If false, init_from_options() will be called before the simulation starts. More... | |
| core::Size | current_temp_ |
| Current temperature level. Not the current temperature! More... | |
| core::Size | temp_trial_count_ |
| Number of times time_for_temp_move() has been called. This method is meant to be called every time temperature_move() is called. More... | |
| MultiTemperatureTrialCounter | trial_counter_ |
Private Types | |
| typedef TemperatureController | Parent |
Static Private Attributes | |
| static bool | options_registered_ |
Additional Inherited Members | |
Public Types inherited from protocols::canonical_sampling::TemperatureController | |
| typedef utility::vector1 < core::Size > | GridCoord |
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 |
Base class for tempering Monte Carlo optimizations.
Many important Monte Carlo optimization techniques, like simulated annealing and parallel tempering, depend on a changing temperature schedule. TemperatureController provides the essential interface for providing this functionality. This class provides a lot of useful protected member functions, especially with regard to input (i.e. command-line or file) and output (i.e. tracer or silent file).
That said, my first impression is that this class really limits what you can do in terms of output. The emphasis seems to be on silent files, so it would be hard to instead use (for example) database output. In general, putting IO code in a base class seems like a bad idea. Better to do that kind of stuff with object composition, so different IO formats can easily be swapped in and out. Perhaps this would be a good target for a small refactoring project.
| protocols::canonical_sampling::TemperingBase::TemperingBase | ( | ) |
Default constructor.
References set_defaults().
|
inlineoverridevirtual |
No-op implemented only to satisfy the Mover interface.
Reimplemented from protocols::canonical_sampling::TemperatureController.
|
static |
|
protected |
Assert that the current temperature of the MonteCarlo object agrees with the current temperature level of this object.
References current_temp_, protocols::canonical_sampling::TemperatureController::monte_carlo(), temperature(), temperatures_, and trust_current_temp_.
Referenced by protocols::canonical_sampling::ParallelTempering::temperature_move().
|
protected |
Forget all temperature levels and return to an uninitialized state.
References instance_initialized_, and temperatures_.
Referenced by protocols::canonical_sampling::HamiltonianExchange::clear(), and initialize_from_file().
|
inlineprotected |
Return the current temperature level. Identical to temperature_level() as far as I can tell.
References current_temp_.
Referenced by protocols::canonical_sampling::HamiltonianExchange::next_exchange_level().
|
overridevirtual |
Callback executed after all Monte Carlo trials are completed.
Reimplemented from protocols::canonical_sampling::ThermodynamicObserver.
References protocols::canonical_sampling::MetropolisHastingsMover::output_name(), stats_file_, protocols::canonical_sampling::tr(), trial_counter_, and protocols::canonical_sampling::MultiTemperatureTrialCounter::write_to_file().
Referenced by protocols::canonical_sampling::AsyncMPITemperingBase::finalize_simulation(), and protocols::canonical_sampling::ParallelTempering::finalize_simulation().
|
protected |
Explicitly set the temperature levels by interpolating the given parameters.
References protocols::canonical_sampling::exponential, protocols::canonical_sampling::interpolation_type_enum_to_string(), protocols::canonical_sampling::linear, temperatures_, and protocols::canonical_sampling::tr().
Referenced by init_from_options(), and parse_my_tag().
|
overridevirtual |
Return the name of this class.
Reimplemented from protocols::canonical_sampling::TemperatureController.
|
protectedvirtual |
Assign user-specified command-line values to data members.
Reimplemented in protocols::canonical_sampling::HamiltonianExchange, protocols::canonical_sampling::ParallelTempering, and protocols::canonical_sampling::SimulatedTempering.
References generate_temp_range(), initialize_from_file(), instance_initialized_, options_registered_, protocols::sic_dock::range(), stats_file_, stats_line_output_, stats_silent_output_, temperature_stride_, and protocols::canonical_sampling::tr().
Referenced by protocols::canonical_sampling::ParallelTempering::init_from_options(), protocols::canonical_sampling::HamiltonianExchange::init_from_options(), and initialize_simulation().
|
protectedvirtual |
Initialize temperatures and weights from a file.
Return false if an IO error occurs.
Reimplemented in protocols::canonical_sampling::HamiltonianExchange, and protocols::canonical_sampling::SimulatedTempering.
References clear(), core::conformation::membrane::in, temperatures_, and protocols::canonical_sampling::tr().
Referenced by init_from_options(), and parse_my_tag().
|
overridevirtual |
Callback executed before any Monte Carlo trials are attempted.
Reimplemented from protocols::canonical_sampling::TemperatureController.
References protocols::jd2::add_string_real_pair_to_current_job(), current_temp_, init_from_options(), instance_initialized_, protocols::canonical_sampling::TemperatureController::monte_carlo(), protocols::canonical_sampling::MultiTemperatureTrialCounter::set_temperature_observer(), temp_trial_count_, temperature(), temperatures_, protocols::canonical_sampling::tr(), and trial_counter_.
Referenced by protocols::canonical_sampling::AsyncMPITemperingBase::initialize_simulation(), initialize_simulation(), and protocols::canonical_sampling::ParallelTempering::initialize_simulation().
|
overridevirtual |
Reimplemented from protocols::canonical_sampling::TemperatureController.
References initialize_simulation(), set_current_temp(), and temperature().
|
overridevirtual |
Return the number of temperature levels used by this controller.
Reimplemented from protocols::canonical_sampling::TemperatureController.
References temperatures_.
Referenced by protocols::canonical_sampling::ParallelTempering::finalize_simulation(), protocols::canonical_sampling::HamiltonianExchange::HamiltonianExchange(), protocols::canonical_sampling::HamiltonianExchange::initialize_from_file(), protocols::canonical_sampling::ParallelTempering::initialize_simulation(), protocols::canonical_sampling::HamiltonianExchange::operator=(), protocols::canonical_sampling::ParallelTempering::operator=(), protocols::canonical_sampling::HamiltonianExchange::show(), and write_to_file().
|
overridevirtual |
Callback executed after the Metropolis criterion is evaluated.
Reimplemented from protocols::canonical_sampling::TemperatureController.
References protocols::canonical_sampling::MetropolisHastingsMover::current_trial(), io_stride_, protocols::canonical_sampling::MetropolisHastingsMover::output_name(), stats_file_, core::id::to_string(), trial_counter_, and protocols::canonical_sampling::MultiTemperatureTrialCounter::write_to_file().
|
overridevirtual |
Called by MoverFactory when constructing new Movers. Takes care of the specific mover's parsing.
Some movers need not be parsed, so we shouldn't force people to reimplement this method. However, we should be chatty about the fact that someone is using a RosettaScripts interface to a mover which didn't define parse_my_tag()
Reimplemented from protocols::moves::Mover.
References generate_temp_range(), initialize_from_file(), instance_initialized_, protocols::canonical_sampling::interpolation_type_string_to_enum(), io_stride_, stats_file_, stats_line_output_, stats_silent_output_, temperature_stride_, protocols::canonical_sampling::tr(), and trust_current_temp_.
Referenced by protocols::canonical_sampling::HamiltonianExchange::parse_my_tag(), and protocols::canonical_sampling::ParallelTempering::parse_my_tag().
|
static |
Register the options used by this mover with the global options system.
References protocols::evaluation::options_registered_, and protocols::sic_dock::range().
Referenced by protocols::canonical_sampling::ParallelTempering::register_options(), and protocols::canonical_sampling::HamiltonianExchange::register_options().
|
inlineprotected |
References temp_trial_count_.
Referenced by protocols::canonical_sampling::AsyncMPITemperingBase::time_for_temp_move().
|
protectedvirtual |
Set the temperature to the given level.
Note that the argument is a temperature level, not a raw temperature.
References protocols::jd2::add_string_real_pair_to_current_job(), current_temp_, protocols::canonical_sampling::TemperatureController::monte_carlo(), and temperatures_.
Referenced by protocols::canonical_sampling::HamiltonianExchange::initialize_simulation(), initialize_simulation(), protocols::canonical_sampling::ParallelTempering::initialize_simulation(), set_temperatures(), and protocols::canonical_sampling::ParallelTempering::temperature_move().
|
protected |
Help the constructor initialize the object.
handling of options including command-line
References trust_current_temp_.
Referenced by TemperingBase().
|
protected |
Explicitly set the temperature levels.
References set_current_temp(), and temperatures_.
Referenced by protocols::canonical_sampling::HamiltonianExchange::initialize_from_file().
|
inlineprotected |
Return the name of the silent file into which statistics should be recorded.
References stats_file_.
|
inlineprotected |
Return true if a statistics summary should be written.
References stats_line_output_.
|
inlineprotected |
Return true if a statistics summary should be inserted into a silent file.
References stats_silent_output_.
|
overridevirtual |
Return the temperature of the underlying MonteCarlo object.
Implements protocols::canonical_sampling::TemperatureController.
References protocols::canonical_sampling::TemperatureController::monte_carlo().
Referenced by check_temp_consistency(), protocols::canonical_sampling::ParallelTempering::finalize_simulation(), initialize_simulation(), protocols::canonical_sampling::HamiltonianExchange::show(), protocols::canonical_sampling::ParallelTempering::shuffle_temperatures(), and protocols::canonical_sampling::ParallelTempering::temperature_move().
|
overridevirtual |
Return the temperature of the given level.
Implements protocols::canonical_sampling::TemperatureController.
References temperatures_.
|
inlineoverridevirtual |
Return the current temperature level.
Tempering controllers often work with a handful of discrete temperature levels. This method makes it possible to work with levels, which are discrete, rather than temperatures, which are continuous.
Reimplemented from protocols::canonical_sampling::TemperatureController.
References current_temp_.
Referenced by protocols::canonical_sampling::AsyncMPITemperingBase::time_for_temp_move().
|
inlineprotectedvirtual |
Return true if a temperature move should be made on this iteration.
Reimplemented in protocols::canonical_sampling::AsyncMPITemperingBase.
References temp_trial_count_, and temperature_stride_.
Referenced by protocols::canonical_sampling::ParallelTempering::temperature_move(), and protocols::canonical_sampling::AsyncMPITemperingBase::time_for_temp_move().
|
inlineprotected |
References trial_counter_.
|
protectedvirtual |
Save temperatures and weights to a file.
Reimplemented in protocols::canonical_sampling::SimulatedTempering.
References n_temp_levels(), core::conformation::membrane::out, stats_line_output_, stats_silent_output_, and temperatures_.
|
protected |
Current temperature level. Not the current temperature!
Referenced by check_temp_consistency(), current_temp(), initialize_simulation(), set_current_temp(), and temperature_level().
|
protected |
If false, init_from_options() will be called before the simulation starts.
Referenced by clear(), init_from_options(), initialize_simulation(), and parse_my_tag().
|
protected |
Frequency with which statistics should be written (e.g. once every io_stride_ steps).
Referenced by observe_after_metropolis(), and parse_my_tag().
|
staticprivate |
Referenced by init_from_options().
|
protected |
Name of the silent file used for writing statistics.
Referenced by finalize_simulation(), init_from_options(), observe_after_metropolis(), parse_my_tag(), and stats_file().
|
protected |
If true, a statistics summary will be written.
Referenced by init_from_options(), parse_my_tag(), stats_line_output(), and write_to_file().
|
protected |
If true, the statistics summary will be inserted in a silent file.
Referenced by init_from_options(), parse_my_tag(), stats_silent_output(), and write_to_file().
|
protected |
Number of times time_for_temp_move() has been called. This method is meant to be called every time temperature_move() is called.
Referenced by initialize_simulation(), reset_temp_counter(), and time_for_temp_move().
|
protected |
Frequency for attempting temperature moves (e.g. once every io_stride_ steps).
Referenced by init_from_options(), parse_my_tag(), and time_for_temp_move().
|
protected |
Temperature levels.
Referenced by check_temp_consistency(), clear(), generate_temp_range(), initialize_from_file(), initialize_simulation(), n_temp_levels(), set_current_temp(), set_temperatures(), temperature(), and write_to_file().
|
protected |
Referenced by finalize_simulation(), initialize_simulation(), observe_after_metropolis(), and trial_counter().
|
protected |
If false, look for current temperature in monte_carlo_ before each move. Set to true by default.
Referenced by check_temp_consistency(), parse_my_tag(), and set_defaults().
1.8.7