Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JumpingFoldConstraints.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 FoldConstraints.hh
11 /// @brief Abinitio-Folding under (distance-)constraints
12 /// @detailed
13 /// extension of classic Foldconstraints Protocol to enable jumping
14 ///
15 ///
16 /// @author Oliver Lange
17 
18 
19 #ifndef INCLUDED_protocols_abinitio_JumpingFoldConstraints_hh
20 #define INCLUDED_protocols_abinitio_JumpingFoldConstraints_hh
21 
22 
23 // Unit Headers
24 // #include <core/fragment/JumpingFoldConstraints.fwd.hh>
25 
26 // Package Headers
28 // AUTO-REMOVED #include <protocols/abinitio/KinematicAbinitio.hh>
30 
32 
33 // Project Headers
34 #include <core/pose/Pose.hh>
38 
40 
41 #include <core/types.hh>
42 
43 //Auto Headers
44 #include <core/fragment/FragSet.hh>
45 
46 
47 // ObjexxFCL Headers
48 
49 // Utility headers
50 
51 //// C++ headers
52 
53 
54 
55 namespace protocols {
56 namespace abinitio {
57 
58 
61 public:
66  jumping::BaseJumpSetupOP jump_def,
67  int dummy /* otherwise the two constructors are ambigous */
68  );
69 
71  core::fragment::FragSetCOP fragset3mer,
72  core::fragment::FragSetCOP fragset9mer,
75  );
77  virtual moves::MoverOP clone() const {
78  return new JumpingFoldConstraints(*this);
79  }
80 
81  static void register_options();
82 
83  virtual void apply( core::pose::Pose & pose );
84  virtual void set_max_seq_sep( core::pose::Pose& pose, Size setting );
85  void set_native_pose( core::pose::Pose const& native_pose); //keeps a copy
86  void set_defeat_purpose( bool setting ) {
87  bChainbreaksAlwaysActive_ = setting;
88  }
89 
90  // @brief overload to do start extra-round of jump_cycles()
91  virtual bool prepare_stage1( core::pose::Pose &pose );
92  virtual bool prepare_stage2( core::pose::Pose &pose );
93  virtual bool prepare_stage3( core::pose::Pose &pose );
94 
95  //@brief called in each iteration of inner loop in stage3 before stage3_cycles_ of trials commence
96  virtual bool prepare_loop_in_stage3(
98  Size, /* loop_iteration*/
99  Size /* total_iterations */
100  );
101 
102  //@brief called in each iteration of the loop in stage4 before the stage4_cycles_ of trials commence
103  virtual bool prepare_loop_in_stage4(
105  Size, /* loop_iteration*/
106  Size /* total_iterations */
107  );
108 
109 
110  //@brief cycles-trial moves of jump_frags_
111  void jump_cycles( core::pose::Pose& pose, Size cycles );
112 
113  //@brief returns the Mover that is applied inside the stage3 double loop
114  //overload from ClassicAbinitio to perform also some wobble-type random moves
117 
118  //@brief returns the Mover that is applied inside the stage3 double loop
119  //overload from ClassicAbinitio to perform also some wobble-type random moves
121  stage3_mover( core::pose::Pose &pose, int lct1, int lct2, moves::TrialMoverOP trials_in );
122 
123  //@brief returns the Mover that is applied inside the stage3 double loop
124  //overload from ClassicAbinitio to perform also some wobble-type random moves
126  stage4_mover( core::pose::Pose &pose, int kk, moves::TrialMoverOP trials_in );
127 
128 protected:
129  virtual void setup_default_min_move();
130 
131  //@brief assigns default score-functions to the 4 stages--> score0 / score1 / (score2/score5) / score3
132  virtual void set_default_scores();
133 
134  //@brief read out cmd-line options
135  virtual void set_default_options();
136 
137 private:
138  //@brief helper method to create_bb_moves for the stage3_- and stage4_mover methods.
141  core::pose::Pose &pose,
142  moves::MoverOP std_moves,
143  bool bLargeWobble,
144  core::Real crank_up_angle
145  );
146 
147  //@brief helper method to create_bb_moves for the stage3_- and stage4_mover methods.
150 
152 
153  //@brief The generally possible jumps, --> used to generate JumpSamples for each run
155 
156  //@brief if true chainbreaks are active from step 1
158 
159  //@brief chainbreak weight is ramped up during stage3 and stage4
161 
162  //@brief overlap chainbreak will be ramped in in stage4
164 
165  //@brief use jumps from ss-pair library
167 
168  //@brief steal jump-geometry from native structure
169  //( i.e., add them temporarily to ss-pair library )
171 
172  //@brief sample jumps from ss-library also during fragment insertion
174 
175  //@brief the current set of jumps and chainbreaks
177 
178  core::pose::PoseOP native_pose_; // this is to be able to copy jumps from native structure
179  core::pose::Pose starting_pose_; // this is to be able to rewind folding after jumps have been sampled
180 
181  core::fragment::FragSetOP pure_large_frags_; //keep these so that we can create
182  core::fragment::FragSetOP jump_frags_; //keep these so that we can create
183 
184  Size nr_jump_cycles_; // controls number of pure-jump moves at beginning of each stage
185 
186 };
187 
188 
189 
190 } //abinitio
191 } // protocols
192 
193 #endif
194 
195