Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
EnergyMethodOptions.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/ScoreFunction.hh
11 /// @brief Score function class
12 /// @author Phil Bradley
13 
14 /// NOTE-- this file includes both string and map, use .fwd.hh if
15 /// you can!
16 
17 
18 #ifndef INCLUDED_core_scoring_methods_EnergyMethodOptions_hh
19 #define INCLUDED_core_scoring_methods_EnergyMethodOptions_hh
20 
21 // Unit headers
23 
24 #include <core/types.hh>
26 // AUTO-REMOVED #include <core/scoring/ScoringManager.fwd.hh> // FA_STANDARD_DEFAULT
27 #include <core/scoring/SecondaryStructureWeights.hh> /// REPLACE THIS WITH .fwd.hh
29 
30 // AUTO-REMOVED #include <core/chemical/ChemicalManager.fwd.hh> // CENTROID
31 
33 
34 /// Utility headers
35 // AUTO-REMOVED #include <utility/exit.hh>
36 #include <utility/pointer/ReferenceCount.hh>
37 #include <utility/sql_database/DatabaseSessionManager.hh>
38 
39 // C++ Headers
40 // AUTO-REMOVED #include <string>
41 #include <map>
42 
43 #include <utility/vector1.hh>
44 
45 
46 namespace core {
47 namespace scoring {
48 namespace methods {
49 
50 /// add more options here
51 /// NOTE: If you add an option, make sure you also update the constructor,
52 /// the assignment operator, the == comparison operator, and the show method in the .cc file!
53 /// right now this class should be pretty light-weight since a copy is held inside ScoreFunctionInfo
54 ///
55 
56 
58 public:
59  ///
61 
62  /// @brief Initialize a new EnergyMethodOptions with defaults from the command line.
63  void
65 
66  /// copy constructor
68 
69  virtual
71 
72  /// copy operator
73  EnergyMethodOptions const &
74  operator=( EnergyMethodOptions const & src );
75 
76  ///
77  std::string const &
78  etable_type() const;
79 
80  ///
81  void
82  etable_type( std::string const & type );
83 
85  void analytic_etable_evaluation( bool setting ) { analytic_etable_evaluation_ = setting; }
86 
87  ///
88  std::string const &
89  unfolded_energies_type() const;
90 
91  ///
92  void
93  unfolded_energies_type( std::string const & type );
94 
95  ///
96  bool
98 
99  ///
100  void
101  exclude_protein_protein_hack_elec( bool const setting );
102 
103  ///
104  bool
106 
107  ///
108  void
109  exclude_monomer_hack_elec( bool const setting );
110 
111  /// @brief The maximum (all atom) distance at which hack_elec is non-zero
112  core::Real
113  hackelec_max_dis() const;
114 
115  void
116  hackelec_max_dis( core::Real setting );
117 
118  /// @brief The minimium (all atom) distance for which hack_elec changes with distances
119  core::Real
120  hackelec_min_dis() const;
121 
122  void
123  hackelec_min_dis( core::Real setting );
124 
125  /// @brief The dielectric used for the hack_elec term
126  core::Real
127  hackelec_die() const;
128 
129  void
130  hackelec_die( core::Real setting );
131 
132  /// @brief Should hack_elec use a constant (non-distance dependant) dielectric?
133  bool
134  hackelec_no_dis_dep_die() const;
135 
136  void
137  hackelec_no_dis_dep_die( bool setting );
138 
139  bool
140  smooth_hack_elec() const;
141 
142  void
143  smooth_hack_elec( bool setting );
144 
145  ///
146  bool
147  exclude_DNA_DNA() const;
148 
149  ///
150  void
151  exclude_DNA_DNA( bool const setting );
152 
153  /// @brief Read access to the hbond options object
154  hbonds::HBondOptions const &
155  hbond_options() const;
156 
157  /// @brief non-const access to the hbond options object
159  hbond_options();
160 
161  /// @breif Set the hbond options object -- makes a deep copy
162  void
163  hbond_options( hbonds::HBondOptions const & opts );
164 
165  std::string const & pb_bound_tag() const;
167  void pb_bound_tag( std::string const & tag );
168 
169  std::string const & pb_unbound_tag() const;
171  void pb_unbound_tag( std::string const & tag );
172 
173  /// @brief This is used in the construction of the VDW_Energy's AtomVDW object
174  std::string const &
176 
177  ///
178  void
179  atom_vdw_atom_type_set_name( std::string const & setting );
180 
181  ///
182  core::Size
183  cst_max_seq_sep() const;
184 
185  ///
186  void
187  cst_max_seq_sep( Size const setting );
188 
189  /// deprecated
192 
193  /// depricated
194  void
196  utility::vector1<std::string> const & atom_names);
197 
200 
203 
204  void
207 
209  int ss_lowstrand,
210  int ss_cutoff);
211 
212  ///
215 
216  ///
219 
220  ///
221  bool
222  has_method_weights( ScoreType const & type ) const;
223 
224  ///
226  method_weights( ScoreType const & type ) const;
227 
228  ///
229  void
231  ScoreType const & type,
232  utility::vector1< Real > const & wts);
233 
234  ///@brief get the harmonic bond angle and bond-length spring constants
235  void
236  get_cartesian_bonded_parameters( Real &len, Real &ang, Real &tors, Real &proton , Real &imp ) const {
237  len=cartbonded_len_;
238  ang=cartbonded_ang_;
239  tors=cartbonded_tors_;
240  proton=cartbonded_proton_;
242  }
243 
244  ///@brief set the harmonic bond angle and bond-length spring constants
245  void
246  set_cartesian_bonded_parameters( Real len, Real ang, Real tors, Real proton, Real imp ) {
247  cartbonded_len_=len;
248  cartbonded_ang_=ang;
249  cartbonded_tors_=tors;
250  cartbonded_proton_=proton;
252  }
253 
254  ///@brief get the harmonic bond angle and bond-length spring constants
256  return cartbonded_linear_;
257  }
258 
259  ///@brief set the harmonic bond angle and bond-length spring constants
260  void set_cartesian_bonded_linear( bool lin_in ) {
261  cartbonded_linear_ = lin_in;
262  }
263 
264  /// used inside ScoreFunctionInfo::operator==
265  friend
266  bool
267  operator==( EnergyMethodOptions const & a, EnergyMethodOptions const & b );
268 
269  /// used inside ScoreFunctionInfo::operator==
270  friend
271  bool
272  operator!=( EnergyMethodOptions const & a, EnergyMethodOptions const & b );
273 
274  ///
275  void
276  show( std::ostream & out ) const;
277 
278  static
279  void
281  utility::sql_database::sessionOP db_session
282  );
283 
284  void
286  Size batch_id,
287  std::string const & score_function_name,
288  utility::sql_database::sessionOP db_session) const;
289 
290 private:
291  /// expand this to a class and include ss weights inside
292  typedef std::map< ScoreType, utility::vector1< Real > > MethodWeights;
293 
294 private:
295 
296  /////////////////////////////////////////////////
297  // IMPORTANT NOTE! If you add an option, make sure you also update the constructor,
298  // the assignment operator, the == comparison operator, and the show method in the .cc file!
299  /////////////////////////////////////////////////
320 
321  /// deprecated
324 };
325 
326 
327 std::ostream &
328 operator<< ( std::ostream & out, EnergyMethodOptions const & options );
329 
330 }
331 }
332 }
333 
334 #endif // INCLUDED_core_scoring_ScoreFunction_HH