Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RNA_FilteredBaseBaseInfo.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_FilteredBaseBasePotential.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_FilteredBaseBaseInfo_hh
16 #define INCLUDED_core_scoring_rna_RNA_FilteredBaseBaseInfo_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>
28 
29 #include <basic/datacache/CacheableData.hh>
30 
31 // Utility headers
32 // AUTO-REMOVED #include <utility/vector1.hh>
33 
34 // ObjexxFCL
35 #include <ObjexxFCL/FArray2D.hh>
36 
37 #include <utility/vector1.hh>
38 
39 
40 // C++
41 
42 namespace core {
43 namespace scoring {
44 namespace rna {
45 
46 ////////////////////////////////////////////////////////////////////////////////////////////////////
47 /// @brief Keep track of RNA centroid information inside the pose.
48 //// Rhiju move this to its own namespace!
49 class RNA_FilteredBaseBaseInfo : public basic::datacache::CacheableData {
50 
51 public:
52 
54 
56 
57  basic::datacache::CacheableDataOP
58  clone() const
59  {
60  return new RNA_FilteredBaseBaseInfo( *this );
61  }
62 
63  Size
64  size() const {
65  return filtered_base_pair_array_.size1();
66  }
67 
68  void
69  resize( Size const & total_residue );
70 
71  // Undefinded, comented out to make python bindings complile
72  //void
73  //initialize( pose::Pose const & pose );
74 
75  bool
76  calculated() const
77  {
78  return calculated_;
79  }
80 
81  bool &
83  {
84  return calculated_;
85  }
86 
87  void
88  set_calculated( bool const & setting)
89  {
90  calculated_ = setting;
91  }
92 
93  void
94  carry_out_filtering( RNA_RawBaseBaseInfo const & raw_base_base_info );
95 
96  ObjexxFCL::FArray2D< Real > & filtered_base_pair_array() { return filtered_base_pair_array_; }
97  ObjexxFCL::FArray2D< Real > & filtered_base_axis_array() { return filtered_base_axis_array_; }
98  ObjexxFCL::FArray2D< Real > & filtered_base_stagger_array() { return filtered_base_stagger_array_; }
99  ObjexxFCL::FArray2D< Real > & filtered_base_stack_array() { return filtered_base_stack_array_; }
100  ObjexxFCL::FArray2D< Real > & filtered_base_stack_axis_array() { return filtered_base_stack_axis_array_; }
101 
102  ObjexxFCL::FArray2D< Real > const & filtered_base_pair_array() const { return filtered_base_pair_array_; }
103  ObjexxFCL::FArray2D< Real > const & filtered_base_axis_array() const { return filtered_base_axis_array_; }
104  ObjexxFCL::FArray2D< Real > const & filtered_base_stagger_array() const { return filtered_base_stagger_array_; }
105  ObjexxFCL::FArray2D< Real > const & filtered_base_stack_array() const { return filtered_base_stack_array_; }
106  ObjexxFCL::FArray2D< Real > const & filtered_base_stack_axis_array() const { return filtered_base_stack_axis_array_; }
107 
113 
114  bool const & scale_axis_stagger() const { return scale_axis_stagger_; }
117 
120 
121  Real get_data_score( RNA_DataInfo const & rna_data_info ) const;
122 
123 private:
124 
125  void
126  figure_out_rna_base_pairs_to_score( RNA_RawBaseBaseInfo const & raw_base_base_info );
127 
128  void
129  figure_out_rna_base_stacks_to_score( RNA_RawBaseBaseInfo const & raw_base_base_info );
130 
131  // data
132 
133  // For now, direct copy of what was in rosetta++.
134  //The third dimension here refers to the edge of the filtered_base that is pairing.
135  // Note that these are "scratch" arrays, not filtered to avoid,
136  // e.g. one filtered_base edge forming multiple filtered_base pairs.
137  ObjexxFCL::FArray2D< Real > filtered_base_pair_array_;
138  ObjexxFCL::FArray2D< Real > filtered_base_axis_array_;
139  ObjexxFCL::FArray2D< Real > filtered_base_stagger_array_;
140  ObjexxFCL::FArray2D< Real > filtered_base_stack_array_;
141  ObjexxFCL::FArray2D< Real > filtered_base_stack_axis_array_;
142 
145 
151 
156 
158 
160 };
161 
162 }
163 }
164 }
165 
166 #endif