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
protocols
match
downstream
GeometrySecMatchRPE.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
// :noTabs=false:tabSize=4:indentSize=4:
4
//
5
// (c) Copyright Rosetta Commons Member Institutions.
6
// (c) This file is part of the Rosetta software suite and is made available under license.
7
// (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
8
// (c) For more information, see http://www.rosettacommons.org. Questions about this can be
9
// (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
10
11
/// @file protocols/match/downstream/GeometrySecMatchRPE.hh
12
/// @brief
13
/// @author Florian Richter, floric@u.washington.edu, june 09
14
15
16
#ifndef INCLUDED_protocols_match_downstream_GeometrySecMatchRPE_hh
17
#define INCLUDED_protocols_match_downstream_GeometrySecMatchRPE_hh
18
19
// Unit headers
20
#include <
protocols/match/downstream/GeometrySecMatchRPE.fwd.hh
>
21
22
// Package headers
23
#include <
protocols/match/downstream/SecMatchResiduePairEvaluator.hh
>
24
#include <
protocols/toolbox/match_enzdes_util/MatchConstraintFileInfo.fwd.hh
>
25
26
// Project headers
27
#include <
core/types.hh
>
28
#include <
core/conformation/Residue.fwd.hh
>
29
30
// Utility headers
31
#include <utility/pointer/ReferenceCount.hh>
32
33
// C++ headers
34
// AUTO-REMOVED #include <list>
35
// AUTO-REMOVED #include <string>
36
37
#include <
core/chemical/ResidueType.fwd.hh
>
38
#include <utility/vector1_bool.hh>
39
40
41
namespace
protocols {
42
namespace
match
{
43
namespace
downstream {
44
45
46
47
/// @brief helper class for GeometrySec
48
/// abstract base class for distance, angle, and dihedral derived classes
49
class
AtomGeometrySecMatchRPE
:
public
SecMatchResiduePairEvaluator
50
{
51
52
public
:
53
54
typedef
std::pair< core::Size, core::Size >
SizePair
;
55
56
typedef
core::Real
Real
;
57
58
AtomGeometrySecMatchRPE
(
protocols::toolbox::match_enzdes_util::GeomSampleInfo
const
& gsi );
59
60
~AtomGeometrySecMatchRPE
();
61
62
virtual
63
bool
64
evaluate_residues
(
65
core::conformation::Residue
const
& candidate_res,
66
core::conformation::Residue
const
& target_res
67
)
const
= 0;
68
69
virtual
70
bool
71
require_all_target_residue_atom_coordinates
()
const
;
72
73
virtual
74
bool
75
require_target_atom_coordinate
(
Size
target_atom_id )
const
;
76
77
78
/// @brief determines if the passed in value is between lowval and highval
79
bool
80
check_value
(
81
core::Real
value
82
)
const
;
83
84
utility::vector1< SizePair >
const
&
85
at_inds
()
const
{
86
return
at_inds_
; }
87
88
void
89
add_at_ind
(
90
core::Size
which_cst_res,
91
core::Size
atom_ind_in_res
92
);
93
94
core::Real
95
lowval
()
const
{
96
return
lowval_
;
97
}
98
99
core::Real
100
highval
()
const
{
101
return
highval_
;
102
}
103
104
virtual
105
std::string
106
print
(
107
core::chemical::ResidueTypeCOP
candidate_restype,
108
core::chemical::ResidueTypeCOP
target_restype
109
)
const
= 0;
110
111
112
protected
:
113
114
void
115
clear_at_inds
();
116
117
void
118
set_lowval
(
core::Real
lowval
);
119
120
void
121
set_highval
(
core::Real
highval
);
122
123
private
:
124
125
Real
lowval_
;
126
Real
highval_
;
127
utility::vector1< SizePair >
at_inds_
;
128
129
};
130
131
/// @brief RPE to figure out if two atoms are within a given distance
132
/// atoms need to be set through the parent class add_at_ind function
133
class
AtomDistanceSecMatchRPE
:
public
AtomGeometrySecMatchRPE
134
{
135
136
public
:
137
138
/// @brief the constructor for this rpe sets the lowval and highval to
139
/// the squared values of the initial values, that should make distance
140
/// evaluation faster
141
AtomDistanceSecMatchRPE
(
protocols::toolbox::match_enzdes_util::GeomSampleInfo
const
& gsi );
142
143
virtual
144
bool
145
evaluate_residues
(
146
core::conformation::Residue
const
& candidate_res,
147
core::conformation::Residue
const
& target_res
148
)
const
;
149
150
virtual
151
bool
152
require_candidate_residue_atoms_to_lie_near_target_atom
(
Size
target_atom_id )
const
;
153
154
virtual
155
utility::vector1< Size >
156
candidate_res_atoms_reqd_near_target_atom
(
157
Size
target_atom_id
158
)
const
;
159
160
virtual
161
Real
162
max_separation_dist_to_target_atom
(
Size
target_atom_id )
const
;
163
164
virtual
165
std::string
166
print
(
167
core::chemical::ResidueTypeCOP
candidate_restype,
168
core::chemical::ResidueTypeCOP
target_restype
169
)
const
;
170
171
};
172
173
/// @brief RPE to figure out if three atoms are within a given angle
174
/// atoms need to be set through the parent class add_at_ind function
175
class
AtomAngleSecMatchRPE
:
public
AtomGeometrySecMatchRPE
176
{
177
178
public
:
179
180
AtomAngleSecMatchRPE
(
protocols::toolbox::match_enzdes_util::GeomSampleInfo
const
& gsi );
181
182
virtual
183
bool
184
evaluate_residues
(
185
core::conformation::Residue
const
& candidate_res,
186
core::conformation::Residue
const
& target_res
187
)
const
;
188
189
virtual
190
std::string
191
print
(
192
core::chemical::ResidueTypeCOP
candidate_restype,
193
core::chemical::ResidueTypeCOP
target_restype
194
)
const
;
195
196
};
197
198
199
/// @brief RPE to figure out if four atoms are within a given dihedral angle
200
/// atoms need to be set through the parent class add_at_ind function
201
/// also checks whether a dihedral is periodic, i.e. multiple minima
202
class
AtomDihedralSecMatchRPE
:
public
AtomGeometrySecMatchRPE
203
{
204
205
public
:
206
207
AtomDihedralSecMatchRPE
(
protocols::toolbox::match_enzdes_util::GeomSampleInfo
const
& gsi );
208
209
virtual
210
bool
211
evaluate_residues
(
212
core::conformation::Residue
const
& candidate_res,
213
core::conformation::Residue
const
& target_res
214
)
const
;
215
216
virtual
217
std::string
218
print
(
219
core::chemical::ResidueTypeCOP
candidate_restype,
220
core::chemical::ResidueTypeCOP
target_restype
221
)
const
;
222
223
private
:
224
225
bool
check_periodicity_
;
226
227
Real
periodicity_
;
228
Real
offset_
;
229
};
230
231
232
/// @brief holds a list of AtomGeometrySecMatchRPEs, that get evaluated in sequence
233
/// when an instance of this class is asked to evaluate two residues.
234
class
GeometrySecMatchRPE
:
public
SecMatchResiduePairEvaluator
235
{
236
237
public
:
238
239
/// @brief convenience constructor from mcfi
240
/// the downstream_inds and upstream_inds vector must
241
/// contain atoms D1(U1), D2(U2), and D3(U3), respectively,
242
/// in that order
243
GeometrySecMatchRPE
(
244
protocols::toolbox::match_enzdes_util::MatchConstraintFileInfo
const
& mcfi,
245
utility::vector1< core::Size >
const
& downstream_inds,
246
utility::vector1< core::Size >
const
& upstream_inds
247
);
248
249
/// @brief empty constructor
250
GeometrySecMatchRPE
(){}
251
252
/// @brief performs a logical AND for all of the AtomGeometry evaluators.
253
virtual
254
bool
255
evaluate_residues
(
256
core::conformation::Residue
const
& candidate_res,
257
core::conformation::Residue
const
& target_res
258
)
const
;
259
260
void
261
add_atomgeom_evaluator
(
262
AtomGeometrySecMatchRPECOP
evaluator
263
);
264
265
virtual
266
bool
267
require_all_target_residue_atom_coordinates
()
const
;
268
269
virtual
270
bool
271
require_target_atom_coordinate
(
Size
target_atom_id )
const
;
272
273
virtual
274
bool
275
require_candidate_residue_atoms_to_lie_near_target_atom
(
Size
target_atom_id )
const
;
276
277
virtual
278
utility::vector1< Size >
279
candidate_res_atoms_reqd_near_target_atom
(
280
Size
target_atom_id
281
)
const
;
282
283
virtual
284
Real
285
max_separation_dist_to_target_atom
(
Size
target_atom_id )
const
;
286
287
utility::vector1< AtomGeometrySecMatchRPECOP >
const
&
288
atom_geom_rpes
()
const
{
289
return
atom_geom_rpes_
;
290
}
291
292
private
:
293
294
utility::vector1< AtomGeometrySecMatchRPECOP >
atom_geom_rpes_
;
295
296
};
297
298
}
299
}
300
}
301
302
#endif
Generated on Sat Jun 1 2013 11:59:26 for Rosetta 3.5 by
1.8.4