Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RNA_DeNovoProtocol.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 RNA_DeNovo_Protocol.hh
11 /// @brief
12 /// @detailed
13 ///
14 /// @author Rhiju Das
15 
16 
17 #ifndef INCLUDED_protocols_rna_RNA_DeNovoProtocol_HH
18 #define INCLUDED_protocols_rna_RNA_DeNovoProtocol_HH
19 
20 #include <core/types.hh>
21 #include <protocols/moves/Mover.hh>
22 #include <core/pose/Pose.fwd.hh>
34 // AUTO-REMOVED #include <protocols/moves/MonteCarlo.hh>
35 // AUTO-REMOVED #include <core/scoring/ScoreFunction.hh>
36 
37 //Oooh.
38 #include <ObjexxFCL/FArray1D.hh>
39 
40 //// C++ headers
41 #include <cstdlib>
42 #include <string>
43 #include <list>
44 
48 #include <utility/vector1.hh>
49 
50 
51 namespace protocols {
52 namespace rna {
53 
54 /// @brief The RNA de novo structure modeling protocol
56 public:
57 
58  /// @brief Construct the protocol object given
59  /// the RNA fragment library to use.
61  Size const nstruct,
62  std::string const silent_file,
63  bool const heat_structure = true,
64  bool const minimize_structure = false,
65  bool const relax_structure = false,
66  bool const allow_bulge = false );
67 
69 
70  /// @brief Clone this object
71  virtual protocols::moves::MoverOP clone() const;
72 
73  /// @brief Apply the RNA denovo modeling protocol to the input pose
74  void apply( core::pose::Pose & pose );
75 
76  virtual std::string get_name() const;
77 
78  void
79  set_dump_pdb( bool const setting ){ dump_pdb_ = setting; };
80 
81  void
82  set_temperature( core::Real const setting ){ m_Temperature_ = setting; };
83 
84  void
85  set_jump_library_file( std::string const jump_library_file ) {
86  jump_library_file_ = jump_library_file;
87  }
88 
89  void
92  }
93 
94  void
97  }
98 
99  void
101  rna_params_file_ = file;
102  }
103 
104  void
106  rna_data_file_ = file;
107  }
108 
109  void
111  chunk_pdb_files_ = chunk_pdb_files;
112  }
113 
114  void
116  chunk_silent_files_ = chunk_silent_files;
117  }
118 
119  void
121  input_res_ = input_res;
122  }
123 
124  void
125  ignore_secstruct( bool const setting ) { ignore_secstruct_ = setting; }
126 
127  // No longer works -- need to specify allow_insert from a "params file"
128  // void
129  // set_allow_insert( FArray1D <bool> const & allow_insert ){ allow_insert_ = allow_insert; }
130 
131  void
133 
134  void
135  set_close_loops( bool const setting ){
136  close_loops_at_end_ = setting;
138  }
139 
140  void
142 
143  void
144  simple_rmsd_cutoff_relax( bool const setting ){ simple_rmsd_cutoff_relax_ = setting; }
145 
146  void
147  output_lores_silent_file( bool const setting ){ output_lores_silent_file_ = setting; }
148 
149  void
150  set_filter_lores_base_pairs( bool const setting ){ filter_lores_base_pairs_ = setting; }
151 
152  void
153  set_filter_lores_base_pairs_early( bool const setting ){
156  }
157 
158  void
159  set_filter_chain_closure( bool const setting ){ filter_chain_closure_ = setting; }
160 
161  void
163 
164  void
166 
167  void
168  set_binary_rna_output( bool const setting ){ binary_rna_output_ = setting; }
169 
170  void
172 
173  void
174  set_lores_scorefxn( std::string const & lores_scorefxn ){ lores_scorefxn_ = lores_scorefxn; }
175 
176  void
177  set_vary_bond_geometry( bool const setting ){
178  vary_bond_geometry_ = setting;
180  }
181 
182  void
183  output_to_silent_file( core::pose::Pose & pose, std::string const & silent_file, std::string const & out_file_tag, bool const score_only = false ) const;
184 
185  void
186  align_and_output_to_silent_file( core::pose::Pose & pose, std::string const & silent_file, std::string const & out_file_tag ) const;
187 
188  void
189  set_staged_constraints( bool const setting ){ staged_constraints_ = setting; }
190 
191  void
192  set_allow_consecutive_bulges( bool const setting ){ allow_consecutive_bulges_ = setting; };
193 
194  void
196 
197  void
199 
200  void
202 
203  void
204  set_move_first_rigid_body( bool const setting ){ move_first_rigid_body_ = setting; }
205 
206  void
207  set_root_at_first_rigid_body( bool const setting ){ root_at_first_rigid_body_ = setting; }
208 
209  void
210  set_output_filters( bool const setting ){ output_filters_ = setting; }
211 
212  void
213  set_autofilter( bool const setting ){ autofilter_ = setting; }
214 
215  void
217 
218  void
220 
221 private:
222 
223  void
225 
226  void
228 
230  get_moving_res( core::pose::Pose const & pose ) const;
231 
232  void
234 
235  void
237 
238  void
240 
241  void
243 
244  void
245  setup_rigid_body_mover( core::pose::Pose const & pose, core::Size const r, core::Size const rounds );
246 
247 
248  void
250  core::io::silent::SilentFileData & silent_file_data,
251  std::string const & silent_file,
252  core::pose::Pose & pose,
253  std::string const out_file_tag,
254  bool const score_only = false ) const;
255 
256  void
258 
259  void
261 
262  void
263  update_denovo_scorefxn_weights( Size const & r, Size const & rounds );
264 
265  Size
266  figure_out_constraint_separation_cutoff( Size const & r, Size const & rounds, Size const & max_dist );
267 
268  void
269  update_pose_constraints( Size const & r, Size const & rounds, core::pose::Pose & pose );
270 
271  void
272  update_frag_size( Size const & r, Size const & rounds );
273 
274  void
276 
277  bool
279 
280  void
282 
283  void
285 
286  void
288 
289  void
291 
292  void
293  calc_rmsds( core::io::silent::SilentStruct & s, core::pose::Pose & pose, std::string const & out_file_tag ) const;
294 
295  bool
296  check_score_filter( core::Real const lores_score_, std::list< core::Real > & all_lores_score_ );
297 
298  void
299  apply_chem_shift_data(core::pose::Pose & pose, std::string const out_file_tag);
300 
301  void
302  add_chem_shift_info(core::io::silent::SilentStruct & silent_struct, core::pose::Pose const & const_pose) const;
303 
304 private:
305 
306  // protocol-specific data ... need to be specified as input.
307  Size const nstruct_;
314  bool const heat_structure_;
315  bool dump_pdb_;
317  bool const relax_structure_;
319 
324 
327 
329 
330  // parameters
331  core::Real m_Temperature_; // default temperature for monte carlo
333 
335 
343 
347  // This object will actually hold the jump library...
350 
352 
355 
359 
362 
364 
366 
367  std::map< std::string, bool > tag_is_done_;
368 
374 
381 
383 
386 
391 
397  std::list< core::Real > all_lores_score_final_;
398 
399 }; // class RNA_DeNovoProtocol
400 
401 
402 
403 }
404 } // protocols
405 
406 #endif