Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MinPackMover.hh
Go to the documentation of this file.
1 // -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*-
2 // vi: set ts=2 noet:
3 //
4 // (c) Copyright Rosetta Commons Member Institutions.
5 // (c) This file is part of the Rosetta software suite and is made available under license.
6 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
7 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
8 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
9 
10 /// @file src/protocols/simple_moves/MinPackMover.hh
11 /// @brief protocols::moves::Mover class to invoke core::pack::min_pack
12 /// @author Andrew Leaver-Fay (aleaverfay@gmail.com)
13 
14 #ifndef INCLUDED_protocols_simple_moves_MinPackMover_hh
15 #define INCLUDED_protocols_simple_moves_MinPackMover_hh
16 
17 // Unit headers
19 #include <protocols/moves/Mover.hh>
20 
21 // Project headers
23 
24 #ifdef __clang__
26 #endif
27 
29 #include <core/pose/Pose.fwd.hh>
32 #include <utility/tag/Tag.fwd.hh>
33 #include <utility/vector0.hh>
34 #include <utility/vector1.hh>
35 
36 
37 
38 namespace protocols {
39 namespace simple_moves {
40 
41 /// @brief a mover that packs and minimizes the side-chains. It uses
42 /// a ScoreFunction for packing and either a PackerTask, or a TaskFactory that generates
43 /// a PackerTask for instructions on what rotamer sets are allowed at each residue
44 /// position during packing.
46 public:
50 
51 public:
52  ///@brief default constructor
53  MinPackMover();
54 
55  ///@brief constructor with typename
56  MinPackMover( std::string const & );
57 
59  ScoreFunctionCOP scorefxn
60  );
62  ScoreFunctionCOP scorefxn,
64  );
65 
66  // destructor (important for properly forward-declaring smart-pointer members)
67  virtual ~MinPackMover();
68 
69  // copy constructor
70  MinPackMover( MinPackMover const & other );
71 
72  void
73  init();
74 
75  // methods
76  virtual void apply( Pose & pose );
77  virtual std::string get_name() const;
78  bool task_is_valid( Pose const & pose ) const; // should this be virtual?
79 
80  ///@brief parse XML (specifically in the context of the parser/scripting scheme)
81  virtual void parse_my_tag(
82  TagPtr const,
84  Filters_map const &,
86  Pose const & );
87 
88  ///@brief parse "scorefxn" XML option (can be employed virtually by derived Packing movers)
89  virtual void parse_score_function(
90  TagPtr const,
92  Filters_map const &,
94  Pose const & );
95 
96  ///@brief parse "task_operations" XML option (can be employed virtually by derived Packing movers)
97  virtual void parse_task_operations(
98  TagPtr const,
100  Filters_map const &,
102  Pose const & );
103 
104  ///@brief required in the context of the parser/scripting scheme
106 
107  ///@brief required in the context of the parser/scripting scheme
108  virtual protocols::moves::MoverOP clone() const;
109 
110  // setters
111  void score_function( ScoreFunctionCOP sf );
112  void task_factory( TaskFactoryCOP tf );
113  void task( PackerTaskCOP t );
114  //void nloop( core::Size nloop_in );
115 
116 
117  // accessors
119  PackerTaskCOP task() const;
121 
122  void stochastic_pack( bool );
123  bool stochastic_pack() const;
124 
125 private:
126  // pointers to data that are passed in
130 
131  bool stochastic_pack_; // calls stochastic_pack instead of min_pack if true
133 };
134 
135 
136 } // moves
137 } // protocols
138 
139 #endif