Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RNA_LowResolutionPotential.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/RNA_LowResolutionPotential.hh
11 /// @brief Statistically derived rotamer pair potential class implementation
12 /// @author Phil Bradley
13 /// @author Andrew Leaver-Fay
14 
15 #ifndef INCLUDED_core_scoring_rna_RNA_LowResolutionPotential_hh
16 #define INCLUDED_core_scoring_rna_RNA_LowResolutionPotential_hh
17 
18 #include <core/types.hh>
19 
20 // Unit headers
23 
24 // Package headers
26 #include <core/chemical/AA.hh>
29 
30 // Project headers
31 #include <core/id/AtomID.fwd.hh>
32 #include <core/pose/Pose.fwd.hh>
34 
35 // Utility headers
36 #include <utility/vector1.hh>
37 #include <utility/pointer/ReferenceCount.hh>
38 
39 #include <ObjexxFCL/FArray1D.hh>
40 #include <ObjexxFCL/FArray2D.hh>
41 #include <ObjexxFCL/FArray3D.hh>
42 #include <ObjexxFCL/FArray4D.hh>
43 #include <ObjexxFCL/FArray5D.hh>
44 
45 
46 
47 
48 
49 namespace core {
50 namespace scoring {
51 namespace rna {
52 
53 ////////////////////////////////////////////////////////////////////////////////////////////////////
54 
56 
57 public:
59 
60  ///
61  void
63  pose::Pose & pose
64  ) const;
65 
66  void
68  pose::Pose & pose
69  ) const;
70 
71  void
73  pose::Pose & pose
74  ) const;
75 
76  void
77  finalize( pose::Pose & pose ) const;
78 
79  Real
81  conformation::Residue const & rsd1,
82  conformation::Residue const & rsd2,
83  Vector const & centroid1,
84  Vector const & centroid2,
85  core::kinematics::Stub const & stub1,
86  core::kinematics::Stub const & stub2) const;
87 
88  Real
90  conformation::Residue const & rsd1,
91  conformation::Residue const & rsd2) const;
92 
93  Real
95  conformation::Residue const & rsd1,
96  conformation::Residue const & rsd2) const;
97 
98  // void initialize_atom_numbers_for_backbone_score_calculations( pose::Pose & pose ) const; // Deprecated.Commenting out to make Python bindings compile.
99 
100  Real
102  Distance const x, // used in fading
103  Distance const y, // used in fading
104  Distance const z, // used in fading
105  Real & deriv_x = dummy_deriv,
106  Real & deriv_y = dummy_deriv,
107  Real & deriv_z = dummy_deriv ) const;
108 
109  void
111  id::AtomID const & atom_id,
112  pose::Pose const & pose,
113  scoring::EnergyMap const & weights,
114  Vector & F1,
115  Vector & F2 ) const;
116 
117  void
119  id::AtomID const & atom_id,
120  pose::Pose const & pose,
121  Vector & F1,
122  Vector & F2 ) const;
123 
124  void
126  id::AtomID const & atom_id,
127  pose::Pose const & pose,
128  Vector & F1,
129  Vector & F2 ) const;
130 
131  void
133  id::AtomID const & atom_id,
134  pose::Pose const & pose,
135  Vector & F1,
136  Vector & F2 ) const;
137 
138  bool
140  pose::Pose & pose,
141  Size const & i,
142  int const & sign ) const;
143 
144  bool
146  pose::Pose & pose,
147  Size const & i,
148  Size const & j ) const;
149 
150  void
152  rna::RNA_RawBaseBaseInfo & rna_raw_base_base_info,
153  conformation::Residue const & rsd1,
154  conformation::Residue const & rsd2,
155  pose::Pose const & pose,
156  Vector const & centroid1,
157  Vector const & centroid2,
158  core::kinematics::Stub const & stub1,
159  core::kinematics::Stub const & stub2) const;
160 
161  void
163 
164 private:
165 
166  void
168  rna::RNA_RawBaseBaseInfo & rna_raw_base_base_info,
169  conformation::Residue const & res_i,
170  conformation::Residue const & res_j,
171  pose::Pose const & pose,
172  Vector const & centroid1,
173  Vector const & centroid2,
174  core::kinematics::Stub const & stub1,
175  core::kinematics::Stub const & stub2) const;
176 
177  Real
179  conformation::Residue const & rsd1,
180  conformation::Residue const & rsd2,
181  Vector const & centroid1,
182  core::kinematics::Stub const & stub1) const;
183 
184  Size
186  ObjexxFCL::FArray2D< Size > const & atom_number_for_backbone_score_calculations,
187  Size const & i,
188  Size const & atom_num_i ) const;
189 
190 
191  Size
193  Size const & atom_num_i ) const;
194 
195 private:
196 
198  void initialize_rna_axis();
199  void initialize_rna_stagger();
207 
208  void
210 
211  bool
213 
214 
216  Real const cos_theta,
217  Real & deriv = dummy_deriv) const;
218 
219  Real get_rna_stagger_score( Distance const height, Real & deriv = dummy_deriv ) const;
220 
222  Distance const x,
223  Distance const y,
224  Distance const z, // z is used for fading.
225  Real const cos_theta,
226  conformation::Residue const & res_i,
227  conformation::Residue const & res_j,
228  bool const deriv_check = true,
229  Real & deriv_x = dummy_deriv,
230  Real & deriv_y = dummy_deriv,
231  Real & deriv_z = dummy_deriv ) const;
232 
233  Real
235  Distance const & r,
236  Size const & atom_num_j_bin,
237  Real & deriv = dummy_deriv ) const;
238 
239  Real
241  Distance const & r,
242  Size const & atom_num_j_bin,
243  Real & deriv = dummy_deriv ) const;
244 
245 
246  Real
248  conformation::Residue const & rsd1,
249  conformation::Residue const & rsd2
250  ) const;
251 
252  Real
254  conformation::Residue const & rsd1,
255  conformation::Residue const & rsd2 ) const;
256 
257  Real
259  Distance const x,
260  Distance const y,
261  Distance const z,
262  conformation::Residue const & res_i,
263  Size const & atom_num_j_bin,
264  bool const deriv_check = false,
265  Real & deriv_x = dummy_deriv,
266  Real & deriv_y = dummy_deriv,
267  Real & deriv_z = dummy_deriv ) const;
268 
269  Real
271  Distance const y,
272  conformation::Residue const & res_i,
273  Size const & atom_num_j_bin ) const;
274 
275  bool
277  conformation::Residue const & rsd1,
278  Vector const & heavy_atom_j,
279  Real & atom_cutoff_weight) const;
280 
281  void
283  std::string const & hoogsteen_cutoff_atom,
284  std::string const & sugar_cutoff_atom
285  );
286 
287  void
289  conformation::Residue const & res_i,
290  Real & zeta_hoogsteen_cutoff,
291  Real & zeta_sugar_cutoff
292  ) const;
293 
294 private: // data
295 
296  // Knowledge-based statistics -- read in from files?
297  ObjexxFCL::FArray5D< Real > rna_basepair_xy_;
298  ObjexxFCL::FArray1D< Real > rna_stagger_;
299  ObjexxFCL::FArray1D< Real > rna_axis_;
300 
303 
304  ObjexxFCL::FArray4D< Real > rna_base_backbone_xy_;
305 
306  ObjexxFCL::FArray1D< Real > rna_backbone_backbone_weight_;
307  ObjexxFCL::FArray1D< Real > rna_backbone_backbone_potential_;
308 
309  ObjexxFCL::FArray1D< Real > rna_repulsive_weight_;
310 
311  ObjexxFCL::FArray1D< Real > zeta_hoogsteen_cutoff_precise_;
312  ObjexxFCL::FArray1D< Real > zeta_sugar_cutoff_precise_;
313 
314  //Some parameters for scoring.
322 
329 
332 
336 
340 
348 
352 
357 
361 
364 
365  bool const interpolate_;
366  bool const fade_;
367 
368  bool const rna_verbose_;
369 
371 
372 public:
373  // This must be public for PyRosetta. It's quite silly.
375 
376 };
377 
378 } // ns rna
379 } // ns scoring
380 } // ns core
381 
382 #endif