Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ClassicRelax.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 relax_initialization_protocols
11 /// @brief initialization protocols for relax
12 /// @detailed
13 /// Contains currently: Relax Baseclass, ClassicRelax Stage 1,2,3, ClassicRelax
14 ///
15 ///
16 /// @author Mike Tyka
17 
18 
19 #ifndef INCLUDED_protocols_relax_ClassicRelax_hh
20 #define INCLUDED_protocols_relax_ClassicRelax_hh
21 
22 
24 
25 #include <protocols/moves/Mover.hh>
30 
33 
34 #include <core/pose/Pose.fwd.hh>
35 
38 
39 //// C++ headers
40 #include <string>
41 
42 #include <utility/vector1.hh>
43 
44 
45 
46 namespace protocols {
47 namespace relax {
48 
49 
51 public:
52  virtual moves::MoverOP create_mover() const;
53  virtual std::string keyname() const;
54  static std::string mover_name();
55 };
56 
57 /// A functor class which implements the classic Rosetta++ pose_relax protocol
58 ///
59 /// @todo Crank and Wobble Moves - however there's little evidence that they are essential
60 ///
61 // @todo Ramping of vdw --> how about providing a general ramper class. It could provide an iterator thru which
62 // continuously changing score functions are accessible.
63 /// @brief A functor class which implements the classic Rosetta++ pose_relax protocol
65 public:
67 
68 public:
70 
72 
73  ClassicRelax( ClassicRelax const & );
74 
75  ClassicRelax();
76 
77  virtual ~ClassicRelax();
78 
80 
81  static void register_options();
82  // Default settings
83 
84  void set_default( core::scoring::ScoreFunctionOP scorefxn_in );
85 
86  ///////////////////////////////////////////////////////////////////////////////////
87  ///
88  /// Central Apply function
89  ///
90  virtual void apply( core::pose::Pose & pose );
91  virtual std::string get_name() const;
92 
93 
94 
95  ///////////////////////////////////////////////////////////////////////////////////
96  ///
97  /// Set default options from outside
98  ///
99 
100  void set_default( bool const use_default_movemap = true );
101 
102 
103 
104  void set_default_minimizer();
105 
107 
109 
111 
112  ///////////////////////////////////////////////////////////////////////////////////
113  ///
114  /// Set options from outside
115  ///
116 
117  void set_lj_ramp_cycles( int param ) { lj_ramp_cycles = param; }
118 
119  void set_lj_ramp_inner_cycles( int param ) { lj_ramp_inner_cycles = param; }
120 
122 
123  void set_stage2_cycles( int cycles2 ) { stage2_cycles = cycles2; }
124 
125  void set_stage2_repack_period( int repack2 ) { stage2_repack_period = repack2; }
126 
127  void set_stage3_cycles( int cycles3 ) { stage3_cycles = cycles3; }
128 
129  void set_tolerance( core::Real new_tolerance );
130 
131  void set_mc ( moves::MonteCarloOP new_mc_ );
132 
134 
136 
137  void setPoseExtraScores( core::pose::Pose &pose );
138 
139  void use_coarse_vdw() { //we need to know which scoring terms to ramp!
140  // one could generalize this by giving a RamperClass to the Protocol, which provides an iterator that yields a scoring function
144  };
145 
146 
147 
148  ///////////////////////////////////////////////////////////////////////////////////
149  ///
150  /// Accessors
151  ///
152 
154 
155 
157 
158 private:
159  // protocol stuff
160 
163 
164  // THese three are special in the sense that they require a Pose at creating time.
165  // this means they cannot have default values at construction time of ClassicRelax
166  // because the pose is not yet known. Thus their initialisation has to be delayed
167  // until apply is called. Each has a boolean flag to indicate whether the user has
168  // overridden them with their own object instance or if apply should create a default
169  // version.
170 
173  void check_default_mc( core::pose::Pose & pose );
174  // stuff to do with packing
175 
179 
183 
184  // default temperature for monte carlo
186 
187  // default number of moves
190 
191  // minimization options
193  bool nb_list;
195 
199 
200  // PHASE1 stuff
201 
206 
210 
211  // PHASE2 stuff
214 
215  // PHASE3 stuff RandomMover
217 
218 
219  // filters
220 
225 
230 
231 };
232 
233 
234 
235 }
236 } // protocols
237 
238 #endif