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
MatcherTask.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/MatcherTask.hh
12
/// @brief
13
/// @author Andrew Leaver-Fay (aleaverfay@gmail.com)
14
15
#ifndef INCLUDED_protocols_match_MatcherTask_hh
16
#define INCLUDED_protocols_match_MatcherTask_hh
17
18
// Unit headers
19
#include <
protocols/match/MatcherTask.fwd.hh
>
20
21
// Project headers
22
#include <
protocols/toolbox/match_enzdes_util/EnzConstraintIO.fwd.hh
>
23
24
#include <
core/types.hh
>
25
// AUTO-REMOVED #include <core/id/AtomID.hh>
26
#include <
core/pose/Pose.fwd.hh
>
27
28
// Utility headers
29
#include <utility/pointer/ReferenceCount.hh>
30
// AUTO-REMOVED #include <utility/vector1.hh>
31
32
// Numeric headers
33
#include <numeric/geometry/BoundingBox.hh>
34
#include <numeric/xyzVector.hh>
35
36
// C++ headers
37
#include <string>
38
#include <list>
39
#include <map>
40
41
#include <
core/id/AtomID.fwd.hh
>
42
#include <utility/vector1.hh>
43
44
45
namespace
protocols {
46
namespace
match
{
47
48
class
MatcherTask
:
public
utility::pointer::ReferenceCount
{
49
public
:
50
typedef
core::Real
Real
;
51
typedef
core::Size
Size
;
52
typedef
core::Vector
Vector
;
53
typedef
numeric::geometry::BoundingBox< Vector >
BoundingBox
;
54
55
public
:
56
/// Construction and Destruction
57
MatcherTask
();
58
MatcherTask
(
MatcherTask
const
& other );
59
MatcherTask
const
&
operator =
(
MatcherTask
const
& rhs );
60
61
virtual
~MatcherTask
();
62
63
64
public
:
65
66
/// Setup
67
void
set_upstream_pose
(
68
core::pose::Pose
const
& pose
69
);
70
71
void
72
set_downstream_pose
(
73
core::pose::Pose
const
& input_pose
74
);
75
76
void
set_downstream_pose
(
77
core::pose::Pose
const
& pose,
78
utility::vector1< core::id::AtomID >
const
& orientation_atoms
79
);
80
81
void
82
set_downstream_orientation_atoms
(
83
utility::vector1< core::id::AtomID >
const
& orientation_atoms
84
);
85
86
void
87
set_enumerate_ligand_rotamers
(
bool
setting );
88
89
void
90
set_only_enumerate_non_match_redundant_ligand_rotamers
(
bool
setting );
91
92
void
clear_downstream_orientation_atoms
();
93
94
void
95
set_ignore_cmdline_for_build_points
(
bool
setting );
96
/// @brief Uniformly consider the same set of build points for each of the geometric constrains
97
void
set_original_scaffold_build_points
(
utility::vector1< Size >
const
& resids );
98
99
/// @brief modify the match positions according to what is specified
100
/// in the cstfile
101
void
102
modify_pose_build_resids_from_endes_input
();
103
104
/// @brief Set up the task so that it keeps different backbone build points for each
105
/// geometric constraint -- the task then needs to know how many geometric constraints
106
/// there are.
107
void
use_different_build_points_for_each_geometric_constraint
(
108
Size
n_geometric_constraints
109
);
110
111
/// @brief Set the build point id's for a particular geometric constraint
112
void
set_original_scaffold_build_points_for_geometric_constraint
(
113
Size
geom_cst_id,
114
utility::vector1< Size >
const
& resids
115
);
116
117
void
118
define_active_site_from_gridlig_file
(
std::string
const
& file_name );
119
120
void
121
define_active_site_from_residue_radii_list
();
122
123
void
124
append_upstream_resiue_as_defining_active_site
(
Size
resid,
Real
radius );
125
126
void
127
append_downstream_atom_to_active_site_required_list
(
core::id::AtomID
atid );
128
129
130
//std::list< core::id::AtomID > const & downstream_atoms_required_inside_active_site_grid() const;
131
132
/// @brief Set the bounding box for the region of space that the OccupiedSpaceHash should accept hits
133
/// in side of. If the 3rd orientation atom of the downstream partner is outside of this bounding
134
/// box, the hit will be rejected out of hand.
135
void
set_occupied_space_bounding_box
(
BoundingBox
const
& bb );
136
/// @brief For the occupied space hash, set the euclidean-bin width to a uniform value for xy&z
137
void
set_hash_euclidean_bin_width
(
Real
width );
138
/// @brief For the occupeid space hash, set the euler-bin width to a uniform value for phi,psi&theta
139
void
set_hash_euler_bin_width
(
Real
width );
140
141
/// @brief For collision detection, select the amount of collision that should
142
/// be tolerated between heavy atoms. This should be a positive value in Angstroms.
143
void
set_permitted_overlap
(
Real
permitted_overlap
);
144
145
/// @brief Initialize many parameters from the command line options
146
void
initialize_from_command_line
();
147
148
/// @brief Matches may either be output as soon as they are generated, or they may be consolidated.
149
/// When consolidating matches, the MatchProcessor (the MatchEvaluator)
150
/// waits until all matches are seen before outputting any; it groups matches and selects the top N
151
/// matches from each group to output. This can require a lot of memory if there are very many
152
/// possible matches. MatchConsolidation is on by default.
153
void
consolidate_matches
(
bool
setting );
154
/// @brief For use with the match consolidator; specify the number of output matches that the
155
/// consolidator should select for each group.
156
void
n_to_output_per_group
(
Size
setting );
157
/// @brief Add a filter by name to the set of filters being included. If that filter requires
158
/// extra data (as, for example, the UpstreamCollisionFilter) then the task should be expanded
159
/// to include all the data necessary to create and initialize that filter. No valid options
160
/// currently.
161
void
add_filter
(
std::string
const
& filter_name );
162
/// @brief Specify the name of the match-consolidator related match-grouper class.
163
/// This class will group matches together; the consolidator will then pick the top N from
164
/// each group for output. Valid options include: SameChiBinComboGrouper,
165
/// SameSequenceGrouper, and SameRotamerComboGrouper.
166
void
grouper_name
(
std::string
const
& setting );
167
/// @brief Specify the name of the match-consolidator related match-evaluator class.
168
/// This class will rank each of the matches so that the consolidator may pick the top N.
169
/// Valid options include: DownstreamRMSEvaluator. More evaluator options will be implemented shortly.
170
void
evaluator_name
(
std::string
const
& setting );
171
/// @brief Specify the name of the class that will write the output.
172
/// Valid options include: KinWriter. More output options will be implemented shortly.
173
void
output_writer_name
(
std::string
const
& setting );
174
/// @brief Indicate the name of the single output file to which the matches will be written
175
void
output_file_name
(
std::string
const
& setting );
176
177
/// @brief Set the matcher-file input data. The Matcher will read this data when initializing itself.
178
void
set_enz_input_data
(
toolbox::match_enzdes_util::EnzConstraintIOCOP
data );
179
180
void
filter_upstream_residue_collisions
(
bool
setting );
181
void
filter_upstream_collisions_by_score
(
bool
setting );
182
void
upstream_residue_collision_tolerance
(
Real
setting );
183
void
upstream_residue_collision_score_cutoff
(
Real
setting );
184
void
upstream_residue_collision_Wfa_atr
(
Real
setting );
185
void
upstream_residue_collision_Wfa_rep
(
Real
setting );
186
void
upstream_residue_collision_Wfa_sol
(
Real
setting );
187
188
void
filter_upstream_downstream_collisions
(
bool
setting );
189
void
filter_upstream_downstream_collisions_by_score
(
bool
setting );
190
void
upstream_downstream_atom_collision_tolerance
(
Real
setting );
191
void
upstream_downstream_residue_collision_score_cutoff
(
Real
setting );
192
void
upstream_downstream_residue_collision_Wfa_atr
(
Real
setting );
193
void
upstream_downstream_residue_collision_Wfa_rep
(
Real
setting );
194
void
upstream_downstream_residue_collision_Wfa_sol
(
Real
setting );
195
196
void
define_match_by_single_downstream_positioning
(
bool
setting );
197
198
199
public
:
// Accessors
200
201
core::pose::PoseCOP
202
upstream_pose
()
const
;
203
204
core::pose::PoseCOP
205
downstream_pose
()
const
;
206
207
utility::vector1< core::id::AtomID >
const
&
208
downstream_orientation_atoms
()
const
;
209
210
bool
211
enumerate_ligand_rotamers
()
const
;
212
213
bool
214
only_enumerate_non_match_redundant_ligand_rotamers
()
const
;
215
216
utility::vector1< Size >
const
&
217
upstream_pose_build_resids_for_geometric_constraint
(
Size
cst_id )
const
;
218
219
std::map< core::Size, core::Size >
const
&
220
upstream_only_geom_cst
()
const
;
221
222
/// @brief Define the active site through a gridlig file (true), or by listing residue/radii paris (false)?
223
bool
224
gridlig_active_site_definition
()
const
;
225
226
/// @brief Accessor for the file name containing the active-site definition in gridlig format
227
std::string
const
&
228
gridlig_file_name
()
const
;
229
230
/// @brief Accessor for the data defining the active site by-residue. This data is only
231
/// active if gridlig_active_site_definition() returns false.
232
std::list< std::pair< Size, Real > >
const
&
233
upstream_resids_and_radii_defining_active_site
()
const
;
234
235
std::list< core::id::AtomID >
const
&
236
downstream_atoms_required_inside_active_site
()
const
;
237
238
utility::vector1< core::id::AtomID >
const
&
239
relevant_downstream_atoms
()
const
;
240
241
BoundingBox
const
&
242
occ_space_bounding_box
()
const
;
243
244
Vector
euclidean_bin_widths
()
const
;
245
Vector
euler_bin_widths
()
const
;
246
247
Real
permitted_overlap
()
const
;
248
249
bool
use_input_sc
()
const
;
250
bool
dynamic_grid_refinement
()
const
;
251
bool
consolidate_matches
()
const
;
252
253
Size
n_to_output_per_group
()
const
;
254
255
std::list< std::string >
const
&
256
filter_names
()
const
;
257
258
std::string
const
&
upstream_pose_name
()
const
;
259
std::string
const
&
cstfile_name
()
const
;
260
std::string
const
&
grouper_name
()
const
;
261
std::string
const
&
evaluator_name
()
const
;
262
std::string
const
&
output_writer_name
()
const
;
263
std::string
const
&
output_file_name
()
const
;
264
Real
grouper_ds_rmsd
()
const
;
265
266
bool
output_matchres_only
()
const
;
267
268
utility::vector1< core::Size >
const
&
geom_csts_downstream_output
()
const
;
269
270
toolbox::match_enzdes_util::EnzConstraintIOCOP
271
enz_input_data
()
const
;
272
273
bool
filter_upstream_residue_collisions
()
const
;
274
bool
filter_upstream_collisions_by_score
()
const
;
275
Real
upstream_residue_collision_tolerance
()
const
;
276
Real
upstream_residue_collision_score_cutoff
()
const
;
277
Real
upstream_residue_collision_Wfa_atr
()
const
;
278
Real
upstream_residue_collision_Wfa_rep
()
const
;
279
Real
upstream_residue_collision_Wfa_sol
()
const
;
280
281
bool
filter_upstream_downstream_collisions
()
const
;
282
bool
filter_upstream_downstream_collisions_by_score
()
const
;
283
Real
upstream_downstream_atom_collision_tolerance
()
const
;
284
Real
upstream_downstream_residue_collision_score_cutoff
()
const
;
285
Real
upstream_downstream_residue_collision_Wfa_atr
()
const
;
286
Real
upstream_downstream_residue_collision_Wfa_rep
()
const
;
287
Real
upstream_downstream_residue_collision_Wfa_sol
()
const
;
288
289
bool
define_match_by_single_downstream_positioning
()
const
;
290
291
private
:
292
293
void
294
validate_downstream_orientation_atoms
()
const
;
295
296
/// @brief Read the file describing the occupied space grid euclidean dimensions.
297
/// The "details" tag for this function describes the file format used.
298
void
299
initialize_occupied_space_bounding_box_from_command_line
();
300
301
/// @brief Read one of two files given on the command line that defines the set
302
/// of residues on the scaffold to consider as potential launch points for the
303
/// scaffold's active site. File formats are described in the "details" tag.
304
void
305
initialize_scaffold_active_site_residue_list_from_command_line
();
306
307
/// @brief in cases where the upstream pose to be matched already
308
/// contains some of the desired interactions (as specified in the
309
/// REMARK header, the match position list for every geomcst will
310
/// be set to these positions
311
void
312
set_active_site_residue_list_to_preexisting_partial_match
();
313
314
/// @brief in case the upstream pose containts a copy
315
/// of the downstream object (i.e. if a previously matched
316
/// partial match is being read in again )
317
void
318
remove_downstream_object_from_upstream_pose
();
319
320
void
321
initialize_enzdes_input_data_from_command_line
();
322
323
/// @brief queries the enzdes input for which atoms are relevant to the matcher,
324
/// i.e. which atoms in the downstream object interact with any of the match residues
325
void
326
determine_all_match_relevant_downstream_atoms
();
327
328
void
329
initialize_orientation_atoms_from_command_line
();
330
331
/// @brief Read the command line arguments specifying the subset of downstream
332
/// partner atoms that are required to be in the active site, as well as a definition
333
/// of the region called the active site. The "details" tag for this function
334
/// describes three file formats used in this function.
335
void
336
initialize_active_site_definition_from_command_line
();
337
338
void
339
initialize_upstream_residue_collision_filter_data_from_command_line
();
340
341
void
342
initialize_upstream_downstream_collision_filter_data_from_command_line
();
343
344
void
345
initialize_output_options_from_command_line
();
346
347
private
:
348
349
core::pose::PoseCOP
upstream_pose_
;
350
351
core::pose::PoseCOP
downstream_pose_
;
352
utility::vector1< core::id::AtomID >
downstream_orientation_atoms_
;
353
utility::vector1< core::id::AtomID >
relevant_downstream_atoms_
;
354
bool
enumerate_ligand_rotamers_
;
355
bool
only_enumerate_non_match_redundant_ligand_rotamers_
;
356
357
bool
ignore_cmdline_for_build_points_
;
358
bool
share_build_points_for_geomcsts_
;
359
utility::vector1< Size >
generic_pose_build_resids_
;
360
utility::vector1< utility::vector1< Size >
>
per_cst_pose_build_resids_
;
361
362
//for upstream only constraints, this maps between the geom cst
363
//and the geom cst of the upstream target
364
std::map< core::Size, core::Size >
upstream_only_geom_cst_
;
365
366
bool
gridlig_active_site_definition_
;
367
std::string
gridlig_fname_
;
368
std::string
upstream_pose_name_
;
369
std::string
cstfile_name_
;
370
std::list< std::pair< Size, Real > >
upstream_resids_and_radii_defining_active_site_
;
371
372
std::list< core::id::AtomID >
downstream_atoms_required_inside_active_site_
;
373
utility::vector1< Size >
downstream_atom_inds_used_in_matching_
;
374
375
BoundingBox
occ_space_bounding_box_
;
376
Vector
euclidean_bin_widths_
;
377
Vector
euler_bin_widths_
;
378
379
Real
permitted_overlap_
;
380
381
bool
use_input_sc_
;
382
bool
dynamic_grid_refinement_
;
383
bool
consolidate_matches_
;
/// MatchConsolidator vs MatchOutputter
384
Size
n_to_output_per_group_
;
385
std::list< std::string >
filter_names_
;
386
std::string
grouper_name_
;
387
std::string
evaluator_name_
;
388
std::string
output_writer_name_
;
389
std::string
output_file_name_
;
390
Real
grouper_ds_rmsd_
;
391
392
//some options for outputting
393
bool
output_matchres_only_
;
394
utility::vector1< core::Size >
geom_csts_downstream_output_
;
//for which of the geometric constraints will the ligand be output
395
396
toolbox::match_enzdes_util::EnzConstraintIOCOP
enz_input_data_
;
397
398
bool
filter_upstream_residue_collisions_
;
399
bool
filter_upstream_collisions_by_score_
;
400
Real
upstream_residue_collision_tolerance_
;
401
Real
upstream_residue_collision_score_cutoff_
;
402
Real
upstream_residue_collision_Wfa_atr_
;
403
Real
upstream_residue_collision_Wfa_rep_
;
404
Real
upstream_residue_collision_Wfa_sol_
;
405
406
bool
filter_upstream_and_downstream_residue_collisions_
;
407
bool
filter_upstream_and_downstream_collisions_by_score_
;
408
Real
upstream_downstream_atom_collision_tolerance_
;
409
Real
upstream_downstream_residue_collision_score_cutoff_
;
410
Real
upstream_downstream_residue_collision_Wfa_atr_
;
411
Real
upstream_downstream_residue_collision_Wfa_rep_
;
412
Real
upstream_downstream_residue_collision_Wfa_sol_
;
413
414
bool
define_match_by_single_downstream_positioning_
;
415
416
};
417
418
419
}
420
}
421
422
#endif
Generated on Sat Jun 1 2013 11:59:35 for Rosetta 3.5 by
1.8.4