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

Base class for tempering Monte Carlo optimizations. More...

#include <TemperingBase.hh>

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

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...
 
TemperatureControlleroperator= (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 Stringsinfo ()
 non-const accessor More...
 
virtual Strings const & info () const
 const accessor More...
 
virtual bool mover_provides_citation_info () const
 Does this mover provide information about how to cite it? More...
 
virtual utility::vector1
< basic::citation_manager::CitationCollectionCOP > 
provide_citation_info () const
 Provide the citation. More...
 
virtual bool mover_is_unpublished () const
 Does this mover indicate that it is unpublished (and, by extension, that the author should be included in publications resulting from it)? More...
 
virtual utility::vector1
< basic::citation_manager::UnpublishedModuleInfoCOP > 
provide_authorship_info_for_unpublished () const
 Provide a list of authors and their e-mail addresses, as strings. More...
 

Static Public Member Functions

static 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...
 
MultiTemperatureTrialCountertrial_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::Realtemperatures_
 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
 

Detailed Description

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.

Member Typedef Documentation

Constructor & Destructor Documentation

protocols::canonical_sampling::TemperingBase::TemperingBase ( )

Default constructor.

References set_defaults().

Member Function Documentation

void protocols::canonical_sampling::TemperingBase::apply ( core::pose::Pose )
inlineoverridevirtual

No-op implemented only to satisfy the Mover interface.

Reimplemented from protocols::canonical_sampling::TemperatureController.

void protocols::canonical_sampling::TemperingBase::attributes_for_tempering_base ( utility::tag::AttributeList &  attlist,
utility::tag::XMLSchemaDefinition &  xsd 
)
static
bool protocols::canonical_sampling::TemperingBase::check_temp_consistency ( )
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().

void protocols::canonical_sampling::TemperingBase::clear ( )
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().

core::Size protocols::canonical_sampling::TemperingBase::current_temp ( ) const
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().

void protocols::canonical_sampling::TemperingBase::finalize_simulation ( core::pose::Pose ,
protocols::canonical_sampling::MetropolisHastingsMover const &   
)
overridevirtual
void protocols::canonical_sampling::TemperingBase::generate_temp_range ( core::Real  temp_low,
core::Real  temp_high,
core::Size  n_levels,
InterpolationType  interpolation = linear 
)
protected
std::string protocols::canonical_sampling::TemperingBase::get_name ( ) const
overridevirtual

Return the name of this class.

Reimplemented from protocols::canonical_sampling::TemperatureController.

void protocols::canonical_sampling::TemperingBase::init_from_options ( )
protectedvirtual
bool protocols::canonical_sampling::TemperingBase::initialize_from_file ( std::string const &  filename)
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().

void protocols::canonical_sampling::TemperingBase::initialize_simulation ( core::pose::Pose ,
protocols::canonical_sampling::MetropolisHastingsMover const &  ,
core::Size   
)
overridevirtual
void protocols::canonical_sampling::TemperingBase::initialize_simulation ( core::pose::Pose pose,
protocols::canonical_sampling::MetropolisHastingsMover const &  metropolis_hastings_mover,
core::Size  level,
core::Real  temperature,
core::Size  cycle 
)
overridevirtual
Size protocols::canonical_sampling::TemperingBase::n_temp_levels ( ) const
overridevirtual
void protocols::canonical_sampling::TemperingBase::observe_after_metropolis ( protocols::canonical_sampling::MetropolisHastingsMover const &  metropolis_hastings_mover)
overridevirtual
void protocols::canonical_sampling::TemperingBase::parse_my_tag ( utility::tag::TagCOP  tag,
basic::datacache::DataMap &  data 
)
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().

void protocols::canonical_sampling::TemperingBase::register_options ( )
static
void protocols::canonical_sampling::TemperingBase::reset_temp_counter ( )
inlineprotected
void protocols::canonical_sampling::TemperingBase::set_current_temp ( core::Size  new_temp)
protectedvirtual
void protocols::canonical_sampling::TemperingBase::set_defaults ( )
protected

Help the constructor initialize the object.

handling of options including command-line

References trust_current_temp_.

Referenced by TemperingBase().

void protocols::canonical_sampling::TemperingBase::set_temperatures ( utility::vector1< core::Real > const &  temps)
protected

Explicitly set the temperature levels.

References set_current_temp(), and temperatures_.

Referenced by protocols::canonical_sampling::HamiltonianExchange::initialize_from_file().

std::string const& protocols::canonical_sampling::TemperingBase::stats_file ( ) const
inlineprotected

Return the name of the silent file into which statistics should be recorded.

See also
stats_line_output()
stats_silent_output()

References stats_file_.

bool protocols::canonical_sampling::TemperingBase::stats_line_output ( ) const
inlineprotected

Return true if a statistics summary should be written.

See also
stats_silent_output()
stats_file()

References stats_line_output_.

bool protocols::canonical_sampling::TemperingBase::stats_silent_output ( ) const
inlineprotected

Return true if a statistics summary should be inserted into a silent file.

See also
stats_line_output()
stats_file()

References stats_silent_output_.

core::Real protocols::canonical_sampling::TemperingBase::temperature ( ) const
overridevirtual
core::Real protocols::canonical_sampling::TemperingBase::temperature ( core::Size  level) const
overridevirtual

Return the temperature of the given level.

Implements protocols::canonical_sampling::TemperatureController.

References temperatures_.

core::Size protocols::canonical_sampling::TemperingBase::temperature_level ( ) const
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.

See also
n_temp_levels()
temperature()

Reimplemented from protocols::canonical_sampling::TemperatureController.

References current_temp_.

Referenced by protocols::canonical_sampling::AsyncMPITemperingBase::time_for_temp_move().

virtual bool protocols::canonical_sampling::TemperingBase::time_for_temp_move ( )
inlineprotectedvirtual
MultiTemperatureTrialCounter& protocols::canonical_sampling::TemperingBase::trial_counter ( )
inlineprotected

References trial_counter_.

void protocols::canonical_sampling::TemperingBase::write_to_file ( std::string const &  file_in,
std::string const &  output_name,
utility::vector1< core::Real > const &  wcounts 
)
protectedvirtual

Member Data Documentation

core::Size protocols::canonical_sampling::TemperingBase::current_temp_
protected

Current temperature level. Not the current temperature!

Referenced by check_temp_consistency(), current_temp(), initialize_simulation(), set_current_temp(), and temperature_level().

bool protocols::canonical_sampling::TemperingBase::instance_initialized_
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().

core::Size protocols::canonical_sampling::TemperingBase::io_stride_
protected

Frequency with which statistics should be written (e.g. once every io_stride_ steps).

Referenced by observe_after_metropolis(), and parse_my_tag().

bool protocols::canonical_sampling::TemperingBase::options_registered_
staticprivate

Referenced by init_from_options().

std::string protocols::canonical_sampling::TemperingBase::stats_file_
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().

bool protocols::canonical_sampling::TemperingBase::stats_line_output_
protected

If true, a statistics summary will be written.

Referenced by init_from_options(), parse_my_tag(), stats_line_output(), and write_to_file().

bool protocols::canonical_sampling::TemperingBase::stats_silent_output_
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().

core::Size protocols::canonical_sampling::TemperingBase::temp_trial_count_
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().

core::Size protocols::canonical_sampling::TemperingBase::temperature_stride_
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().

utility::vector1< core::Real > protocols::canonical_sampling::TemperingBase::temperatures_
protected
MultiTemperatureTrialCounter protocols::canonical_sampling::TemperingBase::trial_counter_
protected
bool protocols::canonical_sampling::TemperingBase::trust_current_temp_
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().


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