Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
looprelax_protocols.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 loopLoopRebuild_protocols.hh
11 /// @brief
12 /// @detailed
13 ///
14 /// @author James Thompson
15 /// @author Srivatsan Raman
16 
17 
18 #ifndef INCLUDED_protocols_loops_looprelax_protocols_hh
19 #define INCLUDED_protocols_loops_looprelax_protocols_hh
20 
21 #include <core/types.hh>
22 #include <protocols/moves/Mover.hh>
23 // AUTO-REMOVED #include <protocols/moves/TrialMover.hh>
24 //#include <core/chemical/ResidueTypeSet.hh>
25 // AUTO-REMOVED #include <core/scoring/EnergyMap.fwd.hh>
27 // AUTO-REMOVED #include <core/scoring/ScoreType.hh>
28 // AUTO-REMOVED #include <core/pack/task/PackerTask.fwd.hh>
29 #include <core/pose/Pose.fwd.hh>
30 #include <protocols/loops/Loops.hh>
32 
33 #ifdef WIN32
34 #include <core/fragment/FragSet.hh> // WIN32 INCLUDE
35 #endif
36 
37 //// C++ headers
38 // AUTO-REMOVED #include <cstdlib>
39 #include <string>
40 // AUTO-REMOVED #include <vector>
41 
43 #include <utility/vector1.hh>
44 
45 
46 namespace protocols {
47 
48 
49 
50 
51 /// @brief The loop-rebuild protocol
53 public:
54  /// @brief Construct te protocol object given a score function, list of loop segments to rebuild, and
55  /// the fragment library to use. The skip rate of each loop is _ignored_ (the
56  /// decision of which loops to rebuild should be made outside the protocol).
60  );
61 
62  ~LoopRebuild();
63 
64  /// @brief Clone this object
65  virtual protocols::moves::MoverOP clone() const;
66 
67  ///@brief sets all the standard settings for LoopBuild
68  void set_default_settings();
69 
70  /// @brief Get the protocol's Monte Carlo object
72 
73  ///@brief setting the mc object
74  void set_default_mc( core::pose::Pose & pose );
75 
76  /// @brief Apply the loop-rebuild protocol to the input pose
77  void apply( core::pose::Pose & pose );
78  virtual std::string get_name() const;
79 
80  /// @brief Are we extending the loops before running loop-rebuild?
81  bool extended_loop();
82  /// @brief Specify whether the protocol should extend the loops before running loop-rebuild
83  void set_extended_loop( bool val );
84 
85 
86  // ---------------- Acessors -------------------------------------------------
87 
88  /// @brief Were loops successfully built?
89  bool get_success() { return success; }
90 
91  /// @brief
93 
94  /// @brief
95  void set_random_loop_flag(bool setting = true){ random_loop_flag_ = setting; }
96 
97 
98 
99  /// @brief
101 
102  /// @brief
104 
105 
106 
107  /// @brief
109 
110  /// @brief
112 
113 
114 
115 
116  /// @brief
118 
119  /// @brief
120  void set_abort_on_failed_loop(bool setting = true){ abort_on_failed_loop_ = setting; }
121 
122 
123 
124 
126  /// @brief
127  bool loop_model();
128 
129  /// @brief
130  bool get_ccd_closure_exist();
131 
132  /// @brief
134 
135  /// @brief
137 
138  /// @brief
140 
141  /// @brief
143 
144  /// @brief Gets the RMSd tolerence, the most a loop may move during reconstruction
146 
147  /// @brief Gets the chainbreak tolerence, the largest the chainbreak score may be to accept a loop conformation
149 
150 private:
151 
152 
153  /// @brief Rebuild all loops in the pose, chosen in a random order
154  bool build_random_loops( core::pose::Pose & pose );
155 
156  /// @brief
157  void set_looprlx_allow_move_map( int const & loop_begin, int const & loop_end, core::kinematics::MoveMap & mm );
158 
159  /// @brief Get the cutoff for score filtering loop conformations. CURRENTLY UNUSED IN THE PROTOCOL
161 
162  /// @brief Select a loop at random from the input list
163  bool select_one_loop(
164  int nres,
165  int & selected_loop,
166  std::vector< int > & folded_loops,
167  std::vector< int > & inter_res,
168  int & loop_begin,
169  int & loop_end,
170  int & cutpoint,
171  bool & extend_this_loop,
172  bool & are_loops_combined,
173  int & combine_interval,
174  int & loop_counter
175  );
176 
177 
178  /// @brief Extend the loop stems
180  core::pose::Pose & pose,
181  int & barcst_extend_begin,
182  int & barcst_extend_end,
183  int & loop_begin,
184  int & loop_end,
185  int const & old_loop_begin,
186  int const & old_loop_end,
187  int const & nres,
188  int const & selected_loop,
189  int const & total_combine,
190  int const & backward_combine
191  );
192 
193  /// @brief If chainbreak score is greater than the tolerance, extend the loop
195  core::pose::Pose & pose,
196  int const & loop_begin,
197  int const & loop_end,
198  int & n_chain_break_fail,
199  bool & is_chain_break,
200  int & barcst_extend_begin, // output
201  int & barcst_extend_end
202  );
203 
204  /// @brief
206 
207 
208  /// @brief Is the RMS change between these two poses below the acceptible threshold?
210 
211  /// @brief
213 
214  /// @brief frag insertion + ccd close + minimize
216  core::pose::Pose & pose,
217  int const & loop_begin,
218  int const & loop_end,
219  int & cutpoint,
220  bool const & extend_this_loop
221  );
222 
223  /// @brief Apply ccd moves to close the specified loop
225  core::pose::Pose & pose,
226  int const & loop_begin,
227  int const & loop_end,
228  int const & cutpoint,
230  );
231 
232  // protocol-specific data
238  std::vector< core::fragment::FragSetOP > frag_libs_;
239 
240  // parameters
242 
244 
246 
248 
250 
252 
254 
255  core::Real m_Temperature_; // default temperature for monte carlo
257 
258  bool success;
259 }; // class LoopRebuild
260 
261 ///////////////////////////////////////////////////////////////////
262 ///@brief class LoopRefine for fullatom loop refinement
263 ///////////////////////////////////////////////////////////////////
265 public:
267  protocols::loops::Loops Loops_in
268  ):Mover(),
269  Loops_in_( Loops_in )
270  {
271  Mover::type("LoopRefine");
272  }
273 
274  /// @brief Apply the loop-refine protocol to the input pose
275  void apply( core::pose::Pose & pose );
276  virtual std::string get_name() const;
277 
278 private:
280 };
281 
282 } // protocols
283 
284 #endif