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 | Private Attributes | Friends | List of all members
protocols::loop_modeling::LoopMover Class Reference

Base class for loop-sampling algorithms. More...

#include <LoopMover.hh>

Inheritance diagram for protocols::loop_modeling::LoopMover:
Inheritance graph
[legend]

Public Member Functions

 LoopMover ()
 Default constructor. More...
 
void parse_my_tag (utility::tag::TagCOP tag, basic::datacache::DataMap &data) override
 Configure from a RosettaScripts tag. More...
 
void apply (Pose &pose) override
 Sample the pose in the regions specified by get_loops(). More...
 
string get_name () const override
 Return the name of this mover. More...
 
virtual void get_children_names (utility::vector1< std::string > &names, std::string indent="") const
 Add the names of all the algorithms invoked by this loop mover to the given list. Indentation is used to represent hierarchy. More...
 
bool was_successful () const
 Return true if the previous move was successful. More...
 
void was_successful (bool value)
 Set the success status of a loop mover. More...
 
LoopsOP get_loops ()
 Return the loops to be sampled on the next call to apply(). More...
 
LoopsCOP get_loops () const
 Return the loops to be sampled on the next call to apply(). More...
 
Loop const & get_loop (core::Size index) const
 Return the specified loop. More...
 
void set_loops (LoopsOP loops)
 Set the loops 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_loop (Loop const &loop)
 Set the loop to be sampled on the next call to apply(). More...
 
template<typename ToolTypeOP >
ToolTypeOP get_tool (std::string key) const
 Request a tool from this mover or any of its parents. More...
 
template<typename ToolTypeOP >
ToolTypeOP get_tool (std::string key, ToolTypeOP fallback) const
 Request a tool from this mover or any of its parents. More...
 
template<typename ToolTypeOP >
ToolTypeOP set_tool (std::string key, ToolTypeOP value)
 Provide a tool for this mover or any of its children to use. 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, this mover will setup a fold tree on its own every time apply() is called. 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 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...
 
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 setup_fold_tree (Pose &pose, LoopsCOP loops, FoldTreeRequest request)
 Setup the given pose with a fold tree that is compatible with the given loops and requests. More...
 
static void define_composition_schema (utility::tag::XMLSchemaDefinition &xsd, utility::tag::XMLSchemaComplexTypeGenerator &ct_gen, utility::tag::XMLSchemaSimpleSubelementList &subelements)
 
- 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

virtual bool do_apply (Pose &pose)
 Perform the loop sampling move. This method can be overwritten in child classes. More...
 
virtual bool do_apply (Pose &pose, Loop const &loop)
 Perform the loop sampling move. This method can be overwritten in child classes. More...
 
template<typename ChildSubclassOP >
ChildSubclassOP add_child (ChildSubclassOP child)
 Add a child to this mover. More...
 
void remove_child (LoopMoverOP child)
 Remove a child from this mover. More...
 
void clear_children ()
 Remove all children from this mover. More...
 
LoopMoverOPs get_children () const
 Return all of this mover's children. More...
 
core::Size count_children () const
 Return the number of children this mover has. 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

LoopMoverOPs children_
 
basic::datacache::HierarchicalDataMapOP toolbox_
 
string parent_name_
 
bool trust_fold_tree_
 
bool was_successful_
 

Friends

class ::LoopModelerTests
 

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 std::list< std::string > Strings
 

Detailed Description

Base class for loop-sampling algorithms.

Classes that inherit from LoopMover can plug into the LoopProtocol framework. The only method that subclasses need to provide is do_apply(). Note that the apply() method itself cannot be overwritten, because LoopMover uses it to do some useful setup and teardown work. Instead, there are two versions of do_apply() that subclasses may implement. Both return a boolean to indicate whether or not the move succeeded. The first version of do_apply() accepts only a Pose and is expected to operate on all of the loops returned by get_loops(). The second version accepts a Pose and a Loop, and is only expected to operate on the given loop. By default, the first version simply iterates through the loops provided by get_loops() and calls the second version on each one. This means that if the first version is overwritten, the second version will no longer be called. If neither method is reimplemented, a runtime error will be thrown.

LoopMover provides a handful of features that could be useful to a loop sampling algorithm. As mentioned above, the get_loops() method returns the loops that should be sampled. There are also a number of methods provided for controlling how the fold tree is setup up. The request_fold_tree() method can be reimplemented to return an enum telling what kind of fold tree this mover requires. When apply() is called for the first time, a compatible fold tree will be configured. This behavior is disabled if trust_fold_tree() is called beforehand, in which case responsibility for constructing a compatible fold tree is passed to the calling code.

Constructor & Destructor Documentation

protocols::loop_modeling::LoopMover::LoopMover ( )

Default constructor.

Member Function Documentation

template<typename ChildSubclassOP >
ChildSubclassOP protocols::loop_modeling::LoopMover::add_child ( ChildSubclassOP  child)
inlineprotected

Add a child to this mover.

The purpose of calling add_child() is to make it easy to use the child from within the do_apply() method of the parent. Child movers are always configured with the same loops and the same fold tree as their parents. Their toolboxes are linked to their parent's as well, so that the children's tools will default to the parent's tools. Fold tree requests made by child movers will be taken into account by the parent.

References children_, get_name(), and toolbox_.

Referenced by protocols::loop_modeling::utilities::LoopMoverGroup::add_mover().

void protocols::loop_modeling::LoopMover::apply ( Pose pose)
overridevirtual

Sample the pose in the regions specified by get_loops().

The parent class apply() method automatically sets up a fold tree (if necessary) and keeps track of whether or not the move succeeded. Child classes should reimplement do_apply() instead of this method.

Implements protocols::moves::Mover.

References protocols::loops::add_cutpoint_variants(), do_apply(), core::pose::Pose::fold_tree(), get_loops(), core::util::remove_cutpoint_variants(), request_fold_tree(), setup_fold_tree(), trust_fold_tree_, and was_successful_.

void protocols::loop_modeling::LoopMover::clear_children ( )
protected
Size protocols::loop_modeling::LoopMover::count_children ( ) const
protected

Return the number of children this mover has.

See also
LoopMover::add_child()
LoopMover::get_children()

References children_.

Referenced by protocols::loop_modeling::utilities::LoopMoverGroup::empty().

void protocols::loop_modeling::LoopMover::define_composition_schema ( utility::tag::XMLSchemaDefinition &  xsd,
utility::tag::XMLSchemaComplexTypeGenerator &  ct_gen,
utility::tag::XMLSchemaSimpleSubelementList &  subelements 
)
static
bool protocols::loop_modeling::LoopMover::do_apply ( Pose pose)
protectedvirtual
bool protocols::loop_modeling::LoopMover::do_apply ( Pose pose,
Loop const &  loop 
)
protectedvirtual

Perform the loop sampling move. This method can be overwritten in child classes.

Reimplemented in protocols::kinematic_closure::KicMover, protocols::loop_modeling::LoopBuilder, and protocols::loop_modeling::samplers::LegacyKicSampler.

LoopMoverOPs protocols::loop_modeling::LoopMover::get_children ( ) const
protected
void protocols::loop_modeling::LoopMover::get_children_names ( utility::vector1< std::string > &  names,
std::string  indent = "" 
) const
virtual

Add the names of all the algorithms invoked by this loop mover to the given list. Indentation is used to represent hierarchy.

Reimplemented in protocols::kinematic_closure::KicMover, and protocols::loop_modeling::utilities::LoopMoverGroup.

References get_children(), and get_name().

Loop const & protocols::loop_modeling::LoopMover::get_loop ( core::Size  index) const

Return the specified loop.

References get_loops().

LoopsOP protocols::loop_modeling::LoopMover::get_loops ( void  )

Return the loops to be sampled on the next call to apply().

References protocols::loop_modeling::ToolboxKeys::LOOPS.

Referenced by apply(), do_apply(), and get_loop().

LoopsCOP protocols::loop_modeling::LoopMover::get_loops ( void  ) const

Return the loops to be sampled on the next call to apply().

References protocols::loop_modeling::ToolboxKeys::LOOPS.

string protocols::loop_modeling::LoopMover::get_name ( ) const
inlineoverridevirtual
template<typename ToolTypeOP >
ToolTypeOP protocols::loop_modeling::LoopMover::get_tool ( std::string  key) const
inline

Request a tool from this mover or any of its parents.

If the tool cannot be found, an exception will be thrown.

References toolbox_.

Referenced by protocols::loop_modeling::utilities::TrajectoryLogger::init().

template<typename ToolTypeOP >
ToolTypeOP protocols::loop_modeling::LoopMover::get_tool ( std::string  key,
ToolTypeOP  fallback 
) const
inline

Request a tool from this mover or any of its parents.

If the tool isn't be found, the given fallback will be returned.

References toolbox_.

void protocols::loop_modeling::LoopMover::parse_my_tag ( utility::tag::TagCOP  tag,
basic::datacache::DataMap &  data 
)
overridevirtual
void protocols::loop_modeling::LoopMover::remove_child ( LoopMoverOP  child)
protected

Remove a child from this mover.

See also
LoopMover::add_child()
LoopMover::clear_children()

References children_.

FoldTreeRequest protocols::loop_modeling::LoopMover::request_fold_tree ( ) const
virtual

Return an enum representing the kind of fold tree that is compatible with this mover.

The FoldTreeRequest enum values can be combined using the bitwise logical operators. For example, you can request either the standard fold tree or a simple fold tree with FTR_LOOPS_WITH_CUTS | FTR_SIMPLE_TREE.

Reimplemented in protocols::kinematic_closure::KicMover.

References protocols::loop_modeling::FTR_DONT_CARE, and get_children().

Referenced by apply().

void protocols::loop_modeling::LoopMover::set_loop ( Loop const &  loop)

Set the loop to be sampled on the next call to apply().

References set_loops().

void protocols::loop_modeling::LoopMover::set_loops ( LoopsOP  loops)

Set the loops to be sampled on the next call to apply().

References protocols::loop_modeling::ToolboxKeys::LOOPS, and set_tool().

Referenced by parse_my_tag(), set_loop(), and set_loops().

void protocols::loop_modeling::LoopMover::set_loops ( Loops const &  loops)

Set the loops to be sampled on the next call to apply().

References set_loops().

template<typename ToolTypeOP >
ToolTypeOP protocols::loop_modeling::LoopMover::set_tool ( std::string  key,
ToolTypeOP  value 
)
inline
void protocols::loop_modeling::LoopMover::setup_fold_tree ( Pose pose,
LoopsCOP  loops,
FoldTreeRequest  request 
)
static
void protocols::loop_modeling::LoopMover::trust_fold_tree ( )

Promise that the calling code will setup a fold tree compatible with request_fold_tree(). If this method is not called, this mover will setup a fold tree on its own every time apply() is called.

References trust_fold_tree_.

bool protocols::loop_modeling::LoopMover::was_successful ( ) const

Return true if the previous move was successful.

References was_successful_.

Referenced by do_apply().

void protocols::loop_modeling::LoopMover::was_successful ( bool  value)
inline

Set the success status of a loop mover.

References was_successful_.

Friends And Related Function Documentation

friend class ::LoopModelerTests
friend

Member Data Documentation

LoopMoverOPs protocols::loop_modeling::LoopMover::children_
private
string protocols::loop_modeling::LoopMover::parent_name_
private
basic::datacache::HierarchicalDataMapOP protocols::loop_modeling::LoopMover::toolbox_
private

Referenced by add_child(), get_tool(), and set_tool().

bool protocols::loop_modeling::LoopMover::trust_fold_tree_
private

Referenced by apply(), and trust_fold_tree().

bool protocols::loop_modeling::LoopMover::was_successful_
private

Referenced by apply(), and was_successful().


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