![]() |
Rosetta
2021.16
|
Base class for loop-sampling algorithms. More...
#include <LoopMover.hh>

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 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 | 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 |
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.
| protocols::loop_modeling::LoopMover::LoopMover | ( | ) |
Default constructor.
|
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().
|
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_.
|
protected |
Remove all children from this mover.
References children_.
Referenced by protocols::loop_modeling::utilities::LoopMoverGroup::clear().
|
protected |
Return the number of children this mover has.
References children_.
Referenced by protocols::loop_modeling::utilities::LoopMoverGroup::empty().
|
static |
References protocols::loop_modeling::utilities::append_subelement_and_attributes_for_parse_loops_from_tag(), protocols::moves::complex_type_name_for_mover(), and protocols::loop_modeling::LoopMover_subelement_ct_name().
Referenced by protocols::loop_modeling::refiners::RotamerTrialsRefiner::provide_xml_schema(), protocols::loop_modeling::utilities::PrepareForFullatom::provide_xml_schema(), protocols::loop_modeling::refiners::MinimizationRefiner::provide_xml_schema(), and protocols::loop_modeling::refiners::RepackingRefiner::provide_xml_schema().
Perform the loop sampling move. This method can be overwritten in child classes.
Reimplemented in protocols::loop_modeling::refiners::MinimizationRefiner, protocols::loop_modeling::refiners::RepackingRefiner, protocols::loop_modeling::utilities::PrepareForFullatom, protocols::loop_modeler::LoopModeler, protocols::loop_modeling::LoopProtocol, protocols::loop_modeling::utilities::LoopMoverGroup, protocols::loop_modeling::refiners::RotamerTrialsRefiner, protocols::loop_modeling::utilities::AcceptanceCheck, protocols::loop_modeling::utilities::PrepareForCentroid, and protocols::loop_modeling::utilities::LoopFilter.
References core::sequence::end, get_loops(), and was_successful().
Referenced by apply().
|
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.
|
protected |
Return all of this mover's children.
References children_.
Referenced by protocols::loop_modeling::utilities::LoopMoverGroup::do_apply(), protocols::loop_modeling::utilities::LoopMoverGroup::get_children_names(), get_children_names(), and request_fold_tree().
|
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.
|
inlineoverridevirtual |
Return the name of this mover.
Implements protocols::moves::Mover.
Reimplemented in protocols::loop_modeling::LoopProtocol, protocols::loop_modeling::refiners::RepackingRefiner, protocols::loop_modeling::refiners::MinimizationRefiner, protocols::loop_modeling::utilities::PrepareForFullatom, protocols::loop_modeling::refiners::RotamerTrialsRefiner, protocols::loop_modeling::samplers::LegacyKicSampler, protocols::loop_modeling::utilities::AcceptanceCheck, protocols::loop_modeling::utilities::LoopMoverGroup, protocols::loop_modeling::utilities::LoopFilter, and protocols::loop_modeling::utilities::PrepareForCentroid.
Referenced by add_child(), and get_children_names().
|
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().
|
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_.
|
overridevirtual |
Configure from a RosettaScripts tag.
Reimplemented from protocols::moves::Mover.
Reimplemented in protocols::loop_modeling::LoopProtocol, protocols::loop_modeling::utilities::PrepareForFullatom, protocols::loop_modeling::refiners::RepackingRefiner, protocols::loop_modeling::refiners::MinimizationRefiner, and protocols::loop_modeling::refiners::RotamerTrialsRefiner.
References protocols::loop_modeling::utilities::parse_loops_from_tag(), and set_loops().
Referenced by protocols::loop_modeling::refiners::RotamerTrialsRefiner::parse_my_tag(), protocols::loop_modeling::refiners::MinimizationRefiner::parse_my_tag(), protocols::loop_modeling::refiners::RepackingRefiner::parse_my_tag(), and protocols::loop_modeling::utilities::PrepareForFullatom::parse_my_tag().
|
protected |
Remove a child from this mover.
References children_.
|
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().
|
inline |
Provide a tool for this mover or any of its children to use.
References toolbox_.
Referenced by set_loops(), protocols::loop_modeling::refiners::RepackingRefiner::set_score_function(), protocols::loop_modeling::utilities::PrepareForFullatom::set_score_function(), and protocols::loop_modeling::refiners::RepackingRefiner::set_task_factory().
|
static |
Setup the given pose with a fold tree that is compatible with the given loops and requests.
References protocols::loops::add_cutpoint_variants(), core::pose::Pose::fold_tree(), protocols::loops::fold_tree_from_loops(), protocols::loop_modeling::FTR_DONT_CARE, protocols::loop_modeling::FTR_LOOPS_WITH_CUTS, protocols::loop_modeling::FTR_SIMPLE_TREE, and core::pose::Pose::size().
Referenced by apply().
| 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().
|
inline |
Set the success status of a loop mover.
References was_successful_.
|
friend |
|
private |
Referenced by add_child(), clear_children(), count_children(), get_children(), and remove_child().
|
private |
|
private |
Referenced by add_child(), get_tool(), and set_tool().
|
private |
Referenced by apply(), and trust_fold_tree().
|
private |
Referenced by apply(), and was_successful().
1.8.7