Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RNA_RawBaseBaseInfo.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_RawBaseBasePotential.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_RawBaseBaseInfo_hh
16 #define INCLUDED_core_scoring_rna_RNA_RawBaseBaseInfo_hh
17 
18 #include <core/types.hh>
19 
20 // Package headers
21 //#include <core/conformation/Residue.fwd.hh>
22 
23 // Project headers
24 // AUTO-REMOVED #include <core/pose/Pose.fwd.hh>
25 #include <basic/datacache/CacheableData.hh>
26 
27 // Utility headers
28 // AUTO-REMOVED #include <utility/vector1.hh>
29 
30 // ObjexxFCL headers
31 #include <ObjexxFCL/FArray2D.hh>
32 #include <ObjexxFCL/FArray3D.hh>
33 
34 // C++
35 
36 namespace core {
37 namespace scoring {
38 namespace rna {
39 
40 ////////////////////////////////////////////////////////////////////////////////////////////////////
41 /// @brief Keep track of RNA centroid information inside the pose.
42 //// Rhiju move this to its own namespace!
43 //// Also, should probably use EnergyGraph instead of FArrays -- much smaller memory footprint (!)
44 ////
45 class RNA_RawBaseBaseInfo : public basic::datacache::CacheableData {
46 
47 public:
48 
50 
52 
53  basic::datacache::CacheableDataOP
54  clone() const
55  {
56  return new RNA_RawBaseBaseInfo( *this );
57  }
58 
59  Size
60  size() const {
61  return base_pair_array_.size1();
62  }
63 
64  void
65  resize( Size const & total_residue );
66 
67  void
68  zero();
69 
70  void
71  copy_values( scoring::rna::RNA_RawBaseBaseInfo const & src, Size const & i, Size const & j );
72 
73  // Undefinded, comented out to make python bindings complile
74  //void
75  //initialize( pose::Pose const & pose );
76 
77  bool
78  calculated() const
79  {
80  return calculated_;
81  }
82 
83  bool &
85  {
86  return calculated_;
87  }
88 
89  void
90  set_calculated( bool const & setting)
91  {
92  calculated_ = setting;
93  }
94 
95  ObjexxFCL::FArray3D< Real > & base_pair_array() { return base_pair_array_; }
96  ObjexxFCL::FArray3D< Real > & base_axis_array() { return base_axis_array_; }
97  ObjexxFCL::FArray3D< Real > & base_stagger_array() { return base_stagger_array_; }
98  ObjexxFCL::FArray2D< Real > & base_stack_array() { return base_stack_array_; }
99  ObjexxFCL::FArray2D< Real > & base_stack_axis_array() { return base_stack_axis_array_; }
100  ObjexxFCL::FArray2D< Real > & base_geometry_orientation_array() { return base_geometry_orientation_array_; }
101  ObjexxFCL::FArray2D< Real > & base_geometry_height_array() { return base_geometry_height_array_; }
102 
103  ObjexxFCL::FArray3D< Real > const & base_pair_array() const { return base_pair_array_; }
104  ObjexxFCL::FArray3D< Real > const & base_axis_array() const { return base_axis_array_; }
105  ObjexxFCL::FArray3D< Real > const & base_stagger_array() const { return base_stagger_array_; }
106  ObjexxFCL::FArray2D< Real > const & base_stack_array() const { return base_stack_array_; }
107  ObjexxFCL::FArray2D< Real > const & base_stack_axis_array() const { return base_stack_axis_array_; }
108  ObjexxFCL::FArray2D< Real > const & base_geometry_orientation_array() const { return base_geometry_orientation_array_; }
109  ObjexxFCL::FArray2D< Real > const & base_geometry_height_array() const { return base_geometry_height_array_; }
110 
111 
112 private:
113 
114  // For now, direct copy of what was in rosetta++.
115  //The third dimension here refers to the edge of the base that is pairing.
116  // Note that these are "scratch" arrays, not filtered to avoid,
117  // e.g. one base edge forming multiple base pairs.
118  ObjexxFCL::FArray3D< Real > base_pair_array_;
119  ObjexxFCL::FArray3D< Real > base_axis_array_;
120  ObjexxFCL::FArray3D< Real > base_stagger_array_;
121  ObjexxFCL::FArray2D< Real > base_stack_array_;
122  ObjexxFCL::FArray2D< Real > base_stack_axis_array_;
123 
124  ObjexxFCL::FArray2D< Real > base_geometry_orientation_array_;
125  ObjexxFCL::FArray2D< Real > base_geometry_height_array_;
126 
128 
129 };
130 
131 }
132 }
133 }
134 
135 #endif