Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RotamerTrialsMover.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
11 /// @brief
12 /// @author Monica Berrondo
13 /// @author Modified by Sergey Lyskov
14 /// @author Modified by Steven Lewis
15 
16 #ifndef INCLUDED_protocols_simple_moves_RotamerTrialsMover_hh
17 #define INCLUDED_protocols_simple_moves_RotamerTrialsMover_hh
18 
19 // Unit headers
21 
22 // Project headers
23 #include <core/types.hh>
24 
25 #include <core/pose/Pose.fwd.hh>
26 // AUTO-REMOVED #include <core/kinematics/MoveMap.fwd.hh>
30 
32 #include <protocols/moves/Mover.hh>
33 
34 // Parser headers
36 #include <utility/tag/Tag.fwd.hh>
37 
38 #include <utility/vector1.hh>
39 
40 
41 namespace protocols {
42 namespace simple_moves {
43 
45 public:
46 
54 
55 public:
56 
57  // default constructor
59 
60  ///@brief constructor with PackerTask. use a PackerTask ONLY for fixed-sequence work.
61  /// WARNING TO ANY DESIGNER WHO PASSES IN A TASK: YOUR DESIGN STEPS WILL BE UNDONE
62  /// AS THIS TASK CONCEIVES OF THE INPUT SEQUENCE THAT CORRESPONDS TO THE ORIGINAL SEQUENCE
64  ScoreFunctionCOP scorefxn_in,
65  PackerTask & task_in
66  );
67 
68  ///@brief constructor with TaskFactory
70  ScoreFunctionCOP scorefxn_in,
71  TaskFactoryCOP factory_in
72  );
73 
74  /// @brief copy constructor
75  RotamerTrialsMover( RotamerTrialsMover const & rval );
76 
77  /// @brief destructor
78  virtual ~RotamerTrialsMover();
79 
80  /// @brief clone this object
81  virtual protocols::moves::MoverOP clone() const;
82 
83  /// @brief create this type of object
85 
86  virtual void apply( core::pose::Pose & pose );
87  virtual std::string get_name() const;
88  //PackerTaskMover/RotamerTrialsMover needs to have a parent class that implements this?
89  //bool task_is_valid( core::pose::Pose const & pose ) const;
90 
91  // setters
94  friend std::ostream &operator<< (std::ostream &os, RotamerTrialsMover const &mover);
95 
96 public:
97 
98  void parse_my_tag(
99  TagPtr const tag,
101  Filters_map const &,
103  Pose const & );
104 
105 protected:
106 
107  /// @brief read access for derived classes
109  scorefxn() const;
110 
111  /// @brief read access for derived classes, pose needed to run TaskFactory
113  task( core::pose::Pose const & pose ) const;
114 
115 private:
116 
117  /// @brief RotamerTrailsMover does not have its own score function, rather, it shares
118  /// one with other classes -- CAUTION: the score function is externally modifiable.
120 
121  /// @brief use a PackerTask ONLY for fixed-sequence work.
122  /// WARNING TO ANY DESIGNER WHO PASSES IN A TASK: YOUR DESIGN STEPS WILL BE UNDONE
123  /// AS THIS TASK CONCEIVES OF THE INPUT SEQUENCE THAT CORRESPONDS TO THE ORIGINAL SEQUENCE
124  ///If a factory is present it overwrites this task with each call to apply()
126 
127  ///@brief TaskFactory allows for nonconstant sequences to be used with RotamerTrialsMover
128  ///CAUTION: the factory is externally modifiable.
130 
131  /// @brief showing contents of PackerTask ( default false )
133 
134 };
135 
137 public:
138 
139  // default constructor
141 
142  // constructor with arguments
144  ScoreFunctionCOP scorefxn_in,
145  PackerTask & task_in,
147  core::Real energycut_in
148  );
149 
150  // constructor with arguments
152  ScoreFunctionCOP scorefxn_in,
153  TaskFactoryCOP factory_in,
155  core::Real energycut_in
156  );
157 
158  virtual
160 
161 public:
162 
163  /// @brief apply this mover to a pose
164  virtual
165  void
166  apply( core::pose::Pose & pose );
167 
168  virtual std::string get_name() const;
169 
170 protected:
171 
172  /// @brief selects a subset of residues to repack based on the per
173  /// residue energies of the last accepted pose in the MC object.
174  void
176  core::pose::Pose const & pose,
179  ) const;
180 
182  mc();
183 
184 private:
185 
186  // data
189 };
190 
191 } // moves
192 } // protocols
193 
194 #endif