Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DockingInitialPerturbation.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 docking_initialization_protocols
11 /// @brief initialization protocols for docking
12 /// @detailed
13 /// This contains the functions that create initial positions for docking
14 /// You can either randomize partner 1 or partner 2, spin partner 2, or
15 /// perform a simple perturbation.
16 /// @author Monica Berrondo
17 
18 
19 #ifndef INCLUDED_protocols_docking_DockingInitialPerturbation_hh
20 #define INCLUDED_protocols_docking_DockingInitialPerturbation_hh
21 
24 
25 // Package headers
26 #include <core/pose/Pose.fwd.hh>
27 
29 
30 #include <protocols/moves/Mover.hh>
34 
35 #include <utility/tag/Tag.fwd.hh>
36 #include <utility/pointer/owning_ptr.hh>
37 #include <utility/vector1.hh>
38 #include <string>
39 
40 namespace protocols {
41 namespace docking {
42 
43 /// @brief this mover carries out the initial perturbation phase of the RosettaDock algorithm
44 /// based on user-inputted command line options
46 {
47 public:
48 
49  /// @brief Default constructor
51 
52  /// @brief Constructor with two arguments. The first is the jump number to dock over, the second is a boolean (true
53  /// will use slide into contact, false will not).
55  core::Size const rb_jump,
56  bool const slide=true
57  );
58 
59  /// @brief Constructor with two arguments. The first is the DockJumps, the second is a boolean (true
60  /// will use slide into contact, false will not).
62  DockJumps const movable_jumps,
63  bool const slide=true
64  );
65 
66  //destructor
68 
69  // protocol functions
70  virtual void apply( core::pose::Pose & pose );
71  void apply_body(core::pose::Pose & pose, core::Size jump_number );
72  virtual std::string get_name() const;
73 
74  /// @brief Calls set_dault, register_from_options and init_from_options
75  void init();
76 
77  /// @brief Sets members to default values
78  void set_default();
79 
80  /// @brief Associates relevant options with the DockingInitialPerturbation class
81  static void register_options();
82 
83  /// @brief Assigns user specified values to primitive members using command line options
84  void init_from_options();
85 
86  /// @brief set functions
87  void set_randomize1(bool randomize1){ randomize1_ = randomize1; }
88  void set_randomize2(bool randomize2){ randomize2_ = randomize2; }
90  dock_pert_ = dock_pert;
91  if_dock_pert_ = true;
92  }
93  void set_uniform_trans(core::Real uniform_trans){
94  uniform_trans_ = uniform_trans;
95  if_uniform_trans_ = true;
96  }
97  void set_spin( bool spin){ spin_ = spin;}
98  void set_center( bool center) { center_at_interface_ = center;}
99 
100  /// zhe for rosetta_scripts
101  void parse_my_tag(
102  utility::tag::TagPtr const tag,
106  core::pose::Pose const &
107  );
108  virtual protocols::moves::MoverOP clone() const; //zhe for scripts
109 
110 private:
111  /// do slide into context?
112  bool slide_;
113 
114  // docking
116 
119  bool spin_;
124 
127 
129 };
130 
131 /// @brief Contrary to the name, slides things apart first, then together.
132 /// OK for proteins, bad for ligands (because they may escape the pocket permanently).
134 {
135 public:
137 
138  // constructor with arguments
139  DockingSlideIntoContact( core::Size const rb_jump );
140 
141  //destructor
143 
144  // protocol functions
145  virtual void apply( core::pose::Pose & pose );
146  virtual std::string get_name() const;
147  core::Size get_jump_num() const { return rb_jump_; }
148  friend std::ostream &operator<< ( std::ostream &os, DockingSlideIntoContact const &mover );
149 
150 private:
152 
153  /// which jump to use for docking
155 };
156 
157 /// @brief Slides docking partners together by monitoring fa_rep.
158 /// @details
159 /// If partners are already touching, no change is made.
160 /// Separation will be 1A or less after calling this function.
162 {
163 public:
165  FaDockingSlideIntoContact( core::Size const rb_jump);
167 
168  //destructor
170 
171  virtual void apply( core::pose::Pose & pose );
172  virtual std::string get_name() const;
173  core::Size get_jump_num() const { return rb_jump_; }
174  core::Real get_tolerance() const { return tolerance_; }
175  friend std::ostream &operator<< ( std::ostream &os, FaDockingSlideIntoContact const &fadock );
176 
177 private:
178  core::Size rb_jump_; // use this or rb_jumps_, not both
181  core::Real tolerance_; ///< how accurate do you want to be?
182 
183 };
184 
185 } // docking
186 } // protocols
187 
188 #endif