Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FlxbbDesign.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/flxbb/FlxbbDesign.hh
11 /// @brief perform cycles of design and relax with filter
12 /// @author Nobuyasu Koga ( nobuyasu@uw.edu )
13 
14 #ifndef INCLUDED_protocols_flxbb_FlxbbDesign_hh
15 #define INCLUDED_protocols_flxbb_FlxbbDesign_hh
16 
17 // Unitt Header
19 
20 // Package Headers
24 #ifdef __clang__
26 #endif
27 
28 // Project Headers
29 #include <core/types.hh>
31 #include <core/pose/Pose.fwd.hh>
34 
36 
38 #include <protocols/moves/Mover.hh>
40 
41 #include <utility/tag/Tag.fwd.hh>
42 
44 #include <utility/vector0.hh>
45 #include <utility/vector1.hh>
46 
47 #ifdef WIN32
50 #endif
51 
52 namespace protocols {
53 namespace flxbb{
54 
55 
56 ///////////////////////////////////////////////////////////////////////////////////////////////////////
58 public:
59 
60 
63  typedef core::Size Size;
64  typedef core::Real Real;
71 
77 
82 
83 
84 public: // constructor/destructor
85 
86 
87  /// @brief default constructor
88  FlxbbDesign();
89 
90  /// @brief value constructor
92  ScoreFunctionOP const sfxnd,
93  ScoreFunctionOP const sfxnr,
94  Size const ncycle = 3,
95  String const layer_mode = "",
96  bool const use_origseq_for_not_dsgned_layer = true,
97  bool const no_relax = false );
98 
99  /// @brief copy constructor
100  FlxbbDesign( FlxbbDesign const & rval );
101 
102  /// @brief destructor
103  virtual ~FlxbbDesign();
104 
105 
106 public: // virtual constructors
107 
108 
109  /// @brief clone this object
110  virtual
111  MoverOP clone() const;
112 
113 
114  /// @brief create this type of object
115  virtual
116  MoverOP fresh_instance() const;
117 
118 
119 public:
120 
121 
122  /// @brief read parameters
123  void read_options();
124 
125  /// @brief initialize filter parameters
126  void initialize_filter( Size const filter_trial, String const & filter_type );
127 
128  /// @brief register options
129  static void register_options();
130 
131 
132 public: // virtual main operation
133 
134 
135  /// @brief mover apply
136  virtual void apply( Pose & pose );
137 
138  virtual std::string get_name() const;
139 
140 public:// mutators
141 
142 
143  /// @brief set the score function for fixbb design
144  void set_scorefxn_design( ScoreFunctionOP const scorefxn );
145 
146  /// @brief set the score function for relax
147  void set_scorefxn_relax( ScoreFunctionOP const scorefxn );
148 
149  /// @brief the number of cycles of fixbb and relax
150  void set_ncycles( Size const ncycles );
151 
152  /// @brief set layer mode
153  void set_layer_mode( String const & layer_mode );
154 
155  /// @brief use original sequence for not designed region in layer_mode,
156  /// otherwise the residues of the region turned into Ala ( default true )
157  void use_origseq_for_not_dsgned_layer( bool const use );
158 
159  /// @brief relax is not performed after design (default false)
160  void no_relax( bool const no_relax );
161 
162  /// @brief design protocol will not be performed (default false)
163  void no_design( bool const no_design );
164 
165  /// @brief set BluePrintOP
166  void set_blueprint( BluePrintOP const blueprint );
167 
168  /// @brief set weight of constraints_sheet which constrains between Ca atoms in beta-sheets
169  /// if this weight > 0.0, the constraints is applied ( default = -1.0 )
170  void set_weight_constraints_sheet( Real const value );
171 
172  /// @brief set weight of constraints_NtoC which constrain between Ca atoms of C- and N-terminal
173  /// if this weight > 0.0, the constraints is applied ( default = -1.0 )
174  void set_weight_constraints_NtoC( Real const value );
175 
176  /// @brief set movemap for relax
177  void movemap_from_blueprint( bool const value );
178 
179  /// @brief set movemap for relax
180  void set_movemap( MoveMapOP const movemap );
181 
182 
183 public:// mutators relevant to the DesignTaskSet
184 
185 
186  /// @brief set DesignTaskSet
187  /// Once you set DesignTaskSet, this controls almost every setups of this class
188  void set_design_taskset( DesignTaskSet const & design_taskset );
189 
190  /// @brief add the design task which cotrols the iteration of fixbb design and relax
191  void add_design_task( DesignTaskOP const design_task );
192 
193  /// @brief filtering during design
194  void set_filter_during_design( FilterStructsOP const filter_during_design );
195 
196  /// @brief clear DesignTaskSet
197  void clear_design_taskset();
198 
199 
200 public:// parser
201 
202  virtual void parse_my_tag( TagPtr const tag,
203  DataMap & data,
204  Filters_map const &,
205  Movers_map const &,
206  Pose const & );
207 
208 
209 private:// helper functions
210 
211 
212  /// @brief
213  DesignTaskSet build_design_taskset( Pose const & pose );
214 
215 
216  /// @brief make movemap from blueprint for relax
217  MoveMapOP get_movemap_from_blueprint( Pose const & pose, BluePrintOP const blueprint );
218 
219 
220 private:
221 
222 
223  /// @brief score function for design
225 
226  /// @brief score function for relax
228 
229  /// @brief the number of cycles of fixbb and relax
231 
232  /// @brief perform fixbb in layer mode
234 
235  /// @brief use original sequence for not designed region in layer_mode, otherwise the residues of the region turned into Ala
237 
238  /// @brief relax is not performed after design (default false)
239  bool no_relax_;
240 
241  /// @brief design protocol will not be performed (default false)
243 
244  /// @brief control the method of design with filter and relax
246 
247  /// @brief filter during design
249 
250  /// @brief blueprint for setting up constraints of beta sheet
252 
253  /// @brief resfile
255 
256  /// @brief weight of constraints_sheet which constrains between Ca atoms in beta-sheets
257  /// if this weight > 0.0, the constraints is applied ( default = -1.0 )
259 
260  /// @brief weight of constraints_NtoC which constrains between Ca atoms of C- and N-terminal
261  /// if this weight > 0.0, the constraints is applied ( default = -1.0 )
263 
264  /// @brief set movemap from blueprint ( default false )
266 
267  /// @brief mavemap for relax ( defalut NULL )
269 
270  /// @brief task operations
272 
273  /// @brief use fast relax or not
275 
276  /// @brief clear all residues before design
278 
279  // constraint of backbone to fixbb-designed structure during relax
281 
282  // @brief Exclude aromatic chi2 rotamers, of which angles are around 0
284 
285 
286 };
287 
288 ///////////////////////////////////////////////////////////////////////////////////////////////////////
290 public:
291 
295 
296 public:
297 
298  FlxbbDesignPack();
299 
301  ScoreFunctionCOP scorefxn,
303  FilterStructsOP filter=0 );
304 
305  virtual ~FlxbbDesignPack();
306 
307  virtual void apply( core::pose::Pose & pose );
308  virtual std::string get_name() const;
309 
310 private:
311 
313 
314 };
315 
316 
317 } // namespace flxbb
318 } // namespace protocols
319 
320 #endif