Rosetta Protocols  2015.09
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
protocols::canonical_sampling Namespace Reference

Algorithms for rigorously sampling native state ensembles. See disclaimer in detailed description. More...

Namespaces

 mc_convergence_checks
 

Classes

class  AsyncMPITemperingBase
 
class  BiasedMonteCarlo
 
class  BiasEnergy
 
class  CanonicalSamplingMover
 
class  DbTrajectoryReader
 
class  DbTrajectoryRecorder
 Record a trajectory to an SQL database. More...
 
class  DbTrajectoryRecorderCreator
 RosettaScripts factory for DbTrajectoryRecorder. More...
 
class  FixedTemperatureController
 Maintain a constant temperature. More...
 
class  HamiltonianExchange
 
class  HamiltonianExchangeCreator
 RosettaScripts factory for HamiltonianExchange. More...
 
class  MetricRecorder
 Periodically output miscellaneous information. More...
 
class  MetricRecorderCreator
 RosettaScripts factory for MetricRecorder. More...
 
class  MetropolisHastingsMover
 Manage the main loop of a canonical Monte Carlo simulation. More...
 
class  MetropolisHastingsMoverCreator
 RosettaScripts factory for MetropolisHastingsMover. More...
 
class  MultiTemperatureTrialCounter
 Keep track of trial statistics for any number of replicas. More...
 
class  ParallelTempering
 
class  ParallelTemperingCreator
 RosettaScripts factory for ParallelTempering. More...
 
class  PatchOperation
 
class  PDBTrajectoryRecorder
 Record a trajectory to the PDB file format. More...
 
class  PDBTrajectoryRecorderCreator
 RosettaScripts factory for PDBTrajectoryRecorder. More...
 
class  ProgressBarObserver
 Print an progress bar that updated on each iteration. More...
 
class  ProgressBarObserverCreator
 RosettaScripts factory for ProgressBarObserver. More...
 
class  SidechainMetropolisHastingsMover
 Run a sidechain-only canonical Monte Carlo simulation. More...
 
class  SidechainMetropolisHastingsMoverCreator
 RosettaScripts factory for SidechainMetropolisHastingsMover. More...
 
class  SilentTrajectoryRecorder
 Record a trajectory to the rosetta-specific silent file format. More...
 
class  SilentTrajectoryRecorderCreator
 RosettaScripts factory for SilentTrajectoryRecorder. More...
 
class  SimulatedTempering
 
class  SimulatedTemperingCreator
 RosettaScripts factory for SimulatedTempering. More...
 
class  TemperatureController
 Base class for controlling the temperature of a simulation. More...
 
class  TemperingBase
 Base class for tempering Monte Carlo optimizations. More...
 
class  ThermodynamicMover
 Base class for moves that can obey detailed balance. More...
 
class  ThermodynamicObserver
 Base class for reporting and recording data from a simulation. More...
 
class  TrajectoryRecorder
 Base class for recording a simulation trajectory. More...
 
class  TrialCounterObserver
 Record the acceptance rate for every type of move attempted. More...
 
class  TrialCounterObserverCreator
 RosettaScripts factory for TrialCounterObserver. More...
 
class  WTEBiasEnergy
 

Typedefs

typedef
utility::pointer::shared_ptr
< BiasedMonteCarlo
BiasedMonteCarloOP
 
typedef
utility::pointer::shared_ptr
< BiasedMonteCarlo const > 
BiasedMonteCarloCOP
 
typedef
utility::pointer::shared_ptr
< BiasEnergy
BiasEnergyOP
 
typedef
utility::pointer::shared_ptr
< BiasEnergy const > 
BiasEnergyCOP
 
typedef
utility::pointer::weak_ptr
< BiasEnergy
BiasEnergyAP
 
typedef
utility::pointer::weak_ptr
< BiasEnergy const > 
BiasEnergyCAP
 
typedef
utility::pointer::shared_ptr
< CanonicalSamplingMover
CanonicalSamplingMoverOP
 
typedef
utility::pointer::shared_ptr
< CanonicalSamplingMover const > 
CanonicalSamplingMoverCOP
 
typedef
utility::pointer::shared_ptr
< DbTrajectoryReader
DbTrajectoryReaderOP
 
typedef
utility::pointer::shared_ptr
< DbTrajectoryReader const > 
DbTrajectoryReaderCOP
 
typedef
utility::pointer::shared_ptr
< DbTrajectoryRecorder
DbTrajectoryRecorderOP
 
typedef
utility::pointer::shared_ptr
< DbTrajectoryRecorder const > 
DbTrajectoryRecorderCOP
 
typedef
utility::pointer::shared_ptr
< HamiltonianExchange
HamiltonianExchangeOP
 
typedef
utility::pointer::shared_ptr
< HamiltonianExchange const > 
HamiltonianExchangeCOP
 
typedef
utility::pointer::shared_ptr
< MetropolisHastingsMover
MetropolisHastingsMoverOP
 
typedef
utility::pointer::shared_ptr
< MetropolisHastingsMover
const > 
MetropolisHastingsMoverCOP
 
typedef
utility::pointer::weak_ptr
< MetropolisHastingsMover
MetropolisHastingsMoverAP
 
typedef
utility::pointer::weak_ptr
< MetropolisHastingsMover
const > 
MetropolisHastingsMoverCAP
 
typedef
utility::pointer::shared_ptr
< ParallelTempering
ParallelTemperingOP
 
typedef
utility::pointer::shared_ptr
< ParallelTempering const > 
ParallelTemperingCOP
 
typedef
utility::pointer::shared_ptr
< ProgressBarObserver
ProgressBarObserverOP
 
typedef
utility::pointer::shared_ptr
< ProgressBarObserver const > 
ProgressBarObserverCOP
 
typedef
utility::pointer::shared_ptr
< SilentTrajectoryRecorder
SilentTrajectoryRecorderOP
 
typedef
utility::pointer::shared_ptr
< SimulatedTempering
SimulatedTemperingOP
 
typedef
utility::pointer::shared_ptr
< SimulatedTempering const > 
SimulatedTemperingCOP
 
typedef
utility::pointer::shared_ptr
< TemperatureController
TemperatureControllerOP
 
typedef
utility::pointer::shared_ptr
< TemperatureController const > 
TemperatureControllerCOP
 
typedef
utility::pointer::shared_ptr
< TemperingBase
TemperingBaseOP
 
typedef
utility::pointer::shared_ptr
< TemperingBase const > 
TemperingBaseCOP
 
typedef
utility::pointer::weak_ptr
< TemperingBase
TemperingBaseAP
 
typedef
utility::pointer::weak_ptr
< TemperingBase const > 
TemperingBaseCAP
 
typedef
utility::pointer::shared_ptr
< ThermodynamicMover
ThermodynamicMoverOP
 
typedef
utility::pointer::shared_ptr
< ThermodynamicMover const > 
ThermodynamicMoverCOP
 
typedef
utility::pointer::shared_ptr
< ThermodynamicObserver
ThermodynamicObserverOP
 
typedef
utility::pointer::shared_ptr
< ThermodynamicObserver const > 
ThermodynamicObserverCOP
 
typedef
utility::pointer::shared_ptr
< TrajectoryRecorder
TrajectoryRecorderOP
 

Enumerations

enum  InterpolationType { linear, exponential }
 

Functions

std::ostream & operator<< (std::ostream &os, AsyncMPITemperingBase::ExchangeRequest const &er)
 
template<typename FLOAT >
void _toggle (FLOAT *&ptr1, FLOAT *&ptr2)
 
int canonical_sampling_main ()
 
static thread_local basic::Tracer tr ("protocols.canonical_sampling.CanonicalSamplingMover")
 
std::string jobname_dirhash (std::string const &dir_prefix, core::Size nr_dirs)
 
static thread_local basic::Tracer tr ("protocols.canonical_sampling.DbTrajectoryRecorder")
 
std::ostream & operator<< (std::ostream &os, HamiltonianExchange const &)
 Test IO operator for debug and Python bindings. More...
 
static thread_local basic::Tracer tr ("protocols.canonical_sampling.ProgressBar")
 
std::string interpolation_type_enum_to_string (InterpolationType interp_enum)
 
InterpolationType interpolation_type_string_to_enum (std::string const &interp_string)
 

Variables

int const mpi_size_XCHANGE_READY = 2
 
int const mpi_size_SWAP_INVITE = 1
 
int const mpi_size_FINISHED = 1
 

Detailed Description

Algorithms for rigorously sampling native state ensembles. See disclaimer in detailed description.

When I started using the algorithms in this namespace, I had a difficult time orienting myself due to the complete lack of documentation. I decided that it would be helpful to write documentation as part of the process of figuring out how the code works. I mention all this to get to my point, which is a disclaimer:

All of the documentation in the module was written by someone who didn't really understand how the code works. I was more just taking notes on how I felt particular pieces of code should work. The idea was to draw attention to pieces of code that didn't work like I expected. Therefore, even though the documentation is phrased in an authoritative way, it is based primarily on my feelings and secondarily on the code.

The central class in this namespace is MetropolisHastingsMover. Its responsibility is to run a Monte Carlo loop. This class is a Mover, and like all movers it has an apply() method that does all the work. It also provides a number of getters and setters so you can control exactly what the algorithm does. In particular, there are three classes that most influence how the MetropolisHastingsMover behaves. These are ThermoynamicMover, TemperatureController, and MonteCarlo.

Subclasses of ThermodynamicMover are responsible for making moves which obey detailed balance. Some classes which fulfill this interface include BackrubMover, LoopClosureMover, ShearMover, SmallMover, SidechainMover, and SidechainMCMover. Note that both sidechain and backbone moves are available. To add a particular move to your simulation, use MetropolisHastingsMover.add_mover() or any of the similarly-named convenience methods.

Related to the ThermodynamicMover class is the ThermodynamicObserver class. Observer subclasses are meant to observe and change the parameters of this simulation itself. There are three major subclasses: TrialCounterObserver, TrajectoryRecorder, and TemperatureController. The trial counters keep track of move statistics and the trajectory recorders keep track of the poses being sampled. TemperatureController is an especially important class because it is setup to manage the temperature of the Metropolis Hastings simulation. Protocols like simulated annealing and parallel tempering are implemented by children of this class. You can add an observer to your simulation using MetropolisHastingsMover.add_observer().

The actual simulation itself is delegated to the standard MonteCarlo class. You can use a custom MonteCarlo object in a canonical simulation by calling MetropolisHastingsMover.set_monte_carlo().

Typedef Documentation

typedef utility::pointer::shared_ptr< BiasEnergy const > protocols::canonical_sampling::BiasEnergyCOP

Enumeration Type Documentation

Enumerator
linear 
exponential 

Function Documentation

template<typename FLOAT >
void protocols::canonical_sampling::_toggle ( FLOAT *&  ptr1,
FLOAT *&  ptr2 
)
int protocols::canonical_sampling::canonical_sampling_main ( )
std::string protocols::canonical_sampling::interpolation_type_enum_to_string ( InterpolationType  interp_enum)
InterpolationType protocols::canonical_sampling::interpolation_type_string_to_enum ( std::string const &  interp_string)
std::string protocols::canonical_sampling::jobname_dirhash ( std::string const &  dir_prefix,
core::Size  nr_dirs 
)
std::ostream& protocols::canonical_sampling::operator<< ( std::ostream &  os,
AsyncMPITemperingBase::ExchangeRequest const &  er 
)
std::ostream & protocols::canonical_sampling::operator<< ( std::ostream &  os,
HamiltonianExchange const &  obj 
)

Test IO operator for debug and Python bindings.

References protocols::canonical_sampling::HamiltonianExchange::show().

static thread_local basic::Tracer protocols::canonical_sampling::tr ( "protocols.canonical_sampling.ProgressBar"  )
static
static thread_local basic::Tracer protocols::canonical_sampling::tr ( "protocols.canonical_sampling.DbTrajectoryRecorder"  )
static
static thread_local basic::Tracer protocols::canonical_sampling::tr ( "protocols.canonical_sampling.CanonicalSamplingMover"  )
static

Referenced by protocols::canonical_sampling::ParallelTempering::allocate_buffers(), protocols::canonical_sampling::SidechainMetropolisHastingsMover::apply(), protocols::canonical_sampling::MetropolisHastingsMover::apply(), protocols::canonical_sampling::CanonicalSamplingMover::apply(), protocols::canonical_sampling::PatchOperation::apply(), protocols::canonical_sampling::BiasedMonteCarlo::boltzmann(), protocols::canonical_sampling::BiasEnergy::evaluate(), protocols::canonical_sampling::mc_convergence_checks::Pool_RMSD::evaluate_and_add(), protocols::canonical_sampling::mc_convergence_checks::Pool_RMSD::fill_pool(), protocols::canonical_sampling::TrialCounterObserver::finalize_simulation(), protocols::canonical_sampling::ParallelTempering::finalize_simulation(), protocols::canonical_sampling::TemperingBase::finalize_simulation(), protocols::canonical_sampling::BiasEnergy::finalize_simulation(), protocols::canonical_sampling::TemperingBase::generate_temp_range(), protocols::canonical_sampling::mc_convergence_checks::Pool_RMSD::get(), protocols::canonical_sampling::MetropolisHastingsMover::get_checkpoints(), protocols::canonical_sampling::mc_convergence_checks::Pool_RMSD::get_tag(), protocols::canonical_sampling::SimulatedTempering::init_from_options(), protocols::canonical_sampling::TemperingBase::init_from_options(), protocols::canonical_sampling::HamiltonianExchange::initialize_exchange_schedule_from_file(), protocols::canonical_sampling::SimulatedTempering::initialize_from_file(), protocols::canonical_sampling::TemperingBase::initialize_from_file(), protocols::canonical_sampling::HamiltonianExchange::initialize_from_file(), protocols::canonical_sampling::SilentTrajectoryRecorder::initialize_simulation(), protocols::canonical_sampling::TemperingBase::initialize_simulation(), protocols::canonical_sampling::SimulatedTempering::initialize_simulation(), protocols::canonical_sampling::HamiltonianExchange::initialize_simulation(), protocols::canonical_sampling::ParallelTempering::initialize_simulation(), protocols::canonical_sampling::AsyncMPITemperingBase::listen_for_rank(), protocols::canonical_sampling::SilentTrajectoryRecorder::observe_after_metropolis(), protocols::canonical_sampling::TemperingBase::parse_my_tag(), protocols::canonical_sampling::MetropolisHastingsMover::parse_my_tag(), protocols::canonical_sampling::SidechainMetropolisHastingsMover::pass_metropolis(), protocols::canonical_sampling::mc_convergence_checks::Pool_RMSD::pop_back(), protocols::canonical_sampling::MetropolisHastingsMover::prepare_simulation(), protocols::canonical_sampling::AsyncMPITemperingBase::process_matching_exchange_requests(), protocols::canonical_sampling::AsyncMPITemperingBase::receive_exchange_requests(), protocols::canonical_sampling::AsyncMPITemperingBase::remove_cycles_from_request_list(), protocols::canonical_sampling::SilentTrajectoryRecorder::restart_simulation(), protocols::canonical_sampling::BiasEnergy::restart_simulation(), protocols::canonical_sampling::AsyncMPITemperingBase::send_swap_invites(), protocols::canonical_sampling::ParallelTempering::setup_exchange_schedule(), protocols::canonical_sampling::MultiTemperatureTrialCounter::show(), protocols::canonical_sampling::HamiltonianExchange::show(), protocols::canonical_sampling::AsyncMPITemperingBase::start_listening(), protocols::canonical_sampling::SimulatedTempering::temperature_move(), protocols::canonical_sampling::AsyncMPITemperingBase::time_for_temp_move(), protocols::canonical_sampling::BiasEnergy::update(), protocols::canonical_sampling::MetropolisHastingsMover::wind_down_simulation(), and protocols::canonical_sampling::SilentTrajectoryRecorder::write_model().

Variable Documentation

int const protocols::canonical_sampling::mpi_size_FINISHED = 1
int const protocols::canonical_sampling::mpi_size_SWAP_INVITE = 1
int const protocols::canonical_sampling::mpi_size_XCHANGE_READY = 2