Rosetta Protocols  2014.16.56682
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
protocols::loop_modeling::LoopProtocol Class Reference

Monte Carlo search for low energy loop conformations. More...

#include <LoopProtocol.hh>

Public Member Functions

 LoopProtocol ()
 Default constructor. More...
 
 ~LoopProtocol ()
 Default destructor. More...
 
string get_name () const
 Return the class name of this mover. More...
 
void add_mover (LoopMoverOP mover)
 Add a LoopMover to the simulation. More...
 
void add_filter (protocols::filters::FilterOP filter)
 Add a Filter to the simulation. More...
 
void add_acceptance_check (string name="loop_move")
 Add an acceptance check to the simulation. More...
 
void add_logger (loggers::LoggerOP logger)
 Add a logger to this simulation. More...
 
void set_iterations (IndexList values)
 Set the number of iterations to use in this simulation. More...
 
void set_iterations (Size i, Size j, Size k)
 Set the number of iterations to use in this simulation. More...
 
void set_temperature_schedule (Real initial, Real final)
 Set the initial and final temperatures for the simulation. More...
 
void set_temperature_ramping (bool value)
 Enable or disable temperature ramping in this simulation. More...
 
void set_score_function_ramping (bool value)
 Enable or disable score function ramping in this simulation. More...
 
- Public Member Functions inherited from protocols::loop_modeling::LoopMover
 LoopMover ()
 Default constructor. More...
 
 ~LoopMover ()
 Default destructor. More...
 
void apply (Pose &pose)
 Sample the pose in the regions specified by get_loops(). More...
 
bool was_successful () const
 Return true if the previous move was successful. More...
 
Loops get_loops () const
 Return the loops to be sampled on the next call to apply(). More...
 
core::scoring::ScoreFunctionCOP get_score_function () const
 Return the score function to be used on the next call to apply(). More...
 
core::scoring::ScoreFunctionOP get_score_function ()
 Return the score function to be used on the next call to apply() (non-const access). More...
 
void set_loop (Loop const &loop)
 Set the loop to be sampled on the next call to apply(). More...
 
void set_loops (Loops const &loops)
 Set the loops to be sampled on the next call to apply(). More...
 
void set_score_function (core::scoring::ScoreFunctionOP sfxn)
 Set the score function to be used on the next call to apply(). More...
 
virtual FoldTreeRequest request_fold_tree () const
 Return an enum representing the kind of fold tree that is compatible with this mover. More...
 
void trust_fold_tree ()
 Promise that the calling code will setup a fold tree compatible with request_fold_tree(). If this method is not called, most movers will setup a fold tree on their own the first time apply() is called. 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
 
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)
 
virtual MoverOP clone () const
 Return a clone of the Mover object. More...
 
virtual void parse_my_tag (TagCOP tag, basic::datacache::DataMap &data, Filters_map const &filters, Movers_map const &movers, Pose const &pose)
 Called by MoverFactory when constructing new Movers. Takes care of the specific mover's parsing. More...
 
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...
 
virtual bool reinitialize_for_each_job () const
 Inform the Job Distributor (August '08 vintage) whether this object needs to be freshly regenerated on each use. More...
 
virtual bool reinitialize_for_new_input () const
 Inform the Job Distributor (August '08 vintage) whether this object needs to be regenerated when the input pose is about to change, (for example, if the Mover has special code on the first apply() that is only valid for that one input pose). More...
 
virtual MoverOP fresh_instance () const
 Generates a new Mover object freshly created with the default ctor. 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

bool do_apply (Pose &pose)
 Use a Monte Carlo simulation to search for the best conformations for the given loops. More...
 
- Protected Member Functions inherited from protocols::loop_modeling::LoopMover
virtual bool do_apply (Pose &pose, Loop const &loop)
 Perform the loop sampling move. This method can be overwritten in child classes. More...
 
void register_nested_loop_mover (LoopMoverOP mover)
 Indicate that the given loop mover is used within do_apply(). 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 Member Functions

void start_protocol (Pose &pose)
 Setup the aspects of the simulation like the loop movers, the score function, the fold tree, and the temperature. More...
 
void ramp_temperature (Size iteration)
 Change the temperature of the simulation. This is called once every level-1 cycle. More...
 
void ramp_score_function (Size iteration)
 Change the weights of the repulsive score function terms. This is called once every level-2 cycle. More...
 
void attempt_loop_move (Pose &pose, Size i, Size j, Size k)
 Sample a new conformation by applying all the loop movers. Afterwards apply the Metropolis accept-or-reject criterion. This is called once every level-3 cycle. More...
 
void finish_protocol (Pose &pose)
 Finalize any loggers and restore the original fold tree. More...
 

Private Attributes

utilities::LoopMoverGroupOP movers_
 
protocols::moves::MonteCarloOP monte_carlo_
 
core::kinematics::FoldTree original_tree_
 
IndexList iterations_
 
loggers::LoggerList loggers_
 
bool ramp_score_function_
 
bool ramp_temperature_
 
Real initial_temperature_
 
Real final_temperature_
 
Real temperature_scale_factor_
 

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::loop_modeling::LoopMover
static void setup_fold_tree (Pose &pose, Loops const &loops, FoldTreeRequest request)
 Setup the given pose with a fold tree that is compatible with the given loops and requests. 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...
 

Detailed Description

Monte Carlo search for low energy loop conformations.

This class provides an easy way to run a Monte Carlo simulation searching for the lowest energy conformations for a set of loops. This is most common way to use the classes in this namespace. This simulation is organized into three nested loops. On each iteration of the outermost loop, the lowest scoring pose is recovered and the repulsive terms in the score function may be ramped (although this ramping is disabled by default). On each iteration of the intermediate loop, the temperature may be ramped (this ramping is enabled by default). And on each iteration of the innermost loop, a new conformation is sampled and either accepted or rejected according to the Metropolis criterion. The intermediate loop usually goes through more than 100 iterations, while the innermost and outermost loops only go through less than 5.

Like any mover, all the work is done by the apply() method. The rest of the methods of this class are just getters and setters that can be used to control various aspects of the simulation. The add_mover(), add_filter(), and add_acceptance_check() methods are worth drawing some attention to. These methods are used to build up the group of LoopMover objects that samples new loop conformations in the innermost loop. The movers are guaranteed to be applied in the order they are added to the protocol.

Constructor & Destructor Documentation

protocols::loop_modeling::LoopProtocol::LoopProtocol ( )

Default constructor.

protocols::loop_modeling::LoopProtocol::~LoopProtocol ( )

Default destructor.

Member Function Documentation

void protocols::loop_modeling::LoopProtocol::add_acceptance_check ( string  name = "loop_move")

Add an acceptance check to the simulation.

An acceptance check is always performed after all the loop movers have been applied, unless one of the movers failed. This method allows additional acceptance checks to be included in the protocol by added a loop mover that does nothing but make that check.

void protocols::loop_modeling::LoopProtocol::add_filter ( protocols::filters::FilterOP  filter)

Add a Filter to the simulation.

void protocols::loop_modeling::LoopProtocol::add_logger ( loggers::LoggerOP  logger)

Add a logger to this simulation.

The Logger subclasses are only meant to be used with LoopProtocol. These classes do not derive from LoopMover, and implement a number of methods specifically designed for expressive logging output.

void protocols::loop_modeling::LoopProtocol::add_mover ( LoopMoverOP  mover)

Add a LoopMover to the simulation.

Loop movers will be applied in the order they're added.

void protocols::loop_modeling::LoopProtocol::attempt_loop_move ( Pose pose,
Size  i,
Size  j,
Size  k 
)
private

Sample a new conformation by applying all the loop movers. Afterwards apply the Metropolis accept-or-reject criterion. This is called once every level-3 cycle.

bool protocols::loop_modeling::LoopProtocol::do_apply ( Pose pose)
protectedvirtual

Use a Monte Carlo simulation to search for the best conformations for the given loops.

Reimplemented from protocols::loop_modeling::LoopMover.

References j.

void protocols::loop_modeling::LoopProtocol::finish_protocol ( Pose pose)
private

Finalize any loggers and restore the original fold tree.

string protocols::loop_modeling::LoopProtocol::get_name ( ) const
inlinevirtual

Return the class name of this mover.

Reimplemented from protocols::loop_modeling::LoopMover.

void protocols::loop_modeling::LoopProtocol::ramp_score_function ( Size  iteration)
private

Change the weights of the repulsive score function terms. This is called once every level-2 cycle.

References core::scoring::fa_rep, fa_rep, rama, and core::scoring::rama.

void protocols::loop_modeling::LoopProtocol::ramp_temperature ( Size  iteration)
private

Change the temperature of the simulation. This is called once every level-1 cycle.

References temperature.

void protocols::loop_modeling::LoopProtocol::set_iterations ( IndexList  values)

Set the number of iterations to use in this simulation.

The simulation consists of three nested loops, so the given list must contain three values.

void protocols::loop_modeling::LoopProtocol::set_iterations ( Size  i,
Size  j,
Size  k 
)

Set the number of iterations to use in this simulation.

void protocols::loop_modeling::LoopProtocol::set_score_function_ramping ( bool  value)

Enable or disable score function ramping in this simulation.

void protocols::loop_modeling::LoopProtocol::set_temperature_ramping ( bool  value)

Enable or disable temperature ramping in this simulation.

void protocols::loop_modeling::LoopProtocol::set_temperature_schedule ( Real  initial,
Real  final 
)

Set the initial and final temperatures for the simulation.

The temperature will be linearly interpolated between these values during the simulation.

void protocols::loop_modeling::LoopProtocol::start_protocol ( Pose pose)
private

Setup the aspects of the simulation like the loop movers, the score function, the fold tree, and the temperature.

References protocols::loops::add_cutpoint_variants(), protocols::loops::loop_mover::loops_set_chainbreak_weight(), and utility_exit_with_message.

Member Data Documentation

Real protocols::loop_modeling::LoopProtocol::final_temperature_
private
Real protocols::loop_modeling::LoopProtocol::initial_temperature_
private
IndexList protocols::loop_modeling::LoopProtocol::iterations_
private
loggers::LoggerList protocols::loop_modeling::LoopProtocol::loggers_
private
protocols::moves::MonteCarloOP protocols::loop_modeling::LoopProtocol::monte_carlo_
private
utilities::LoopMoverGroupOP protocols::loop_modeling::LoopProtocol::movers_
private
core::kinematics::FoldTree protocols::loop_modeling::LoopProtocol::original_tree_
private
bool protocols::loop_modeling::LoopProtocol::ramp_score_function_
private
bool protocols::loop_modeling::LoopProtocol::ramp_temperature_
private
Real protocols::loop_modeling::LoopProtocol::temperature_scale_factor_
private

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