Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DNA_BasePotential.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
11 /// @brief
12 /// @author
13 
14 #ifndef INCLUDED_core_scoring_dna_DNA_BasePotential_hh
15 #define INCLUDED_core_scoring_dna_DNA_BasePotential_hh
16 
17 #include <core/types.hh>
19 // AUTO-REMOVED #include <core/kinematics/Stub.fwd.hh>
20 // AUTO-REMOVED #include <core/pose/Pose.fwd.hh>
21 
22 #include <utility/vector1.fwd.hh>
23 #include <utility/pointer/ReferenceCount.hh>
24 // AUTO-REMOVED #include <numeric/xyzVector.hh>
25 #include <numeric/xyzMatrix.fwd.hh>
26 
27 #include <ObjexxFCL/FArray3D.hh>
28 #include <ObjexxFCL/FArray4D.hh>
29 
30 namespace core {
31 namespace scoring {
32 namespace dna {
33 
34 
36 public:
37  ///@brief Automatically generated virtual destructor for class deriving directly from ReferenceCount
38  virtual ~DNA_BasePotential();
42  typedef ObjexxFCL::FArray3D< Real > FArray3D_Real;
43  typedef ObjexxFCL::FArray4D< Real > FArray4D_Real;
44 
45 public:
46  /// ctor
48 
49  ///
50  Real
52  Residue const & rsd1,
53  Residue const & rsd2
54  ) const;
55 
56  ///
57  Real
59  Residue const & rsd1,
60  Residue const & rsd2
61  ) const;
62 
63  ///
64  void
66  Residue const & rsd1,
67  Residue const & rsd2,
68  Vector & F1,
69  Vector & F2,
70  Real const external_sign_factor // should probably be +1 or -1
71  ) const;
72 
73  ///
74  void
76  Residue const & rsd1,
77  Residue const & rsd2,
78  Vector & F1,
79  Vector & F2,
80  Real const sign_factor // need to think about this, see logic in pose_dna
81  ) const;
82 
83  void
85  Residue const & rsd1,
86  Residue const & rsd2,
87  utility::vector1< Real > & z_scores
88  ) const;
89 
90  void
92  Residue const & rsd1,
93  Residue const & rsd2,
94  utility::vector1< Real > & z_scores
95  ) const;
96 
97 
98 private:
99 
101  BP_type = 1,
103  };
104 
105 
106  inline
107  Real
108  mean( InteractionType const & t, std::string const & bases, int const p ) const
109  {
110  int i1(0),i2(0);
111  get_array_indices( t, bases, i1, i2 );
112  return mean_( p, i1, i2 );
113  }
114 
115  inline
116  Real
117  stddev( InteractionType const & t, std::string const & bases, int const p ) const
118  {
119  int i1(0),i2(0);
120  get_array_indices( t, bases, i1, i2 );
121  return stddev_( p, i1, i2 );
122  }
123 
124  inline
125  Real
126  stiffness( InteractionType const & t, std::string const & bases, int const p1, int const p2 ) const
127  {
128  int i1(0),i2(0);
129  get_array_indices( t, bases, i1, i2 );
130  return stiffness_( p1, p2, i1, i2 );
131  }
132 
133  /// "A","C","T","G"
134  inline
136  base_string( Residue const & rsd ) const;
137 
138 private:
139 
140  /// i1 = 1,2
141  /// i2 = 1,16
142  void
143  get_array_indices( InteractionType const & t, std::string const & bases, int & i1, int & i2 ) const;
144 
145  ///
146  void
148 
149  ///
150  void
152  InteractionType const & type,
153  std::string const & bases,
154  int const index,
155  Real mean,
156  Real stddev
157  );
158 
159  ///
160  void
162  InteractionType const & type,
163  std::string const & bases,
164  int const index1,
165  int const index2,
166  Real const val
167  );
168 
169  ///
170  Real
171  base_score(
172  InteractionType const & type,
173  std::string const & bases,
174  utility::vector1< Real > const & params
175  ) const;
176 
177 private:
178 
179  FArray3D_Real mean_; //( 6, 2, 16 );
180  FArray3D_Real stddev_; //( 6, 2, 16 );
181  FArray4D_Real stiffness_; //( 6, 6, 2, 16 );
182 
183 };
184 
185 
186 
187 } // namespace dna
188 } // scoring
189 } // core
190 
191 #endif