Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RelaxProtocolBase.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 relax_initialization_protocols
11 /// @brief initialization protocols for relax
12 /// @detailed
13 /// Contains currently: Relax Baseclass
14 ///
15 ///
16 /// @author Mike Tyka
17 
18 
19 #ifndef INCLUDED_protocols_relax_RelaxProtocolBase_hh
20 #define INCLUDED_protocols_relax_RelaxProtocolBase_hh
21 
22 // Unit headers
24 
25 // Package headers
26 #include <protocols/moves/Mover.hh>
27 
28 // Project headers
29 #include <core/pose/Pose.fwd.hh>
31 // AUTO-REMOVED #include <core/pack/task/TaskFactory.hh>
32 
33 //// C++ headers
34 #include <string>
35 
38 #include <utility/vector1.hh>
39 
40 namespace protocols {
41 namespace relax {
42 
44 public:
46 
47 public:
48 
50  RelaxProtocolBase( std::string const & movername = "RelaxProtocol" );
53 
54  virtual protocols::moves::MoverOP fresh_instance() const { return clone(); };
55 
56  static void register_options();
57 
58  // Default options -------------------------------------
59  void set_defaults();
62  void set_default_movemap();
63 
64 protected:
65 
66  void initialize_movemap( core::pose::Pose const & pose, core::kinematics::MoveMap & movemap );
67 
68 public:
69  // Accesors -------------------------------------
70 
71  void minimize_bond_lengths( bool setting );
72  void minimize_bond_angles( bool setting );
73  void minimize_bondlength_subset( int setting );
74  void minimize_bondangle_subset( int setting );
75 
76  bool minimize_bond_lengths() const;
77  bool minimize_bond_angles() const;
78  int minimize_bondlength_subset() const;
79  int minimize_bondangle_subset() const;
80 
83  bool constrain_coords() const { return constrain_coords_;}
87 
88  bool limit_aroma_chi2() const { return limit_aroma_chi2_; }
89 
92  }
95  }
98  }
102  }
105  }
106 
107  // get/set cartesian minimization option
108  void cartesian( bool newval ) { cartesian_ = newval; }
109  bool cartesian( ) const { return cartesian_; }
110 
113 
114  void set_min_type( std::string min_type );
115 
116 public:
119 
122 
123  void set_dry_run( bool setting ) {
124  dry_run_ = setting;
125  }
126 
127  bool dry_run() const {
128  return dry_run_;
129  }
130 
131 protected:
133 
134 
135 
136 public:
137  void apply_disulfides( core::pose::Pose & pose );
138 
139 protected:
140  void set_up_constraints( core::pose::Pose &pose, core::kinematics::MoveMap & local_movemap );
141 
142  void output_debug_structure( core::pose::Pose & pose, std::string prefix );
143 
144 
145 
146 
147 
148 private: // Essentially MoveMap settings
149 
154 
155 protected: // Constraint settings
156 
164 
165  // The minimizer algorithm
167 
168  /// Do cartesian-space minimization?
170 
171 
172 protected:
173 
175 
176 private: // other private variables
177 
178  // The movemap
180 
181  // Fullatom scoring function used
183 
184  /// task factory for packer ( used only FastRelax as of 11/05/2010 )
186 
187  /// @brief Is this a dry run (i.e. do no cycles)
188  bool dry_run_;
189 };
190 
191 }
192 } // protocols
193 
194 #endif