Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
CentroidRelax.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
6 // (c) under license. The Rosetta software is developed by the contributing
7 // (c) members of the Rosetta Commons. For more information, see
8 // (c) http://www.rosettacommons.org. Questions about this can be addressed to
9 // (c) University of Washington UW TechTransfer,email:license@u.washington.edu.
10 
11 /// @file protocols/relax/CentroidRelax.hh
12 /// @brief Centroid-based relax, using Frank Dimaio's updated centroid statistics
13 /// @author Jared Adolf-Bryfogle (jadolfbr@gmail.com)
14 
15 #ifndef INCLUDED_protocols_relax_CENTROIDRELAX_HH
16 #define INCLUDED_protocols_relax_CENTROIDRELAX_HH
17 
18 
19 //Core Headers
20 #include <core/pose/Pose.fwd.hh>
24 
25 //Protocol Headers
28 #include <protocols/moves/Mover.hh>
29 
30 //Utility Headers
31 #include <utility/vector1.hh>
32 
33 namespace protocols{
34  namespace relax{
35  using namespace core::scoring;
36  using namespace protocols::simple_moves;
37  using namespace core::kinematics;
38  using namespace core::pack::task;
39  using core::Size;
40  using std::string;
41  using core::Real;
42  using core::pose::Pose;
43  using utility::vector1;
44 
45 ///@brief Relax a pose using Frank Dimaio's smooth centroid statistics.
46 ///Currently under optimization.
47 ///
48 ///@details Minimize a centroid representation of a pose. Ramp VDW/Rama or both.
49 ///
50 ///May tweak structure by up to ~2.5 A without constraints.
51 ///Use custom constraints or coordinate constraints through relax options for best results.
52 ///Using starting coordinate constraints, structure is tweaked by ~.3/.4 A
53 ///Use increased VDW radii option for bb to improve bb-geometry when not using constraints
54 ///
55 ///
57 public:
58  CentroidRelax();
60  CentroidRelax(MoveMapOP mm, ScoreFunctionOP cen_scorefxn_in);
61 
62  //Specific functions for Mover...
63  virtual ~CentroidRelax();
64 
65  virtual string get_name() const;
66 
67  virtual protocols::moves::MoverOP clone() const;
68 
69  void set_defaults();
70 
71  void set_rounds(Size rounds);
72 
73  ///@brief use larger VDW radii for atoms - bb for now - default True (Courtesy of Frank Dimaio)
74  void set_use_increased_vdw_radii(bool use);
75 
76  ///@brief Sets to use Rama2b instead of Rama - default True
77  void set_use_rama2b(bool use);
78 
79  ///@brief Ramp Rama according to centroid relax parameters
80  void set_ramp_rama(bool use);
81 
82  ///@brief Ramp VDW according to centroid relax parameters
83  void set_ramp_vdw(bool use);
84 
85  ///@brief Sets main scorefunction used for centroid minimization.
86  void set_score_function(ScoreFunctionOP cen_score);
87 
88  ///@brief Sets fullatom scorefunction - only used for scoring the full atom pose before and after protocol.
89  void set_fa_score_function(ScoreFunctionOP fa_score);
90 
91  ///@brief Sets the minimizer type.
92  void set_min_type(string min);
93 
94  ///@brief Sets to use the cartesian minimizer.
95  void set_cartesian(bool cart);
96 
97  ///@brief If a fullatom pose is passed, should we repack sidechains according to movemap?
98  void do_final_repack(bool repack_sc);
99 
100  ///@brief Applies the protocol, See notes
101  ///
102  ///@details Setting ramp_rama and ramp_vdw to false switches to the BASIC protocol
103  /// which is rounds of the centroid minmover
104  virtual void apply( Pose & pose );
105 
106 private:
107 
108  ///@brief Load the default parameters from the default file.
109  void read_default_parameters();
110 
111  ///@brief used internally to setup extra stuff for movemap.
112  void setup_class_movemap_and_constraints(Pose & pose);
113 
114  ///@brief increase VDW radii for backbone to help geometry and decrease rmsd
115  void setup_increased_vdw_radii();
116 
119  bool ramp_vdw_;
127 
128  ///@brief Container for ramp settings
129  struct parameters{
134  };
135 
137 
138 };
139  }
140 }
141 
142 #endif //#ifndef INCLUDED_protocols/relax_CENTROIDRELAX_HH