Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
GenBornEnergy.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/methods/GenBornEnergy.hh
11 /// @brief Statistically derived rotamer pair potential class declaration
12 /// @author Phil Bradley
13 
14 
15 #ifndef INCLUDED_core_scoring_methods_GenBornEnergy_hh
16 #define INCLUDED_core_scoring_methods_GenBornEnergy_hh
17 
18 // Unit Headers
20 
21 // Package headers
27 
28 // Project headers
29 #include <core/pose/Pose.fwd.hh>
30 #include <core/id/AtomID.fwd.hh>
31 
32 #include <utility/vector1.hh>
33 
34 
35 // Utility headers
36 //////////////////////////////////////////////////////////////////////////////////
37 //////////////////////////////////////////////////////////////////////////////////
38 //////////////////////////////////////////////////////////////////////////////////
39 /**
40 
41  This is a reimplementation of Jim Havranek's original rosetta++ Gen Born code.
42  source files: rosetta++/gb_elec*
43 
44 **/
45 //////////////////////////////////////////////////////////////////////////////////
46 //////////////////////////////////////////////////////////////////////////////////
47 //////////////////////////////////////////////////////////////////////////////////
48 
49 
50 namespace core {
51 namespace scoring {
52 namespace methods {
53 
54 ///
56 public:
58 public:
59 
60  /// for use by ScoringManager
61  GenBornEnergy( EnergyMethodOptions const & options );
62 
63  ///
64  GenBornEnergy( GenBornEnergy const & src );
65 
66 
68  {
69  return gen_born_lr;
70  }
71 
72  virtual
73  bool
75  pose::Pose const & pose,
76  Size res1,
77  Size res2
78  ) const;
79 
80  /// clone
81  virtual
83  clone() const;
84 
85  ///
86  virtual
87  void
89  pose::Pose & pose,
90  utility::vector1< bool > const & residues_repacking,
92  ) const;
93 
94  ///
95  virtual
96  void
97  setup_for_scoring( pose::Pose & pose, ScoreFunction const & ) const;
98 
99  ///
100  virtual
101  void
102  setup_for_derivatives( pose::Pose & pose, ScoreFunction const & ) const;
103 
104  virtual
105  void
107  pose::Pose const & pose,
109  ) const;
110 
111  virtual
112  void
114  pose::Pose &,
115  Size resid ) const;
116 
117  /////////////////////////////////////////////////////////////////////////////
118  // scoring
119  /////////////////////////////////////////////////////////////////////////////
120 
121  virtual
122  void
124  conformation::Residue const & rsd1,
125  conformation::Residue const & rsd2,
126  pose::Pose const & pose,
127  ScoreFunction const &,
128  EnergyMap & emap
129  ) const;
130 
131  virtual
132  void
134  conformation::RotamerSetBase const & set,
135  pose::Pose const & pose,
136  ScoreFunction const & sfxn,
138  ) const;
139 
140  virtual
141  void
143  conformation::RotamerSetBase const & set,
144  pose::Pose const & pose,
145  ScoreFunction const & sfxn,
147  ) const;
148 
149  /// @brief Batch computation of rotamer pair energies. Need not be overriden in
150  /// derived class -- by default, iterates over all pairs of rotamers,
151  /// and calls derived class's residue_pair_energy method. Since short range rotamer pairs
152  /// may not need calculation, the default method looks at blocks of residue type pairs
153  /// and only calls the residue_pair_energy method if the rotamer pairs are within range
154  virtual
155  void
157  conformation::RotamerSetBase const & set1,
158  conformation::RotamerSetBase const & set2,
159  pose::Pose const & pose,
160  ScoreFunction const & sfxn,
161  EnergyMap const & weights,
162  ObjexxFCL::FArray2D< core::PackerEnergy > & energy_table
163  ) const;
164 
165 
166  /// @brief Batch computation of rotamer/background energies. Need not be overriden
167  /// in derived class -- by default, iterates over all rotamers in the set, and calls
168  /// derived class's residue_pair_energy method for each one against the background rotamer
169  /// Since short range rotamer pairs may not need calculation, the default method
170  /// looks at blocks of residue type pairs and only calls the residue_pair_energy method
171  /// if the rotamer pairs are within range
172  virtual
173  void
175  conformation::RotamerSetBase const & set,
176  conformation::Residue const & residue,
177  pose::Pose const & pose,
178  ScoreFunction const & sfxn,
179  EnergyMap const & weights,
181  ) const;
182 
183  /// @brief Batch computation of rotamer/background energies. Need not be overriden
184  /// in derived class -- by default, iterates over all rotamers in the set, and calls
185  /// derived class's residue_pair_energy method for each one against the background rotamer
186  /// Since short range rotamer pairs may not need calculation, the default method
187  /// looks at blocks of residue type pairs and only calls the residue_pair_energy method
188  /// if the rotamer pairs are within range
189  virtual
190  void
192  conformation::RotamerSetBase const & set,
193  conformation::Residue const & residue,
194  pose::Pose const & pose,
195  ScoreFunction const & sfxn,
196  EnergyMap const & weights,
198  ) const;
199 
200 
201  virtual
202  void
204  id::AtomID const & atom_id,
205  pose::Pose const & pose,
206  kinematics::DomainMap const & domain_map,
207  ScoreFunction const &,
208  EnergyMap const & weights,
209  Vector & F1,
210  Vector & F2
211  ) const;
212 
213 // virtual
214 // Distance
215 // atomic_interaction_cutoff() const;
216 
217  virtual
218  void indicate_required_context_graphs( utility::vector1< bool > & context_graphs_required ) const;
219 
220  virtual
221  bool
222  defines_intrares_energy( EnergyMap const & /*weights*/ ) const;
223 
224  virtual
225  void
227  conformation::Residue const & rsd,
228  pose::Pose const & pose,
229  ScoreFunction const & sfxn,
230  EnergyMap & emap
231  ) const;
232 
233  /// this is our own special function
234  Real
236  {
237  return 5.5; // MAGIC NUMBER!!
238  }
239 
240  /////////////////////////////////////////////////////////////////////////////
241  // data
242  /////////////////////////////////////////////////////////////////////////////
243 
244 private:
245 
246  // const-ref to scoring database
248 
249  ///
250  bool const exclude_DNA_DNA_;
251 virtual
252 core::Size version() const;
253 
254 };
255 
256 
257 }
258 }
259 }
260 
261 #endif // INCLUDED_core_scoring_ScoreFunction_HH