Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DdgFilter.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/simple_filters/DdgFilter.hh
11 /// @brief definition of filter class DdgFilter.
12 /// @author Sarel Fleishman (sarelf@u.washington.edu), Jacob Corn (jecorn@u.washington.edu)
13 /// Augmented for PB support by Sachko Honda (honda@apl.washington.edu) December 2012.
14 
15 #ifndef INCLUDED_protocols_simple_filters_DdgFilter_hh
16 #define INCLUDED_protocols_simple_filters_DdgFilter_hh
17 
20 #include <utility/tag/Tag.fwd.hh>
23 #include <core/pose/Pose.fwd.hh>
27 
28 namespace protocols {
29 namespace simple_filters {
30 
31 class DdgFilter : public filters::Filter
32 {
33 public:
34  /// Distance in A to separate the molecules away from bound-state.
35  /// NOTES by Sachko Honda: This value used to be hard coded to 1000 for unbound poses,
36  /// whereas the default 100 was used for bounded.
37  /// The choice of value 1000 was arbitrary by the original author.
38  /// The value is now reduced to 100 in order to help the PDE solver (APBS)
39  /// from blowing up, by default, but can be a user-defined value via RosettaScript option
40  /// or command-line option.
42 
43  DdgFilter();
44  DdgFilter( core::Real const ddg_threshold,
46  core::Size const rb_jump=1,
47  core::Size const repeats=1,
48  bool const symmetry=false);
49  bool apply( core::pose::Pose const & pose ) const;
50  filters::FilterOP clone() const;
52 
53  void repack( bool const repack );
54  bool repack() const;
55  void repeats( core::Size const repeats );
56  void repack_bound( bool rpb ) { repack_bound_ = rpb; }
57  bool repack_bound() const { return repack_bound_; }
58  void relax_bound( bool rlb ) { relax_bound_ = rlb; }
59  bool relax_bound() const { return relax_bound_; }
60  core::Size repeats() const;
63  void use_custom_task( bool uct ) { use_custom_task_ = uct; }
64  bool use_custom_task() const { return use_custom_task_; }
65  void report( std::ostream & out, core::pose::Pose const & pose ) const;
66  core::Real report_sm( core::pose::Pose const & pose ) const;
67  core::Real compute( core::pose::Pose const & pose ) const;
68  virtual ~DdgFilter();
70  void parse_def( utility::lua::LuaObject const & def,
71  utility::lua::LuaObject const & score_fxns,
72  utility::lua::LuaObject const & tasks );
75 private:
76 
77  // initialize PB related features
78  void initPB();
79 
81  core::scoring::ScoreFunctionOP scorefxn_; //dflt NULL/score12 in cstrctr/rosettascripts
82  core::Size rb_jump_; // dflt 1
85  bool repack_bound_; //dflt true; Do you want to repack in the bound state (ddG). Avoid redundant packing if already packed beforing calling the filter.
86  bool relax_bound_; //dflt false; Do you want to relax in the bound state (ddG). Avoid redundant relax if already relaxed before calling the filter.
88  core::Size repeats_;//average of how many repeats? defaults to 1
89  bool symmetry_; //dflt false
90  bool repack_; //dflt true; Do you want to repack in the bound and unbound states (ddG) or merely compute the dG
91  protocols::moves::MoverOP relax_mover_; //dflt NULL; in the unbound state, prior to taking the energy, should we do any relaxation
92 
93  /// is PB enabled?
95 
96  /// translation distance in A
98 };
99 
100 
101 }
102 }
103 #endif