Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HBondOptions.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 core/scoring/hbonds/HBondOptions.hh
11 /// @brief HBondOptions class, holds the options for the hbond energy function
12 /// @author Matthew O'Meara
13 
14 /// @detail
15 /// To add an additional option for hydrogen bonds do the following:
16 /// 1) add it to the default constructor
17 /// 2) add it to the copy constructor
18 /// 3) add a getter and a setter
19 /// 4) add it to operator==
20 /// 5) add it to the private data
21 /// 6) add it to HBondOptions::show
22 
23 
24 #ifndef INCLUDED_core_scoring_hbonds_HBondOptions_HH
25 #define INCLUDED_core_scoring_hbonds_HBondOptions_HH
26 
27 // Unit headers
29 
30 // Package headers
31 #include <core/types.hh>
32 
33 // Utility headers
34 #include <utility/pointer/ReferenceCount.hh>
35 
36 // C++ headers
37 #include <string>
38 
39 namespace core {
40 namespace scoring {
41 namespace hbonds {
42 
44 public:
45 
46  HBondOptions();
47 
48  HBondOptions( std::string params_db_tag );
49 
50  virtual ~HBondOptions();
51 
52  /// copy constructor
53  HBondOptions( HBondOptions const & src );
54 
55  /// copy operator
56  HBondOptions const &
57  operator=( HBondOptions const & src );
58 
59  /// @brief Double counted hbonds include:
60  /// @brief - Hydrogen bonds to self
61  /// @brief - Backbone - sidechain hydrogen bonds where the backbone partner is forming a backbone - backbone hydrogen bond.
62  /// @brief Turning off this exclusion rule is useful for collecting statistics on hydrogen bond site satisfaction
63  bool
64  exclude_self_hbonds() const;
65 
66  ///
67  void
68  exclude_self_hbonds( bool const setting );
69 
70  ///
71  bool
72  exclude_DNA_DNA() const;
73 
74  ///
75  void
76  exclude_DNA_DNA( bool const setting );
77 
78  ///
79  bool
80  include_intra_res_RNA() const;
81 
82  ///
83  void
84  include_intra_res_RNA( bool const setting );
85 
86  ///
87  bool
88  use_hb_env_dep_DNA() const;
89 
90  ///
91  void
92  use_hb_env_dep_DNA( bool const setting );
93 
94  ///
95  bool
96  use_hb_env_dep() const;
97 
98  ///
99  void
100  use_hb_env_dep( bool const setting );
101 
102  ///
103  bool
104  smooth_hb_env_dep() const;
105 
106  ///
107  void
108  smooth_hb_env_dep( bool const setting );
109 
110  ///
111  bool
112  bb_donor_acceptor_check() const;
113 
114  ///
115  void
116  bb_donor_acceptor_check( bool const setting );
117 
118  ///
119  bool
121 
122  ///
123  void
124  decompose_bb_hb_into_pair_energies( bool const setting );
125 
126  ///
127  //std::string const &
128  //HBEval_fname() const;
129 
130  ///
131  void
132  params_database_tag( std::string const & setting );
133 
134  ///
135  std::string const &
136  params_database_tag() const;
137 
138  ///pba
139  bool
140  Mbhbond() const;
141 
142  ///pba
143  void
144  Mbhbond( bool const setting );
145 
146  ///
147  bool
148  use_incorrect_deriv() const;
149 
150  ///
151  void
152  use_incorrect_deriv( bool const setting );
153 
154  bool use_sp2_chi_penalty() const;
155  void use_sp2_chi_penalty( bool setting );
156 
157  /// @brief Parameter for the sp2 potential that dictates how much worse a head-on hydrogen bond is
158  /// relative to one at a BAH angle of 120 degrees. Controlled by the command-line flag
159  /// -corrections:score:hb_sp2_BAH180_rise. Default of 0.75.
160  Real sp2_BAH180_rise() const;
161  void sp2_BAH180_rise( Real setting );
162 
163  /// When calculating the BAH angle for sp3 hybridized acceptors: true: the angle should be measured
164  /// from the heavy-atom base (CB for S/T); false: from the base-2 atom (HG for S/T).
165  bool measure_sp3acc_BAH_from_hvy() const;
166  void measure_sp3acc_BAH_from_hvy( bool setting );
167 
168  friend
169  bool
170  operator==( HBondOptions const & a, HBondOptions const & b );
171 
172  friend
173  bool
174  operator!=( HBondOptions const & a, HBondOptions const & b );
175 
176  friend
177  std::ostream &
178  operator<< ( std::ostream & out, const HBondOptions & options );
179 
180  ///
181  void
182  show( std::ostream & out ) const;
183 
184 private:
185 
192  bool bb_donor_acceptor_check_; // T/F? Should we apply the rule that sc/bb hbonds are rejected if bb/bb exist?
199  bool Mbhbond_; //pba
200 };
201 
202 
203 } // hbonds
204 } // scoring
205 } // core
206 
207 #endif // INCLUDE_core_scoring_hbonds_HBondOptions_HH