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
toolbox
match_enzdes_util
EnzdesLoopsFile.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 protocols/toolbox/match_enzdes_util/EnzdesLoopsFile.hh
11
///
12
/// @brief
13
/// @author Florian Richter, floric@u.washington.edu, april 2009
14
15
16
17
18
#ifndef INCLUDED_protocols_toolbox_match_enzdes_util_EnzdesLoopsFile_hh
19
#define INCLUDED_protocols_toolbox_match_enzdes_util_EnzdesLoopsFile_hh
20
21
22
#include <
protocols/toolbox/match_enzdes_util/EnzdesLoopsFile.fwd.hh
>
23
#include <
protocols/toolbox/match_enzdes_util/MatchConstraintFileInfo.fwd.hh
>
24
25
// AUTO-REMOVED #include <protocols/toolbox/match_enzdes_util/EnzdesBaseProtocol.fwd.hh>
26
27
28
//#include <core/conformation
29
// AUTO-REMOVED #include <core/pose/Pose.fwd.hh>
30
#include <
core/types.hh
>
31
32
#include <utility/io/izstream.fwd.hh>
33
// AUTO-REMOVED #include <utility/vector1.hh>
34
35
#include <string>
36
37
#include <utility/vector1_bool.hh>
38
#include <utility/pointer/ReferenceCount.hh>
39
40
41
namespace
protocols {
42
namespace
toolbox {
43
namespace
match_enzdes_util {
44
45
//tiny helper class for EnzdesLoopInfo
46
class
ResInteractions
{
47
48
public
:
49
50
ResInteractions
();
51
52
virtual
53
~ResInteractions
();
54
55
virtual
56
bool
57
read_data
( utility::io::izstream & data );
58
59
virtual
60
void
61
write_data
()
const
;
62
63
core::Size
targ_res
()
const
{
64
return
targ_res_
; }
65
66
utility::vector1< std::string >
const
&
67
targ_atom_names
()
const
{
68
return
targ_atom_names_
; }
69
70
utility::vector1< std::string >
const
&
71
targ_base_atom_names
()
const
{
72
return
targ_base_atom_names_
; }
73
74
utility::vector1< std::string >
const
&
75
targ_base2_atom_names
()
const
{
76
return
targ_base2_atom_names_
; }
77
78
utility::vector1< std::string >
const
&
79
loopres_atom_names
()
const
{
80
return
loopres_atom_names_
; }
81
82
utility::vector1< std::string >
const
&
83
loopres_base_atom_names
()
const
{
84
return
loopres_base_atom_names_
; }
85
86
utility::vector1< std::string >
const
&
87
loopres_base2_atom_names
()
const
{
88
return
loopres_base2_atom_names_
; }
89
90
91
core::Size
92
num_interactions
()
const
{
93
return
num_interactions_
; }
94
95
toolbox::match_enzdes_util::GeomSampleInfoCOP
96
dis
()
const
;
97
98
toolbox::match_enzdes_util::GeomSampleInfoCOP
99
loop_ang
()
const
;
100
101
toolbox::match_enzdes_util::GeomSampleInfoCOP
102
targ_ang
()
const
;
103
104
toolbox::match_enzdes_util::GeomSampleInfoCOP
105
loop_dih
()
const
;
106
107
toolbox::match_enzdes_util::GeomSampleInfoCOP
108
targ_dih
()
const
;
109
110
toolbox::match_enzdes_util::GeomSampleInfoCOP
111
lt_dih
()
const
;
112
113
114
protected
:
115
116
bool
117
process_input_line_tokens
(
utility::vector1< std::string >
const
& tokens );
118
119
void
120
set_targ_res
(
core::Size
targ_res
) {
121
targ_res_
=
targ_res
; }
122
123
void
124
set_targ_atom_names
(
utility::vector1< std::string >
const
& t_atom_names ) {
125
targ_atom_names_
= t_atom_names; }
126
127
void
128
set_loopres_atom_names
(
utility::vector1< std::string >
const
& l_atom_names) {
129
loopres_atom_names_
= l_atom_names; }
130
131
private
:
132
core::Size
targ_res_
;
133
utility::vector1< std::string >
targ_atom_names_
;
134
utility::vector1< std::string >
targ_base_atom_names_
;
135
utility::vector1< std::string >
targ_base2_atom_names_
;
136
core::Size
num_interactions_
;
137
138
toolbox::match_enzdes_util::GeomSampleInfoOP
dis_
,
loop_ang_
,
targ_ang_
,
loop_dih_
,
targ_dih_
,
lt_dih_
;
139
140
utility::vector1< std::string >
loopres_atom_names_
;
141
utility::vector1< std::string >
loopres_base_atom_names_
;
142
utility::vector1< std::string >
loopres_base2_atom_names_
;
143
};
144
145
146
//tiny helper class for EnzdesLoopInfo
147
class
CstResInteractions
:
public
ResInteractions
{
148
149
public
:
150
151
CstResInteractions
();
152
153
virtual
154
~CstResInteractions
(){}
155
156
bool
157
read_data
( utility::io::izstream & data );
158
159
void
160
write_data
()
const
;
161
162
bool
163
resA
()
const
{
164
return
resA_
; }
165
166
core::Size
167
cst_block
()
const
{
168
return
cst_block_
; }
169
170
private
:
171
//if this is true it's resA, otherwise resB
172
bool
resA_
;
173
174
core::Size
cst_block_
;
175
176
};
177
178
179
class
EnzdesLoopInfo
:
public
utility::pointer::ReferenceCount
180
{
181
182
183
public
:
184
///@brief Automatically generated virtual destructor for class deriving directly from ReferenceCount
185
virtual
~EnzdesLoopInfo
();
186
187
EnzdesLoopInfo
();
188
189
bool
190
read_loops_file_block
( utility::io::izstream & data );
191
192
bool
193
check_data_consistency
(
bool
report =
false
)
const
;
194
195
bool
196
ss_strings_specified
()
const
{
197
return
ss_strings_
.size() != 0; }
198
199
bool
200
pdb_numb
()
const
{
201
return
pdb_numb_
;}
202
203
bool
204
pose_numb
()
const
{
205
return
pose_numb_
;}
206
207
core::Size
208
start_pdb
()
const
{
209
return
loop_start_pdb_
; }
210
211
core::Size
212
stop_pdb
()
const
{
213
return
loop_end_pdb_
; }
214
215
char
216
start_pdb_chain
()
const
{
217
return
loop_start_pdb_chain_
; }
218
219
char
220
stop_pdb_chain
()
const
{
221
return
loop_end_pdb_chain_
; }
222
223
core::Size
224
start
()
const
{
225
return
loop_start_
; }
226
227
core::Size
228
stop
()
const
{
229
return
loop_end_
; }
230
231
core::Size
232
min_length
()
const
{
233
return
min_length_
; }
234
235
core::Size
236
max_length
()
const
{
237
return
max_length_
; }
238
239
240
utility::vector1< std::string >
const
&
241
ss_strings
()
const
{
242
return
ss_strings_
; }
243
244
utility::vector1< ResInteractions >
const
&
245
res_interactions
()
const
{
246
return
res_interactions_
; }
247
248
utility::vector1< CstResInteractions >
const
&
249
cst_interactions
()
const
{
250
return
cstres_interactions_
; }
251
252
//still unimplemented
253
bool
254
preserve_buried_contacts
()
const
{
255
return
preserve_buried_contacts_
; }
256
257
//still unimplemented
258
bool
259
contact_buried_problematic_res
()
const
{
260
return
contact_buried_problematic_res_
; }
261
262
263
protected
:
264
265
/// @brief generate all secondary structure strings that correspond to
266
/// the given blueprint. A blueprint is a string containing a succession
267
/// of the following substrings: 1 ss-char followed by '(', a number and ')'
268
/// or 1 ss-char followed by '(', a number, '-', a second number, and ')',
269
/// i.e. H(3-5)L(2-3)H(8)L(5-10)E(4-5)L(2-3)
270
/// the function interprets this string to mean a helix of length between
271
/// 3 and 5, followed by a loop of length 2 or 3, followed by helix of
272
/// length 8, followed by a loop of length between 5 and 10, followed
273
/// by a sheet of length 4 or 5, followed by a loop of length 2 or 3.
274
/// the function then generates one string for every possible combination
275
/// of secondary structure elements that correspond to this blueprint.
276
/// in the above example, a total of 3*2*1*6*2*2 = 144 different secondary
277
/// structure strings will be generated. for every one of these strings,
278
/// the function checks whether its length is within min_length_ and max_length_,
279
/// and if this is the case, the string gets saved in the ss_strings_ vector.
280
void
281
generate_ss_strings_from_blueprint
(
std::string
const
& ss_blueprint );
282
283
//data
284
private
:
285
286
//some basic information about the loop
287
core::Size
loop_start_
,
loop_end_
,
loop_start_pdb_
,
loop_end_pdb_
;
288
char
loop_start_pdb_chain_
,
loop_end_pdb_chain_
;
289
bool
pose_numb_
,
pdb_numb_
;
290
291
core::Size
min_length_
,
max_length_
;
292
293
294
//user specified secondary structure strings
295
utility::vector1< std::string >
ss_strings_
;
296
297
//unimplemented at the moment
298
bool
preserve_buried_contacts_
;
299
300
//unimplemented at the moment
301
bool
contact_buried_problematic_res_
;
302
303
utility::vector1< ResInteractions >
res_interactions_
;
304
305
utility::vector1< CstResInteractions >
cstres_interactions_
;
306
307
};
308
309
/// @brief class to process an enzdes loops file
310
class
EnzdesLoopsFile
:
public
utility::pointer::ReferenceCount
311
{
312
313
public
:
314
///@brief Automatically generated virtual destructor for class deriving directly from ReferenceCount
315
virtual
~EnzdesLoopsFile
();
316
317
EnzdesLoopsFile
();
318
319
bool
320
read_loops_file
(
std::string
filename
);
321
322
EnzdesLoopInfoCOP
323
loop_info
(
core::Size
l )
const
;
324
325
bool
326
file_read
()
const
{
327
return
file_read_
; }
328
329
core::Size
num_loops
()
const
{
330
return
enzloops_
.size(); }
331
332
void
333
clear
();
334
335
private
:
336
337
bool
file_read_
;
338
339
utility::vector1< EnzdesLoopInfoOP >
enzloops_
;
340
341
342
};
//class EnzdesLoopsFile
343
344
345
}
//match_enzdes_util
346
}
//toolbox
347
}
//protocols
348
349
350
351
352
#endif //
Generated on Sat Jun 1 2013 12:21:14 for Rosetta 3.5 by
1.8.4