Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
EnzFilters.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 protocols/enzdes/EnzFilters.hh
11 /// @brief definition of filter classes for enzdes in rosetta_scripts framework
12 /// @author Sagar Khare (khares@uw.edu)
13 /// @author Roland A Pache
14 
15 #ifndef INCLUDED_protocols_enzdes_EnzFilters_hh
16 #define INCLUDED_protocols_enzdes_EnzFilters_hh
17 
18 // unit headers
20 
21 // package headers
24 
25 // Project Headers
27 #include <core/pose/Pose.fwd.hh>
30 
34 #include <utility/tag/Tag.fwd.hh>
35 
36 #include <utility/vector1.hh>
37 
38 
39 namespace protocols {
40 namespace enzdes {
41 
42 
44 
45 public:
46 
50 
51 public:
52  LigDSasaFilter() : Filter( "LigDSasa" ) {}
53  LigDSasaFilter( core::Real const lower_threshold, core::Real const upper_threshold );
54  bool apply( core::pose::Pose const & pose ) const;
55  void report( std::ostream & out, core::pose::Pose const & pose ) const;
56  core::Real report_sm( core::pose::Pose const & pose ) const;
57  core::Real compute( core::pose::Pose const & pose ) const;
58  FilterOP clone() const {
59  return new LigDSasaFilter( *this );
60  }
62  return new LigDSasaFilter();
63  }
64 
65  virtual ~LigDSasaFilter();
67 private:
69 };
70 
72 {
73 public:
74 
78 
79 public:
80  LigBurialFilter() : Filter( "LigBurial" ) {}
81  LigBurialFilter( core::Size lig_id, core::Size const numneighbors, core::Real const distance_threshold ) :
82  Filter( "LigBurial" ), lig_id_( lig_id), neighbors_( numneighbors ), distance_threshold_( distance_threshold ) {}
83  bool apply( core::pose::Pose const & pose ) const;
84  void report( std::ostream & out, core::pose::Pose const & pose ) const;
85  core::Real report_sm( core::pose::Pose const & pose ) const;
86  core::Size compute( core::pose::Pose const & pose ) const;
87  FilterOP clone() const {
88  return new LigBurialFilter( *this );
89  }
91  return new LigBurialFilter();
92  }
93 
94  virtual ~LigBurialFilter();
96 private:
100 };
101 
102 
104 {
105 public:
106 
110 
111 public:
112 LigInterfaceEnergyFilter() : Filter( "LigInterfaceEnergy" ) {}
113 
115  core::Real const threshold, bool const include_cstE = false, core::Size const rb_jump = 1,
116  core::Real const interface_distance_cutoff = 8.0 );
117 
119  bool apply( core::pose::Pose const & pose ) const;
120  FilterOP clone() const {
121  return new LigInterfaceEnergyFilter( *this );
122  }
124  return new LigInterfaceEnergyFilter();
125  }
126 
127  void report( std::ostream & out, core::pose::Pose const & pose ) const;
128  core::Real report_sm( core::pose::Pose const & pose ) const;
129  core::Real compute( core::pose::Pose const & pose ) const;
130  core::Real constraint_energy( core::pose::Pose const & pose, int which_res ) const;
131  virtual ~LigInterfaceEnergyFilter();
133  virtual void parse_def( utility::lua::LuaObject const & def,
134  utility::lua::LuaObject const & score_fxns,
135  utility::lua::LuaObject const & tasks );
136 private:
142 
143 };
144 
146 {
147 public:
148 
152 
153 public:
154 EnzScoreFilter() : Filter( "EnzScore" ) {}
155 
156  EnzScoreFilter( core::Size const resnum, std::string const cstid, core::scoring::ScoreFunctionOP scorefxn,
157  core::scoring::ScoreType const score_type, core::Real const threshold, bool const whole_pose, bool const is_cstE
158  );
159 
161  bool apply( core::pose::Pose const & pose ) const;
162  FilterOP clone() const {
163  return new EnzScoreFilter( *this );
164  }
166  return new EnzScoreFilter();
167  }
168 
169  void report( std::ostream & out, core::pose::Pose const & pose ) const;
170  core::Real report_sm( core::pose::Pose const & pose ) const;
171  core::Real compute( core::pose::Pose const & pose ) const;
172  //core::Size get_resid_from_cstid( core::pose::Pose const & pose, core::Size const & cstid) const;
173  virtual ~EnzScoreFilter();
175 private:
182  bool is_cstE_;
183 };
184 
186 {
187 public:
188 
192 
193 public:
194 DiffAtomSasaFilter() : Filter( "DiffAtomBurial" ) {}
195 
196  DiffAtomSasaFilter( core::Size resid1, core::Size resid2, std::string atomname1, std::string atomane2, std::string sample_type );
197  //DiffAtomSasaFilter( DiffAtomSasaFilter const &init );
198  bool apply( core::pose::Pose const & pose ) const;
199  FilterOP clone() const {
200  return new DiffAtomSasaFilter( *this );
201  }
203  return new DiffAtomSasaFilter();
204  }
205 
206  void report( std::ostream & out, core::pose::Pose const & pose ) const;
207  core::Real report_sm( core::pose::Pose const & pose ) const;
208  bool compute( core::pose::Pose const & pose ) const;
209  virtual ~DiffAtomSasaFilter();
211 private:
214 };
215 
217 {
218 public:
219 
223 
224 public:
225 RepackWithoutLigandFilter() : Filter( "RepackWithoutLigand" ) {}
226 
228  bool apply( core::pose::Pose const & pose ) const;
229  FilterOP clone() const {
230  return new RepackWithoutLigandFilter( *this );
231  }
233  return new RepackWithoutLigandFilter();
234  }
235 
236  void report( std::ostream & out, core::pose::Pose const & pose ) const;
237  core::Real report_sm( core::pose::Pose const & pose ) const;
238  core::Real compute( core::pose::Pose const & pose ) const;
239  virtual ~RepackWithoutLigandFilter();
242  void set_cstid_list( std::string setting){ cstid_list_ = setting; }
243 private:
249 };
250 
251 /// @brief tiny helper struct for EnzdesScoreFileFilter
253 {
254  enum CompareMode {
255  SMALLER = 0,
258  };
259 
260  ValueEvaluator( CompareMode const mode, core::Real const cutoff );
261  ~ValueEvaluator();
262 
263  bool
264  value_passes( core::Real const value ) const;
265 
268 };
269 
270 
271 /// brief Class that calculates silent energies for an enzdes type scorefile
272 /// these silent energies can then be written into a scorefile.
273 /// class is derived from Filter because eventually it should be possible
274 /// to have this class read in a requirement file and return false if
275 /// any of the silent energies don't have the required value
277 {
278 
279  //constructor / destructor
280 public:
281 
285 
289 
290 //filter interface
291 public:
292  bool apply( core::pose::Pose const & pose ) const;
293 
294  FilterOP clone() const {
295  return new EnzdesScorefileFilter( *this );
296  }
297 
299  return new EnzdesScorefileFilter();
300  }
301 
303 
304 // specific stuff
305 public:
306 
307  void
308  set_cstio(
310 
311  void
312  examine_pose(
313  core::pose::Pose const & pose
314  ) const;
315 
317  return silent_Es_;
318  }
319 
321 
322  /// @brief clear rnl pose to save some memory
323  void
324  clear_rnl_pose();
325 
326 
327 
328 private:
329 
330  void
332 
333  void
335  std::string sub_name,
336  bool separate_out_constraints,
337  core::pose::Pose const & calc_pose,
338  utility::vector1< core::Size > const & res_subset ) const;
339 
340  void
341  setup_pose_metric_calculators ( core::pose::Pose const & pose, bool separate_out_constraints ) const;
342 
348 
349  mutable std::map< Size, utility::vector1< std::pair< std::string, std::string > > > residue_calculators_;
351 
356 
357  //filter necessary stuff
359  static std::map< std::string, std::map< std::string, ValueEvaluator > > evaluator_map_;
360 
361 
362 };
363 } // enzdes
364 } // protocols
365 
366 
367 #endif /*INCLUDED_protocols_enzdes_EnzFilters_HH*/
368