Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RNA_ChemicalShiftPotential.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/rna/chemical_shift/RNA_ChemicalShiftPotential.hh
11 /// @brief The real workhorse behind RNA_ChemicalShiftEnergy.cc
12 /// @author Parin Sripakdeevong (sripakpa@stanford.edu)
13 
14 
15 #ifndef INCLUDED_core_scoring_rna_chemical_shift_RNA_ChemicalShiftPotential_HH
16 #define INCLUDED_core_scoring_rna_chemical_shift_RNA_ChemicalShiftPotential_HH
17 
18 
19 
20 // Project headers
21 #include <core/pose/Pose.fwd.hh>
22 #include <core/types.hh>
23 #include <numeric/xyzVector.hh>
24 
25 #include <utility/pointer/ReferenceCount.hh>
26 ///////////////////////////////////
27 #include <core/chemical/AA.hh>
29 
31 
32 // Utility headers
33 
34 
35 namespace core {
36 namespace scoring {
37 namespace rna {
38 namespace chemical_shift {
39 
40 
41 /////////////////////////////////////////////////////////////////////////////
43 
44  public:
45 
46  ChemicalShiftData(core::Size const in_seq_num,
47  chemical::AA const in_res_aa,
48  std::string const in_atom_name,
49  core::Size const in_realatomdata_index,
50  core::Real const in_exp_shift,
51  std::string const in_data_line):
52  seq_num( in_seq_num ),
53  res_aa( in_res_aa ),
54  atom_name( in_atom_name ),
55  realatomdata_index( in_realatomdata_index ),
56  exp_shift( in_exp_shift ),
57  //Feb 28, 2012: Warning exp_shift this might be switch due to ambiguity of geminal atoms (H5'/H5'' and etcs) or be a duplicate.
58  //Always use get_best_exp_to_calc_chem_shift_mapping() to get best mapping to specific calc_chem_shift to get actual exp_shift!
59  data_line( in_data_line)
60  {
61  }
62 
64 
65  public:
66 
70  core::Size realatomdata_index; //For accessing realatomdata in RNA_CS_Parameters
73 
74 };
75 
76 
78 
79  public:
80 
82 
83  Size
85 
86 
87  private:
88 
89  Size
90  get_realatomdata_index(std::string const & in_atom_name, chemical::AA const res_aa) const;
91 
92  void
94 
95  bool
97 
98  bool
99  atom_has_exp_chemical_shift_data(core::conformation::Residue const & rsd, Size const atomno) const;
100 
102  get_matching_CS_data_entry(Size const seq_num, std::string const in_atom_name) const;
103 
105  string_list(std::string const string_one) const;
106 
108  string_list(std::string const string_one, std::string const string_two) const;
109 
110 
111 
112  void
113  import_exp_chemical_shift_data(std::string exp_CS_data_filename,
114  utility::vector1 < core::Size > include_res_list,
115  utility::vector1 < utility::vector1< std::string > > const & proton_entry_list);
116 
117  void
119  utility::vector1 < Real > const & calc_chem_shift_entry,
120  utility::vector1 < Real > & actual_exp_chem_shift_entry,
121  utility::vector1 < bool > & do_include_CS_data) const;
122 
123  core::Real
124  get_calc_chem_shift_value(ChemicalShiftData const & CS_data, pose::Pose const & pose) const;
125 
126  void
127  update_calc_chem_shift_list(pose::Pose const & pose, utility::vector1 < utility::vector1 < Real > > & cal_chem_shift_list) const;
128 
129  core::Real
130  get_chemical_shift_energy(utility::vector1 < utility::vector1 < Real > > const & calc_chem_shift_list) const;
131 
132  void
134  conformation::Residue const & CS_data_rsd,
135  Size const CS_data_atomno,
136  Vector & f1,
137  Vector & f2) const;
138 
139  void
141  conformation::Residue const & rc_source_rsd,
142  Size const chi1_torsion_atomnno,
143  Vector & f1,
144  Vector & f2) const;
145 
146  void
148  conformation::Residue const & ma_source_rsd,
149  Size const chi1_torsion_atomnno,
150  Vector & f1,
151  Vector & f2) const;
152 
153  void
155  conformation::Residue const & ma_source_rsd,
156  Size const ma_source_atomno,
157  Vector & f1,
158  Vector & f2) const;
159 
160 
161 
162 
163  public:
164 
165  /////////////////////////////////////////////////////////////////////////////
166  // scoring
167  /////////////////////////////////////////////////////////////////////////////
168 
169  void
170  finalize_total_energy( pose::Pose const & pose, EnergyMap & totals) const;
171 
172  /////////////////////////////////
173  void
175  id::AtomID const & atom_id,
176  pose::Pose const & pose,
177  kinematics::DomainMap const & domain_map,
178  EnergyMap const & weights,
179  Vector & F1,
180  Vector & F2 ) const;
181 
182  void
184  utility::vector1< bool > & /*context_graphs_required*/
185  ) const {}
186 
187  private:
188 
191  bool const verbose_;
196 
197 
198 };
199 
200 
201 } // chemical_shift
202 } // rna
203 } // scoring
204 } // core
205 
206 #endif // INCLUDED_core_scoring_methods_RG_Energy_RNA_HH