Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
EnzdesTaskOperations.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 src/protocols/enzdes/DesignProteinLigandInterface.hh
11 /// @brief a collection of Task operations used in enzyme design
12 /// @author Florian Richter, Sinisa Bjelic (sbjelic@u.washington.edu), Rocco Moretti (rmoretti@u.washington.edu)
13 
14 
15 #ifndef INCLUDED_protocols_enzdes_EnzdesTaskOperations_hh
16 #define INCLUDED_protocols_enzdes_EnzdesTaskOperations_hh
17 
20 
22 #include <core/types.hh>
23 
24 #include <core/pose/Pose.fwd.hh>
25 #include <utility/tag/Tag.fwd.hh>
26 #include <utility/vector1.hh>
27 #include <set>
28 #include <string>
29 
30 
31 namespace protocols{
32 namespace enzdes {
33 
34 
35 /// @brief queries the pose cst cache for the catalytic residues,
36 /// and sets the behavior for them as specified in the cstfile
38 {
39 
40 public:
44 
45 public:
46 
49 
50  virtual TaskOperationOP clone() const;
51 
52  /// @brief Change a packer task in some way. The input pose is the one to which the input
53  /// task will be later applied.
54  virtual void apply( Pose const & pose, PackerTask & task ) const;
55 
56  virtual void parse_tag( TagPtr tag );
57 
58  void
59  set_fix_catalytic_aa( bool setting ){
60  fix_catalytic_aa_ = setting; }
61 
62 private:
64  std::string behavior_non_catalytic_; //this string defaults to empty, but if set through the tag, the noncatalytic residues will be changed accordingly
65 
66 };
67 
68 
69 ///@brief Given a set of cut1/cut2/cut3/cut4 distance specifications, alter a
70 ///packing task to set residues within alpha carbons within cut1 of a ligand
71 ///(or within cut2 with beta carbons facing inwards) to redesign, and within cut3
72 ///(or cut4 facing inwards) to repack, and all others to fixed. If a resfile is provided,
73 ///only do the detection for those residues set to AUTO in the resfile.
75 {
76 
77 public:
81 
82 public:
83 
86 
87  virtual TaskOperationOP clone() const;
88 
89  /// @brief Initialize the class based on the command line options.
90  void init_from_options();
91 
92  /// @brief Change a packer task in some way. The input pose is the one to which the input
93  /// task will be later applied.
94  virtual void apply( Pose const & pose, PackerTask & task) const;
95 
96  virtual void parse_tag( TagPtr );
97 
98  void
100  core::pose::Pose const & pose,
101  std::set< core::Size > const & interface_target_res,
102  core::Real cut1,
103  core::Real cut2,
104  core::Real cut3,
105  core::Real cut4,
106  utility::vector1< bool > & repack_res,
107  utility::vector1< bool > & design_res
108  ) const;
109 
110  void
112  core::pose::Pose const & pose,
113  std::set< core::Size > const & interface_target_res,
114  core::Real cut1,
115  core::Real cut2,
116  core::Real cut3,
117  core::Real cut4,
118  core::Real arg_sweep_cutoff,
119  utility::vector1< bool > & repack_res,
120  utility::vector1< bool > & design_res
121  ) const;
122 
123  static void register_options();
124 
125  bool get_design() const { return design_;}
126  void set_design(bool const design_in) {design_ = design_in;}
127 
128  bool get_no_design_cys() const { return no_design_cys_;}
129  void set_no_design_cys(bool const no_design_cys_in) {no_design_cys_ = no_design_cys_in;}
130 
131  void
132  set_design_target_res( std::set< core::Size > const & target_res )
133  { design_target_res_ = target_res; }
134 
135  static
136  void
138  core::pose::Pose const & pose,
139  std::set< core::Size > & set
140  );
141 
142 private:
143  /// Control whether the detect design interface algorithm is run.
145 
146  /// Use protein-DNA interface like arginine rotamer sweep to identify designable positions
148  /// Dicitate the max distance from arginine to ligand for position to be counted as designable
150 
151  /// interface can be declared as all catalytic res
153  /// Depending on the design_ variable setting the cut1 and cut2 can be turned off and no design will take place.
154  bool design_;
155  /// Turn of design (repack_only_), or repacking and design (score_only_)
156  // repack_only_ & score_only_ are "global" options - design_ is more temporary/local
158  /// cut1_ through cut4_ define the shells over which the interface detection takes place
160  /// If resfilename_ is not empty, load it and obey the AUTO directives therein
162  std::set< core::Size > design_target_res_;
164  /// Should we prohibit designing to non disulfide cys?
169 };
170 
171 ///@brief Class to alter a packer task to speficially upweight the protein-ligand interaction energies
173 {
174 
175 public:
179 
180 public:
181 
184 
185  virtual TaskOperationOP clone() const;
186 
187  /// @brief Initialize the class based on the command line options.
188  void init_from_options();
189 
190  /// @brief Change a packer task in some way. The input pose is the one to which the input
191  /// task will be later applied.
192  virtual void apply( Pose const & pose, PackerTask & task) const;
193 
194  virtual void parse_tag( TagPtr );
195 
196  static void register_options();
197 
198  bool get_weight() const { return lig_packer_weight_;}
199  void set_weight(bool const weight_in) {lig_packer_weight_ = weight_in;}
200 
201 private:
202  /// Reweight protein-ligand interaction by a factor of lig_packer_weight_.
205 };
206 
208 {
209 
210 public:
214 
215 public:
216 
219 
220  virtual TaskOperationOP clone() const;
221 
222  void parse_tag( TagPtr tag );
223 
224  /// @brief Change a packer task in some way. The input pose is the one to which the input
225  /// task will be later applied.
226  virtual void apply( Pose const &, PackerTask & ) const;
227 
228 };
229 
230 //Add ligand motif rotamers
232 {
233 
234 public:
238 
239 private:
241 
242 
243 public:
244 
247 
248  virtual TaskOperationOP clone() const;
249 
250  static void register_options();
251 
252  virtual void parse_tag( TagPtr );
253 
254  /// @brief Change a packer task in some way. The input pose is the one to which the input
255  /// task will be later applied.
256  virtual void apply( Pose const &, PackerTask & ) const;
257 
258 };
259 
260 }//namespace protocols
261 }//namespace protocols
262 
263 #endif