Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FoldConstraints.hh
Go to the documentation of this file.
1 
2 // -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*-
3 // vi: set ts=2 noet:
4 //
5 // (c) Copyright Rosetta Commons Member Institutions.
6 // (c) This file is part of the Rosetta software suite and is made available under license.
7 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
8 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
9 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
10 
11 /// @file
12 /// @brief
13 /// @detailed
14 ///
15 ///
16 ///
17 /// @author Oliver Lange
18 
19 
20 #ifndef INCLUDED_protocols_abinitio_FoldConstraints_hh
21 #define INCLUDED_protocols_abinitio_FoldConstraints_hh
22 
23 
24 // Unit Headers
26 
27 // Package Headers
29 // AUTO-REMOVED #include <protocols/abinitio/SmoothFragmentMover.fwd.hh>
30 //#include <protocols/simple_moves/GunnCost.fwd.hh>
32 //#include <protocols/abinitio/ConstraintFragmentMover.fwd.hh>
34 
35 // Project Headers
36 #include <core/pose/Pose.fwd.hh>
39 #include <core/types.hh>
42 // AUTO-REMOVED #include <core/pack/task/PackerTask.fwd.hh>
43 // AUTO-REMOVED #include <core/scoring/constraints/ConstraintSet.hh>
44 
46 
47 // AUTO-REMOVED #include <protocols/simple_moves/MinMover.hh>
48 //#include <core/scoring/EnergyMap.fwd.hh>
49 
50 #include <protocols/moves/Mover.hh>
51 // AUTO-REMOVED #include <protocols/moves/TrialMover.hh>
52 
53 
54 // ObjexxFCL Headers
55 
56 // Utility headers
57 #include <utility/vector1.fwd.hh>
58 #include <utility/pointer/ReferenceCount.hh>
59 
60 //// C++ headers
61 // AUTO-REMOVED #include <cstdlib>
62 #include <string>
63 
66 #include <utility/vector1.hh>
67 
68 
69 
70 namespace protocols {
71 namespace abinitio {
72 
73 ///@brief extension of ClassicAbinitio Protocol to adapt the folding process for the presence of distance constraints
74 ///@detail Main Function: switch distance constraints based on distance in the FoldTree ( i.e., in sequence for simple FoldTrees )
75 /// This is achieved by replacing the pose's ConstraintSet with the special purpose class MaxSeqSepConstraintSet
76 /// the latter class will only score constraints that are sufficiently close in FoldTree/Sequence
77 /// ( as controlled by the threshold with set_max_seq_sep() )
78 /// the protocol ranks up the max_seq_sep parameter while folding proceeds through the stages.
79 /// to this extend it overloads methods prepare_stageX() do_stage1_cycles()
80 ///
81 /// the other substantial difference to ClassicAbinitio is that minimizations are carried out.
82 /// method min_trial() is called each time the max_seq_sep is changed. ( inhibit: -no_minimize )
84 public:
86 
87 public:
88  ///@brief c'stor from Movers
93  int dummy /* otherwise the two constructors are ambigous */
94  );
95 
96  ///@brief c'stor from FragSets --- ClassicFragmentMover and SmoothFragmentMover will be created
98  core::fragment::FragSetCOP fragset3mer,
99  core::fragment::FragSetCOP fragset9mer,
101  );
102 
103  /// @brief Explicit copy constructor to handle OPs.
104  FoldConstraints( FoldConstraints const & src );
105 
106  /// @brief Explicit destructor to handle OPs
108 
109  ///@brief ...
110  virtual moves::MoverOP clone() const;
111 
112  ///@brief run the protocol
113  virtual void apply( core::pose::Pose & pose );
114  virtual std::string get_name() const;
115 
116  ///@brief sets the usual scores ( score0,score1, score2/5 etc. ) and additionally atom_pair_constraints to 1.0
117  void set_default_scores();
118 
119  ///@brief
121  constraint_weight_ = setting;
123  };
124 
125  virtual void set_default_options();
126  static void register_options();
127 
128  void set_show_viol_level( core::Size setting ) {
129  show_viol_level_ = setting;
130  }
131 protected:
132  //overload some methods of ClassicAbinitio to change the MaxSeqSep of the Constraints throughout the protocol
133  bool prepare_stage1( core::pose::Pose& pose );
134  bool prepare_stage2( core::pose::Pose& pose );
135  bool prepare_stage4( core::pose::Pose& pose );
136  bool prepare_loop_in_stage3( core::pose::Pose &pose, Size loop_iteration, Size total_iterations );
137  bool prepare_loop_in_stage4( core::pose::Pose &pose, Size loop_iteration, Size total_iterations );
138 
139  bool do_stage1_cycles( core::pose::Pose& pose );
140  bool do_stage2_cycles( core::pose::Pose& pose );
141 
142  virtual void setup_default_min_move();
143 
144  //@brief change the movemap ( is propagated to mover-objects )
145  virtual void set_movemap ( core::kinematics::MoveMapCOP mm );
146 
148 
150  return *min_move_;
151  }
152 
153  void min_trial( core::pose::Pose& pose );
154 
155  virtual void set_max_seq_sep( core::pose::Pose& pose, Size setting );
156 
158  return max_seq_sep_fudge_;
159  }
160 
161  void max_seq_sep_fudge( core::Real setting ) {
162  max_seq_sep_fudge_ = setting;
163  }
164 
166  return *constraints_;
167  }
168 
169  void
170  bIgnoreSequenceSeparation( bool setting ) {
171  bIgnoreSequenceSeparation_ = setting;
172  }
173 
174  bool
177  }
178 
179  Size total_res( core::pose::Pose const& pose ) const;
180 
181  void set_seq_sep_stage1 ( core::Real setting ) {
182  seq_sep_stage1_ = setting;
183  }
184 
185  void set_seq_sep_stage3 ( core::Real setting ) {
186  seq_sep_stage3_ = setting;
187  }
188 
189 private:
190  core::Real
192 
194 
197 
201 
206 
211 
212  //just for screen output: how verbose should it be
214 
215  //abolish run in stage2 if constraint threshold is violated -- '0' = inactive
217 };
218 
219 
220 } //abinitio
221 } // protocols
222 
223 #endif