Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
TemperedDocking.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 TemperedDocking.hh
11 ///
12 /// @brief allows low-resolution docking using simulated or parallel tempering
13 /// @author Oliver Lange
14 
15 #ifndef INCLUDED_protocols_docking_TemperedDocking_hh
16 #define INCLUDED_protocols_docking_TemperedDocking_hh
17 
18 // Unit Headers
20 
21 // Package Headers
23 
24 // Project Headers
25 #include <core/types.hh>
26 #include <core/pose/Pose.fwd.hh>
29 
30 #include <protocols/moves/Mover.hh>
34 
35 #include <utility/tag/Tag.fwd.hh>
36 
37 
38 // Utility Headers
39 #include <utility/vector1.hh>
40 
41 // Numeric Headers
42 
43 // ObjexxFCL Headers
44 
45 // C++ headers
46 
47 namespace protocols {
48 namespace docking {
49 
50 /// @brief allows docking using simulated or parallel tempering
51 /// @detailed
53 {
54 public:
55  /// @brief Associates relevant options with the TemperedDocking class
56  static void register_options();
57 
58  /// @brief default constructor fills values with the expected defaults
60 
61  /// @brief clone
62  virtual protocols::moves::MoverOP clone() const;
63 
64  ///@brief copy ctor
65  TemperedDocking( TemperedDocking const & rhs );
66 
67  ///@brief assignment operator
68  TemperedDocking & operator=( TemperedDocking const & rhs );
69 
70  /// @brief Assigns default values to primitive members
71  void set_defaults();
72 
73  /// @brief Instantiates non-primitive members based on the value of the primitive members
75 
76  /// @brief Sets the score function that will be used in the low-resolution phase
77  void set_lowres_scorefxn( core::scoring::ScoreFunctionOP docking_scorefxn_low );
78 
79  /// @brief Sets the score function that will be used in the high-resolution phase.
80  /// The same score function will be used for evaluating moves, packing and discriminating
81  void set_highres_scorefxn( core::scoring::ScoreFunctionOP docking_scorefxn_high );
82 
83  /// @brief Sets the score function that will be used in the high-resolution phase.
84  /// The first scorefunction will be used for evaluating moves and discriminating, the second will be used for packing
86  core::scoring::ScoreFunctionCOP docking_scorefxn_high,
87  core::scoring::ScoreFunctionCOP docking_scorefxn_pack );
88 
89  /// @brief Sets the score function that will be used in the high-resolution phase.
90  /// The first scorefunction will be used for evaluating moves, the second will be used for packing and the third for discriminating
92  core::scoring::ScoreFunctionCOP docking_scorefxn_high,
93  core::scoring::ScoreFunctionCOP docking_scorefxn_pack,
94  core::scoring::ScoreFunctionCOP docking_scorefxn_output);
95 
96  void set_sc_min( bool sc_min );
97 
98  virtual void apply( core::pose::Pose & pose );
99 
100 
101  //getters for const access to movers and data of docking protocol
103 
104  std::string partners() const { return partners_;} /// @brief returns the docking partners chain identifiers
105 
106  virtual std::string get_name() const { return "TemperedDocking"; }
107 
108  DockJumps & movable_jumps(){ return movable_jumps_;} ///@brief returns ref to the jumps vector for docking
109 
110  DockJumps const & movable_jumps() const { return movable_jumps_; } ///@ return const ref to the jumps vector for docking
111 
112 
113  //setters
114  void set_autofoldtree( bool setting ){ autofoldtree_ = setting; }
115 
116  void set_partners( std::string const& setting ){ partners_=setting; }
117 
118  void set_movable_jumps( DockJumps const& setting ){ movable_jumps_ = setting; }
119 
120  void set_use_constraints( bool setting );
121 
122 
123  void add_jump( core::SSize const jump_number ){ movable_jumps_.push_back( int( jump_number ) ); }
124  void show( std::ostream & out=std::cout );
125  friend std::ostream & operator<<(std::ostream& out, const TemperedDocking & dp );
126 
127  // function for the parser with lots of accessors
129 
130 protected:
131  /// @brief Assigns user specified values to primitive members using command line options
132  void init_from_options();
133 
134  /// @brief Performs the portion of setup of non-primitive members that requires a pose - called on apply
135  void finalize_setup( core::pose::Pose & pose );
136 
137  /// @brief Sets up the instance of TemperedDocking and initializes all members based on values passed in at construction
138  /// or via the command line.
139  void init(
140  DockJumps const movable_jumps,
141  core::scoring::ScoreFunctionCOP docking_score_low,
142  core::scoring::ScoreFunctionCOP docking_score_high
143  );
144 
145  void copy( TemperedDocking & lhs, TemperedDocking const & rhs);
146 
147  void setup_objects();
148 
149 private:
150  /// information about the mode
152 
155 
156  bool sc_min_;
157 
158  /// how many cycles of monte-carlo per trajectory in the sampler ?
160 
163 
165 
166  /// jumps that rigid_body transformations can occur over
168 
169  // score functions
174 
175  // constraint set mover
177 
181  //if side-chains are to be taken from specified pdb file... it is set here...
183 
185 
186  bool use_csts_;
187 
190 
191  static bool options_registered_;
192 
193 };
194 } // docking
195 } // protocols
196 
197 #endif
198