Rosetta 3.5
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
core
scoring
rna
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
21
#include <
core/scoring/rna/RNA_LowResolutionPotential.fwd.hh
>
22
#include <
core/scoring/rna/RNA_RawBaseBaseInfo.hh
>
23
24
// Package headers
25
#include <
core/conformation/Residue.fwd.hh
>
26
#include <
core/chemical/AA.hh
>
27
#include <
core/chemical/ResidueTypeSet.fwd.hh
>
28
#include <
core/scoring/EnergyMap.fwd.hh
>
29
30
// Project headers
31
#include <
core/id/AtomID.fwd.hh
>
32
#include <
core/pose/Pose.fwd.hh
>
33
#include <
core/kinematics/Stub.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
55
class
RNA_LowResolutionPotential
:
public
utility::pointer::ReferenceCount
{
56
57
public
:
58
RNA_LowResolutionPotential
();
59
60
///
61
void
62
update_rna_centroid_info
(
63
pose::Pose
& pose
64
)
const
;
65
66
void
67
update_rna_base_base_interactions
(
68
pose::Pose
& pose
69
)
const
;
70
71
void
72
update_rna_base_pair_list
(
73
pose::Pose
& pose
74
)
const
;
75
76
void
77
finalize
(
pose::Pose
& pose )
const
;
78
79
Real
80
rna_base_backbone_pair_energy
(
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
89
rna_backbone_backbone_pair_energy
(
90
conformation::Residue
const
& rsd1,
91
conformation::Residue
const
& rsd2)
const
;
92
93
Real
94
rna_repulsive_pair_energy
(
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
101
get_rna_stack_score
(
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
110
eval_atom_derivative_base_base
(
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
118
eval_atom_derivative_rna_base_backbone
(
119
id::AtomID
const
& atom_id,
120
pose::Pose
const
& pose,
121
Vector
& F1,
122
Vector
& F2 )
const
;
123
124
void
125
eval_atom_derivative_rna_backbone_backbone
(
126
id::AtomID
const
& atom_id,
127
pose::Pose
const
& pose,
128
Vector
& F1,
129
Vector
& F2 )
const
;
130
131
void
132
eval_atom_derivative_rna_repulsive
(
133
id::AtomID
const
& atom_id,
134
pose::Pose
const
& pose,
135
Vector
& F1,
136
Vector
& F2 )
const
;
137
138
bool
139
check_clear_for_stacking
(
140
pose::Pose
& pose,
141
Size
const
& i,
142
int
const
& sign )
const
;
143
144
bool
145
check_forming_base_pair
(
146
pose::Pose
& pose,
147
Size
const
& i,
148
Size
const
& j )
const
;
149
150
void
151
eval_rna_base_pair_energy
(
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
162
more_precise_base_pair_classification
(
bool
const
& value ){
more_precise_base_pair_classification_
= value; }
163
164
private
:
165
166
void
167
eval_rna_base_pair_energy_one_way
(
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
178
rna_base_backbone_pair_energy_one_way
(
179
conformation::Residue
const
& rsd1,
180
conformation::Residue
const
& rsd2,
181
Vector
const
& centroid1,
182
core::kinematics::Stub
const
& stub1)
const
;
183
184
Size
185
find_backbone_oxygen_atom
(
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
192
find_backbone_oxygen_atom
(
193
Size
const
& atom_num_i )
const
;
194
195
private
:
196
197
void
initialize_rna_basepair_xy
();
198
void
initialize_rna_axis
();
199
void
initialize_rna_stagger
();
200
void
initialize_RNA_backbone_oxygen_atoms
();
201
void
initialize_atom_numbers_for_backbone_score_calculations
();
202
void
initialize_rna_base_backbone_xy
();
203
void
initialize_rna_backbone_backbone_weights
();
204
void
initialize_rna_backbone_backbone
();
205
void
initialize_rna_repulsive_weights
();
206
void
initialize_more_precise_base_pair_cutoffs
();
207
208
void
209
fill_atom_numbers_for_backbone_oxygens
(
core::chemical::ResidueTypeSetCAP
& rsd_set,
core::chemical::AA
const
& aa );
210
211
bool
212
check_atom_numbers_for_backbone_oxygens
(
core::chemical::ResidueTypeSetCAP
& rsd_set,
core::chemical::AA
const
& aa )
const
;
213
214
215
Real
get_rna_axis_score
(
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
221
Real
get_rna_basepair_xy
(
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
234
get_rna_backbone_backbone_score
(
235
Distance
const
& r,
236
Size
const
& atom_num_j_bin,
237
Real
& deriv =
dummy_deriv
)
const
;
238
239
Real
240
get_rna_repulsive_score
(
241
Distance
const
& r,
242
Size
const
& atom_num_j_bin,
243
Real
& deriv =
dummy_deriv
)
const
;
244
245
246
Real
247
rna_backbone_backbone_pair_energy_one_way
(
248
conformation::Residue
const
& rsd1,
249
conformation::Residue
const
& rsd2
250
)
const
;
251
252
Real
253
rna_repulsive_pair_energy_one_way
(
254
conformation::Residue
const
& rsd1,
255
conformation::Residue
const
& rsd2 )
const
;
256
257
Real
258
get_rna_base_backbone_xy
(
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
270
get_rna_backbone_backbone_xy
(
Distance
const
x,
271
Distance
const
y,
272
conformation::Residue
const
& res_i,
273
Size
const
& atom_num_j_bin )
const
;
274
275
bool
276
check_for_base_neighbor
(
277
conformation::Residue
const
& rsd1,
278
Vector
const
& heavy_atom_j,
279
Real
& atom_cutoff_weight)
const
;
280
281
void
282
setup_precise_zeta_cutoffs
(
chemical::AA
const
&
na_rad
,
283
std::string
const
& hoogsteen_cutoff_atom,
284
std::string
const
& sugar_cutoff_atom
285
);
286
287
void
288
get_zeta_cutoff
(
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
301
utility::vector1< std::string >
RNA_backbone_oxygen_atoms_
;
302
utility::vector1< Size >
atom_numbers_for_backbone_score_calculations_
;
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.
315
Distance
const
rna_basepair_radius_cutoff_
;
316
Distance
const
rna_basepair_stagger_cutoff_
;
317
Real
const
rna_basepair_radius_cutoff2_
;
318
Distance
const
basepair_xy_bin_width_
;
319
Size
const
basepair_xy_num_bins_
;
320
Size
const
basepair_xy_table_size_
;
321
Distance
const
basepair_xy_z_fade_zone_
;
322
323
Distance
const
base_stack_min_height_
;
324
Distance
const
base_stack_max_height_
;
325
Distance
const
base_stack_radius_
;
326
Real
const
base_stack_radius2_
;
327
Distance
const
base_stack_z_fade_zone_
;
328
Distance
const
base_stack_rho_fade_zone_
;
329
330
Real
const
axis_bin_width_
;
331
Size
const
axis_num_bins_
;
332
333
Size
const
stagger_num_bins_
;
334
Distance
const
stagger_bin_width_
;
335
Distance
const
stagger_distance_cutoff_
;
336
337
Distance
const
base_backbone_bin_width_
;
338
Size
const
base_backbone_num_bins_
;
339
Size
const
base_backbone_table_size_
;
340
341
Distance
const
base_backbone_distance_cutoff_
;
342
Distance
const
base_backbone_z_cutoff_
;
343
Distance
const
base_backbone_rho_cutoff_
;
344
Distance
const
base_backbone_atom_dist_cutoff_
;
345
Distance
const
base_backbone_z_fade_zone_
;
346
Distance
const
base_backbone_rho_fade_zone_
;
347
bool
const
base_backbone_check_atom_neighbor_
;
348
349
Real
const
backbone_backbone_bin_width_
;
350
Real
const
backbone_backbone_distance_cutoff_
;
351
Size
const
backbone_backbone_num_bins_
;
352
353
Real
const
rna_repulsive_max_penalty_
;
354
Real
const
rna_repulsive_screen_scale_
;
355
Real
const
rna_repulsive_distance_cutoff_
;
356
Real
const
rna_repulse_all_
;
357
358
Size
const
num_RNA_base_pair_orientations_
;
359
Size
const
num_RNA_backbone_oxygen_atoms_
;
360
Size
const
num_RNA_res_types_
;
361
362
Size
o2star_index_within_special_backbone_atoms_
;
363
Size
o2p_index_within_special_backbone_atoms_
;
364
365
bool
const
interpolate_
;
366
bool
const
fade_
;
367
368
bool
const
rna_verbose_
;
369
370
bool
more_precise_base_pair_classification_
;
371
372
public
:
373
// This must be public for PyRosetta. It's quite silly.
374
static
Real
dummy_deriv
;
375
376
};
377
378
}
// ns rna
379
}
// ns scoring
380
}
// ns core
381
382
#endif
Generated on Sat Jun 1 2013 11:39:59 for Rosetta 3.5 by
1.8.4