Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
AnchorMovers.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 /protocols/anchored_design/AnchorMovers.hh
11 /// @brief protocol-level outermost movers for anchored design; wraps a set of other moves
12 /// @author Steven Lewis smlewi@gmail.com
13 
14 #ifndef INCLUDED_protocols_anchored_design_AnchorMovers_hh
15 #define INCLUDED_protocols_anchored_design_AnchorMovers_hh
16 
17 // Unit Headers
20 // AUTO-REMOVED #include <protocols/anchored_design/Anchor.fwd.hh>
22 
23 // Project Headers
24 #include <core/pose/Pose.fwd.hh>
25 #include <protocols/moves/Mover.hh>
26 
27 #include <utility/vector1.hh>
28 
29 
30 // Utility Headers
31 
32 namespace protocols {
33 namespace anchored_design {
34 
36 
37 public:
38  ///@brief constructor with arguments
40 
41  ///@brief ctor with no arguments
43 
44  ///@brief copy ctor
46 
47  ///@brief assignment operator
49 
50  virtual ~AnchoredDesignMover();
51 
52  virtual void apply( core::pose::Pose & pose );
53  virtual std::string get_name() const;
54  virtual bool reinitialize_for_new_input() const;
55  virtual bool reinitialize_for_each_job() const;
56  virtual protocols::moves::MoverOP clone() const;
58 
59 private:
60  ///@initializes internals; must wait for a pose to initialize
61  void init_on_new_input( core::pose::Pose const & pose );
62 
63 public:
64  ///@brief creates the anchored design fold tree and applies it to the pose
66 
67  ///@brief runs varous filtering checks on the finished pose; sets MoverStatus for failure as needed
68  void filter( core::pose::Pose & pose );
69 
70  ///@brief implements the "extended" field of the loop file specification - sets extended phi/psi as needed
72 
73  ///@brief calculate RMSD if desired; protected internally
74  void calculate_rmsd( core::pose::Pose const & pose, core::pose::PoseCOP start_pose );
75 
76  ///@brief randomize the input loop sequence. Useful if you have reason to believe the starting loop sequence is biasing to a particular unwanted structure in centroid mode. Acts only on designable positions.
77  void randomize_input_sequence( core::pose::Pose & pose ) const;
78 
79  ///@brief This function repacks the interface with use_input_sc forcibly off for benchmarking purposes.
81 
82  ///@brief handles perturbing the initial anchor placement
83  void perturb_anchor( core::pose::Pose & pose ) const;
84 
85  //option system replacement getters and setters
86  ///@brief run RMSD calculations
87  bool get_rmsd() const;
88  ///@brief run only RMSD calculations against this input, don't do actual AnchoredDesign
89  std::string const & get_RMSD_only_this() const;
90  ///@brief delete the input sidechains (independently from use_input_sc in the packer) - used to prevent leakage of sidechains in benchmarking mode
92  ///@brief show_extended demonstrates that the code really forgets the input structure
93  bool get_show_extended() const;
94  ///@brief randomize_input_sequence to complement loop extension in forgetting the input
95  bool get_randomize_input_sequence() const;
96  ///@brief pick a different cutpoint than the input; useful when you want to sample cutpoints
97  bool get_vary_cutpoints() const;
98  ///@brief skip the perturbation step - useful when you already have a good structure
99  bool get_refine_only() const;
100  ///@brief filter based on total complex score
102  ///@brief filter based on complex SASA
103  core::Real get_filter_SASA() const;
104  ///@brief filter based on omega angles in the loops - filter out cis omegas
105  bool get_filter_omega() const;
106  ///@brief whether to automatically initialize from the options system; defaults to true
107  bool get_autoinitialize() const;
108 
109  ///@brief run RMSD calculations
110  void set_rmsd(bool const rmsd);
111  ///@brief run only RMSD calculations against this input, don't do actual AnchoredDesign
112  void set_RMSD_only_this(std::string const & RMSD_only_this);
113  ///@brief delete the input sidechains (independently from use_input_sc in the packer) - used to prevent leakage of sidechains in benchmarking mode
114  void set_delete_interface_native_sidechains(bool const delete_interface_native_sidechains);
115  ///@brief show_extended demonstrates that the code really forsets the input structure
116  void set_show_extended(bool const show_extended);
117  ///@brief randomize_input_sequence to complement loop extension in forgetting the input
118  void set_randomize_input_sequence(bool const randomize_input_sequence);
119  ///@brief pick a different cutpoint than the input; useful when you want to sample cutpoints
120  void set_vary_cutpoints(bool const vary_cutpoints);
121  ///@brief skip the perturbation step - useful when you already have a good structure
122  void set_refine_only(bool const refine_only);
123  ///@brief filter based on total complex score
124  void set_filter_score(core::Real const filter_score);
125  ///@brief filter based on complex SASA
126  void set_filter_SASA(core::Real const filter_SASA);
127  ///@brief filter based on omega angles in the loops - filter out cis omegas
128  void set_filter_omega(bool const filter_omega);
129  ///@brief whether to automatically initialize from the options system; defaults to true
130  void set_autoinitialize(bool const autoinitialize);
131 
132  ///@brief read in options from the options system
133  void read_options();
134 
135 
136 private:
137 
139 
140  ///@details used for RMSD comparisons with RMSD_only_this mode
142 
144 
145  //option system replacement
146  //benchmarking mode options
147  ///@brief run RMSD calculations
148  bool rmsd_;
149  ///@brief run only RMSD calculations against this input, don't do actual AnchoredDesign
151  ///@brief delete the input sidechains (independently from use_input_sc in the packer) - used to prevent leakage of sidechains in benchmarking mode
153  ///@brief show_extended demonstrates that the code really forgets the input structure
155  ///@brief randomize_input_sequence to complement loop extension in forgetting the input
157  //regular mode options
158  ///@brief pick a different cutpoint than the input; useful when you want to sample cutpoints
160  ///@brief skip the perturbation step - useful when you already have a good structure
162  //filtering options
163  ///@brief filter based on total complex score
165  ///@brief filter based on total complex score
167  ///@brief filter based on complex SASA
169  ///@brief filter based on complex SASA
171  ///@brief filter based on omega angles in the loops - filter out cis omegas
173  ///@brief whether to automatically initialize from the options system; defaults to true
175 
176  ///@brief used to determine the validity of the rest of the internals, especially the interface_ object
178 
179 }; //class AnchoredDesignMover
180 
181 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
183 
184 public:
185  //@brief constructor with arguments
187 
188  virtual ~AnchoredPerturbMover();
189 
190  virtual void apply( core::pose::Pose & pose );
191  virtual std::string get_name() const;
192 
193  //option system replacement
194  ///@brief debugging mode activates a bunch of extra output
195  bool get_debug() const;
196  ///@brief do not perform CCD style closure (use KIC only)
197  bool get_perturb_CCD_off() const;
198  ///@brief do not perform KIC style closure (use CCD only)
199  bool get_perturb_KIC_off() const;
200  ///@brief use nonpivot torsion sampling for KIC?
201  bool get_nonpivot_torsion_sampling() const;
202  ///@brief MC temperature
204  ///@brief number of MC cycles
206  ///@brief do not use fragments?
207  bool get_no_frags() const;
208  ///@brief what minimizer type to use?
209  std::string const & get_min_type() const;
210  ///@brief show perturb result structure?
211  bool get_perturb_show() const;
212 
213  ///@brief debugging mode activates a bunch of extra output
214  void set_debug(bool const debug);
215  ///@brief do not perform CCD style closure (use KIC only)
216  void set_perturb_CCD_off(bool const perturb_CCD_off);
217  ///@brief do not perform KIC style closure (use CCD only)
218  void set_perturb_KIC_off(bool const perturb_KIC_off);
219  ///@brief use nonpivot torsion sampling for KIC?
220  void set_nonpivot_torsion_sampling(bool const nonpivot_torsion_sampling);
221  ///@brief MC temperature
222  void set_perturb_temp(core::Real const perturb_temp);
223  ///@brief number of MC cycles
224  void set_perturb_cycles(core::Size const perturb_cycles);
225  ///@brief do not use fragments?
226  void set_no_frags(bool const no_frags);
227  ///@brief what minimizer type to use?
228  void set_min_type(std::string const & min_type);
229  ///@brief show perturb result structure?
230  void set_perturb_show(bool const perturb_show);
231 
232  ///@brief read in options from the options system
233  void read_options();
234 
235 private:
236 
237  ///@details AnchorMoversData object holds scorefunctions, etc, for the AnchoredDesign suite (shared between several movers)
239 
240  //option system replacement
241  ///@brief debugging mode activates a bunch of extra output
242  bool debug_;
243  ///@brief do not perform CCD style closure (use KIC only)
245  ///@brief do not perform KIC style closure (use CCD only)
247  ///@brief use nonpivot torsion sampling for KIC?
249  ///@brief MC temperature
251  ///@brief number of MC cycles
253  ///@brief do not use fragments?
254  bool no_frags_;
255  ///@brief what minimizer type to use?
257  ///@brief show perturb result structure?
259 }; //class AnchoredPerturbMover
260 
262 
263 public:
264  //@brief constructor with arguments
266 
267  virtual ~AnchoredRefineMover();
268 
269  virtual void apply( core::pose::Pose & pose );
270  virtual std::string get_name() const;
271 
272  //option system replacement
273  ///@brief debugging mode activates a bunch of extra output
274  bool get_debug() const;
275  ///@brief do not perform CCD style closure (use KIC only)
276  bool get_refine_CCD_off() const;
277  ///@brief do not perform KIC style closure (use CCD only)
278  bool get_refine_KIC_off() const;
279  ///@brief use nonpivot torsion sampling for KIC?
280  bool get_nonpivot_torsion_sampling() const;
281  ///@brief KIC use vicinity sampling?
282  bool get_vicinity_sampling() const;
283  ///@brief KIC vicinity sampling degrees
285  ///@brief MC temperature
286  core::Real get_refine_temp() const;
287  ///@brief number of MC cycles
289  ///@brief what minimizer type to use?
290  std::string const & get_min_type() const;
291  ///@brief how many cycles between repack/design opportunities?
293 
294  ///@brief debugging mode activates a bunch of extra output
295  void set_debug(bool const debug);
296  ///@brief do not perform CCD style closure (use KIC only)
297  void set_refine_CCD_off(bool const refine_CCD_off);
298  ///@brief do not perform KIC style closure (use CCD only)
299  void set_refine_KIC_off(bool const refine_KIC_off);
300  ///@brief use nonpivot torsion sampling for KIC?
301  void set_nonpivot_torsion_sampling(bool const nonpivot_torsion_sampling);
302  ///@brief KIC use vicinity sampling?
303  void set_vicinity_sampling(bool const vicinity_sampling);
304  ///@brief KIC vicinity sampling degrees
305  void set_vicinity_degree(core::Size const vicinity_degree);
306  ///@brief MC temperature
307  void set_refine_temp(core::Real const refine_temp);
308  ///@brief number of MC cycles
309  void set_refine_cycles(core::Size const refine_cycles);
310  ///@brief what minimizer type to use?
311  void set_min_type(std::string const & min_type);
312  ///@brief how many cycles between repack/design opportunities?
313  void set_refine_repack_cycles(core::Size const refine_repack_cycles);
314 
315  ///@brief read in options from the options system
316  void read_options();
317 
318 private:
319 
321 
322  //option system replacement
323  ///@brief debugging mode activates a bunch of extra output
324  bool debug_;
325  ///@brief do not perform CCD style closure (use KIC only)
327  ///@brief do not perform KIC style closure (use CCD only)
329  ///@brief use nonpivot torsion sampling for KIC?
331  ///@brief KIC use vicinity sampling?
333  ///@brief KIC vicinity sampling degrees
335  ///@brief MC temperature
337  ///@brief number of MC cycles
339  ///@brief what minimizer type to use?
341  ///@brief how many cycles between repack/design opportunities?
343 
344 }; //class AnchoredRefineMover
345 
346 
347 }//AnchoredDesign
348 }//protocols
349 
350 #endif //INCLUDED_protocols_AnchoredDesign_AnchorMovers_HH