Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FACTSEnergy.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/facts/FACTSEnergy.hh
11 // @brief
12 // @author Massih Khorvash
13 // @author Hahnbeom Park
14 
15 #ifndef INCLUDED_core_scoring_methods_FACTSEnergy_HH
16 #define INCLUDED_core_scoring_methods_FACTSEnergy_HH
17 
18 // Unit Headers
21 
22 // Package headers
26 
28 //#include <core/pack/task/PackerTask.fwd.hh>
30 
31 // Project headers
32 #include <core/pose/Pose.fwd.hh>
33 #include <core/id/AtomID.fwd.hh>
34 //#include <core/pack/rotamer_set/RotamerSet.fwd.hh>
36 
37 // Utility headers
38 #include <utility/vector1.hh>
39 
40 namespace core {
41 namespace scoring {
42 namespace methods {
43 
45 
46 public:
48 
49 public:
50  /// for use by ScoringManager
51  FACTSEnergy( EnergyMethodOptions const & options );
52 
53  ///
54  FACTSEnergy( FACTSEnergy const & src );
55 
57  {
58  return facts_lr;
59  }
60 
61  virtual
62  bool
64  pose::Pose const & pose,
65  Size res1,
66  Size res2
67  ) const;
68 
69  /// clone
70  virtual
72  clone() const;
73 
74  ///
75  virtual
76  void
78  pose::Pose & pose,
79  utility::vector1< bool > const & residues_repacking,
81  ) const;
82 
83  ///
84  virtual
85  void
86  setup_for_scoring( pose::Pose & pose, ScoreFunction const & ) const;
87 
88  ///
89  virtual
90  void
91  setup_for_derivatives( pose::Pose & pose, ScoreFunction const & ) const;
92 
93  virtual
94  void
96  pose::Pose const & pose,
98  ) const;
99 
100  virtual
101  void
103  pose::Pose &,
104  Size resid ) const;
105 
106  /////////////////////////////////////////////////////////////////////////////
107  // scoring
108  /////////////////////////////////////////////////////////////////////////////
109 
110  virtual
111  void
113  conformation::Residue const & rsd1,
114  conformation::Residue const & rsd2,
115  pose::Pose const & pose,
116  ScoreFunction const &,
117  EnergyMap & emap
118  ) const;
119 
120 
121  virtual
122  void
124  conformation::RotamerSetBase const & set,
125  pose::Pose const & pose,
126  ScoreFunction const & sfxn,
128  ) const;
129 
130 
131 
132  virtual
133  void
135  conformation::RotamerSetBase const & set,
136  pose::Pose const & pose,
137  ScoreFunction const & sfxn,
139  ) const;
140 
141 
142  /// @brief Batch computation of rotamer pair energies. Need not be overriden in
143  /// derived class -- by default, iterates over all pairs of rotamers,
144  /// and calls derived class's residue_pair_energy method. Since short range rotamer pairs
145  /// may not need calculation, the default method looks at blocks of residue type pairs
146  /// and only calls the residue_pair_energy method if the rotamer pairs are within range
147 
148 
149  virtual
150  void
152  conformation::RotamerSetBase const & set1,
153  conformation::RotamerSetBase const & set2,
154  pose::Pose const & pose,
155  ScoreFunction const & sfxn,
156  EnergyMap const & weights,
157  ObjexxFCL::FArray2D< core::PackerEnergy > & energy_table
158  ) const;
159 
160 
161  /// @brief Batch computation of rotamer/background energies. Need not be overriden
162  /// in derived class -- by default, iterates over all rotamers in the set, and calls
163  /// derived class's residue_pair_energy method for each one against the background rotamer
164  /// Since short range rotamer pairs may not need calculation, the default method
165  /// looks at blocks of residue type pairs and only calls the residue_pair_energy method
166  /// if the rotamer pairs are within range
167 
168  virtual
169  void
171  conformation::RotamerSetBase const & set,
172  conformation::Residue const & residue,
173  pose::Pose const & pose,
174  ScoreFunction const & sfxn,
175  EnergyMap const & weights,
177  ) const;
178 
179 
180  /// @brief Batch computation of rotamer/background energies. Need not be overriden
181  /// in derived class -- by default, iterates over all rotamers in the set, and calls
182  /// derived class's residue_pair_energy method for each one against the background rotamer
183  /// Since short range rotamer pairs may not need calculation, the default method
184  /// looks at blocks of residue type pairs and only calls the residue_pair_energy method
185  /// if the rotamer pairs are within range
186 
187  virtual
188  void
190  conformation::RotamerSetBase const & set,
191  conformation::Residue const & residue,
192  pose::Pose const & pose,
193  ScoreFunction const & sfxn,
194  EnergyMap const & weights,
196  ) const;
197 
198 
199  virtual
200  void
202  id::AtomID const & atom_id,
203  pose::Pose const & pose,
204  kinematics::DomainMap const & domain_map,
205  ScoreFunction const &,
206  EnergyMap const & weights,
207  Vector & F1,
208  Vector & F2
209  ) const;
210 
211  virtual
212  void indicate_required_context_graphs( utility::vector1< bool > & context_graphs_required ) const;
213 
214  virtual
215  bool
216  defines_intrares_energy( EnergyMap const & /*weights*/ ) const;
217 
218  virtual
219  void
221  conformation::Residue const & rsd,
222  pose::Pose const & pose,
223  ScoreFunction const & sfxn,
224  EnergyMap & emap
225  ) const;
226 
227  /// this is our own special function
228  Real
230  {
231  return 5.5; // MAGIC NUMBER!!
232  }
233 
234  /////////////////////////////////////////////////////////////////////////////
235  // data
236  /////////////////////////////////////////////////////////////////////////////
237 
238 private:
239 
240  // const-ref to scoring database
242 
243  ///
244  bool const exclude_DNA_DNA_;
245 
246  virtual
247  core::Size version() const;
248 
249 };
250 
251 
252 }
253 }
254 }
255 
256 #endif