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
docking
DockingProtocol.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 DockingProtocol.hh
11
///
12
/// @brief
13
/// @author Monica Berrondo
14
15
#ifndef INCLUDED_protocols_docking_DockingProtocol_hh
16
#define INCLUDED_protocols_docking_DockingProtocol_hh
17
18
// Unit Headers
19
#include <
protocols/docking/DockingProtocol.fwd.hh
>
20
21
// Package Headers
22
#include <
protocols/docking/types.hh
>
23
#include <
protocols/docking/DockingEnsemble.fwd.hh
>
24
#include <
protocols/docking/DockingLowResEnsemble.fwd.hh
>
25
#include <
protocols/docking/DockFilters.fwd.hh
>
26
#include <
protocols/docking/DockingLowRes.fwd.hh
>
27
#include <
protocols/docking/DockingHighRes.fwd.hh
>
28
#include <
protocols/docking/DockingInitialPerturbation.fwd.hh
>
29
30
// Project Headers
31
#include <
core/types.hh
>
32
#include <
core/pack/task/TaskFactory.hh
>
33
#include <
core/pack/task/operation/TaskOperation.fwd.hh
>
34
#include <
protocols/toolbox/task_operations/InterfaceTaskOperation.fwd.hh
>
35
#include <
core/pose/Pose.fwd.hh
>
36
#include <
core/scoring/ScoreFunction.hh
>
// Needs to be the full header so the scorefxn can default to NULL
37
#include <
core/kinematics/FoldTree.hh
>
38
39
#include <
protocols/moves/Mover.hh
>
40
#include <
protocols/moves/MonteCarlo.fwd.hh
>
41
#include <
protocols/simple_moves/ConstraintSetMover.fwd.hh
>
42
#include <
protocols/simple_moves/ReturnSidechainMover.fwd.hh
>
43
#include <
protocols/simple_moves/SwitchResidueTypeSetMover.fwd.hh
>
44
#include <
protocols/moves/MoverContainer.fwd.hh
>
45
46
#include <utility/tag/Tag.fwd.hh>
47
48
49
// Utility Headers
50
#include <utility/vector1.hh>
51
52
// Numeric Headers
53
54
// ObjexxFCL Headers
55
56
// C++ headers
57
58
namespace
protocols {
59
namespace
docking
{
60
61
/// @brief This is the standard RosettaDock protocol
62
/// @detailed RosettaDock protocol based on [refs...Gray2003, Wang2005, Chaudhury 2007 ... ]
63
class
DockingProtocol
:
public
moves::Mover
64
{
65
public
:
66
/// @brief
67
/// empty constructor fills values with the expected defaults
68
/// rb_jump will be assigned as 1 (meaning the first jump will
69
/// be used as the jump across which all rigid-body perturbations
70
/// will occur
71
DockingProtocol
();
72
73
DockingProtocol
(
74
Size
const
rb_jump_in,
75
bool
const
low_res_protocol_only=
false
,
// if true: skip high resolution docking
76
bool
const
docking_local_refine=
false
,
// if true: skip low resolution docking
77
bool
const
autofoldtree=
true
,
78
core::scoring::ScoreFunctionOP
docking_score_low =
core::scoring::ScoreFunctionOP
(NULL),
79
core::scoring::ScoreFunctionOP
docking_score_high =
core::scoring::ScoreFunctionOP
(NULL)
80
);
81
82
DockingProtocol
(
83
DockJumps
const
movable_jumps
,
84
bool
const
low_res_protocol_only=
false
,
// if true: skip high resolution docking
85
bool
const
docking_local_refine=
false
,
// if true: skip low resolution docking
86
bool
const
autofoldtree=
true
,
87
core::scoring::ScoreFunctionOP
docking_score_low =
core::scoring::ScoreFunctionOP
(NULL),
88
core::scoring::ScoreFunctionOP
docking_score_high =
core::scoring::ScoreFunctionOP
(NULL)
89
);
90
91
/// @brief Assigns default values to primitive members
92
void
set_default
();
93
94
/// @brief Instantiates non-primitive members based on the value of the primitive members
95
void
sync_objects_with_flags
();
96
97
98
//destructor
99
~DockingProtocol
();
100
101
virtual
protocols::moves::MoverOP
clone
()
const
;
102
103
virtual
protocols::moves::MoverOP
fresh_instance
()
const
;
104
105
///@brief This mover retains state such that a fresh version is needed if the input Pose is about to change
106
virtual
bool
reinitialize_for_new_input
()
const
;
// {return true;};
107
108
///@brief copy ctor
109
DockingProtocol
(
DockingProtocol
const
& rhs );
110
111
///@brief assignment operator
112
DockingProtocol
&
operator=
(
DockingProtocol
const
& rhs );
113
114
115
116
/// @brief Associates relevant options with the DockingProtocol class
117
static
void
register_options
();
118
119
/// @brief Sets the score function that will be used in the low-resolution phase
120
void
set_lowres_scorefxn
(
core::scoring::ScoreFunctionOP
docking_scorefxn_low );
121
122
/// @brief Sets the score function that will be used in the high-resolution phase.
123
/// The same score function will be used for evaluating moves, packing and discriminating
124
void
set_highres_scorefxn
(
core::scoring::ScoreFunctionOP
docking_scorefxn_high );
125
126
/// @brief Sets the score function that will be used in the high-resolution phase.
127
/// The first scorefunction will be used for evaluating moves and discriminating, the second will be used for packing
128
void
set_highres_scorefxn
(
129
core::scoring::ScoreFunctionOP
docking_scorefxn_high,
130
core::scoring::ScoreFunctionOP
docking_scorefxn_pack );
131
132
/// @brief Sets the score function that will be used in the high-resolution phase.
133
/// The first scorefunction will be used for evaluating moves, the second will be used for packing and the third for discriminating
134
void
set_highres_scorefxn
(
135
core::scoring::ScoreFunctionOP
docking_scorefxn_high,
136
core::scoring::ScoreFunctionOP
docking_scorefxn_pack,
137
core::scoring::ScoreFunctionOP
docking_scorefxn_output);
138
139
void
set_sc_min
(
bool
sc_min );
140
void
set_rt_min
(
bool
rt_min );
141
void
set_dock_min
(
bool
const
dock_min );
142
143
void
set_no_filters
(
bool
no_filters );
144
void
set_low_res_protocol_only
(
bool
const
low_res_protocol_only );
145
void
set_docking_local_refine
(
bool
const
docking_local_refine );
146
void
set_use_legacy_protocol
(
bool
const
use_legacy_protocol );
147
void
set_cst_weight
(
core::Real
const
cst_weight );
148
void
set_use_constraints
(
bool
const
use_csts );
149
void
set_interface_definition_task_operation
(
protocols::toolbox::task_operations::InterfaceTaskOperationOP
interface_definition );
150
151
void
set_additional_task_operarations
(
utility::vector1< core::pack::task::operation::TaskOperationOP >
additional_task_operations );
152
void
add_additional_task_operaration
(
core::pack::task::operation::TaskOperationOP
task_operation );
153
utility::vector1< core::pack::task::operation::TaskOperationOP >
get_additional_task_operarations
();
154
155
156
virtual
void
apply
(
core::pose::Pose
& pose );
157
158
// score_only is no longer implemented. It remains here until a decision is made about what to do with it.
159
// void score_only( core::pose::Pose & pose );
160
161
// inline getters
162
std::string
partners
()
const
{
return
partners_
;}
/// @brief returns the docking partners chain identifiers
163
virtual
std::string
get_name
()
const
{
return
"DockingProtocol"
; }
164
DockJumps
&
movable_jumps
(){
return
movable_jumps_
;}
///@brief returns ref to the jumps vector for docking
165
DockJumps
const
&
movable_jumps
()
const
{
return
movable_jumps_
; }
///@ return const ref to the jumps vector for docking
166
core::pack::task::TaskFactory
const
&
task_factory
() {
return
*
init_task_factory_
; }
167
168
//getters for const access to movers and data of docking protocol
169
protocols::simple_moves::SwitchResidueTypeSetMoverCOP
to_centroid
()
const
;
170
protocols::moves::MoverCOP
to_all_atom
()
const
;
171
protocols::docking::DockingLowResCOP
docking_lowres_mover
()
const
;
172
protocols::docking::DockingHighResCOP
docking_highres_mover
()
const
;
173
protocols::docking::DockingInitialPerturbationCOP
perturber
()
const
;
174
175
//Allow a developer to set a custom high resolution mover
176
void
set_docking_highres_mover
(
protocols::docking::DockingHighResOP
docking_highres_mover
);
177
178
//Allow a developer to add some additional steps to the end of the low resolution phase.
179
//Each mover that's added in this way is added to a SequenceMover that is applied after low resolution
180
//docking concludes.
181
void
add_additional_low_resolution_step
(
protocols::moves::MoverOP
additional_low_resolution_mover );
182
183
// inline setters
184
void
set_autofoldtree
(
bool
const
autofoldtree ){
autofoldtree_
= autofoldtree; }
185
void
set_partners
(
std::string
const
&
partners
){
partners_
=
partners
; }
186
void
set_inner_cycles
(
core::Size
inner_cycles ) {
lowres_inner_cycles_
=inner_cycles; }
187
void
set_outer_cycles
(
core::Size
outer_cycles ) {
lowres_outer_cycles_
=outer_cycles; }
188
void
set_design
(
bool
const
design ) {
design_
= design; }
// for RosettaScripts. to be deprecated when legacy high res disappears
189
void
set_task_factory
(
core::pack::task::TaskFactoryOP
task_factory
){
init_task_factory_
=
task_factory
; }
190
void
set_ignore_default_docking_task
(
bool
const
ignore_default_docking_task){
ignore_default_docking_task_
= ignore_default_docking_task;}
191
void
set_movable_jumps
(
DockJumps
const
jump_numbers ){
movable_jumps_
= jump_numbers; }
192
void
set_reporting
(
bool
report ) {
reporting_
= report; }
193
void
set_ensemble1
(
std::string
const
& ensemble1 ) {
ensemble1_filename_
= ensemble1; }
194
void
set_ensemble2
(
std::string
const
& ensemble2 ) {
ensemble2_filename_
= ensemble2; }
195
void
set_recover_sidechains_filename
(
std::string
const
& file ) {
recover_sidechains_filename_
= file; }
196
// Other member functions
197
void
add_jump
(
core::Size
const
jump_number ){
movable_jumps_
.push_back(
int
( jump_number ) ); }
198
199
void
show
( std::ostream & out=std::cout );
200
friend
std::ostream &
operator<<
(std::ostream& out,
const
DockingProtocol
& dp );
201
202
// function for the parser with lots of accessors
203
void
parse_my_tag
(
utility::tag::TagPtr
const
tag,
protocols::moves::DataMap
&,
protocols::filters::Filters_map
const
&,
protocols::moves::Movers_map
const
&,
core::pose::Pose
const
& );
204
205
private
:
206
/// information about the mode
207
bool
user_defined_
;
// for constructor options passed to init
208
bool
low_res_protocol_only_
;
209
bool
reporting_
;
210
bool
autofoldtree_
;
211
212
bool
flags_and_objects_are_in_sync_
;
213
bool
first_apply_with_current_setup_
;
214
215
bool
sc_min_
;
216
bool
rt_min_
;
217
bool
dock_min_
;
218
219
bool
if_ensemble_
;
// Add by DK
220
221
bool
no_filters_
;
222
bool
use_legacy_protocol_
;
223
bool
docking_local_refine_
;
224
225
bool
use_csts_
;
226
core::Real
cst_weight_
;
227
228
core::Real
score_cutoff_
;
229
core::kinematics::FoldTree
fold_tree_
;
230
std::string
partners_
;
231
232
std::string
previous_sequence_
;
233
234
// low res options
235
core::SSize
lowres_inner_cycles_
,
lowres_outer_cycles_
;
236
237
/// jumps that rigid_body transformations can occur over
238
DockJumps
movable_jumps_
;
239
240
// score functions
241
core::scoring::ScoreFunctionOP
docking_scorefxn_low_
;
242
core::scoring::ScoreFunctionOP
docking_scorefxn_high_
;
243
core::scoring::ScoreFunctionOP
docking_scorefxn_pack_
;
244
core::scoring::ScoreFunctionOP
docking_scorefxn_output_
;
245
246
// success criteria enforcers
247
protocols::moves::MonteCarloOP
mc_
;
//not used currently
248
protocols::docking::DockingLowResFilterOP
lowres_filter_
;
249
protocols::docking::DockingHighResFilterOP
highres_filter_
;
250
251
252
//protocols
253
protocols::docking::DockingLowResOP
docking_lowres_mover_
;
254
protocols::docking::DockingHighResOP
docking_highres_mover_
;
255
protocols::docking::DockingInitialPerturbationOP
perturber_
;
256
257
// atom set switch movers
258
protocols::simple_moves::SwitchResidueTypeSetMoverOP
to_centroid_
;
259
protocols::moves::MoverOP
to_all_atom_
;
260
261
// ensemble objects
262
protocols::docking::DockingEnsembleOP
ensemble1_
;
263
protocols::docking::DockingEnsembleOP
ensemble2_
;
264
std::string
ensemble1_filename_
,
ensemble2_filename_
;
265
266
// constraint set mover
267
protocols::simple_moves::ConstraintSetMoverOP
docking_constraint_
;
268
269
protocols::simple_moves::ReturnSidechainMoverOP
recover_sidechains_
;
270
271
protocols::moves::SequenceMoverOP
additional_low_resolution_steps_
;
272
273
//if side-chains are to be taken from specified pdb file... it is set here...
274
std::string
recover_sidechains_filename_
;
275
276
core::pack::task::TaskFactoryOP
init_task_factory_
;
// use this to restrict the packer task for docking protocol
277
bool
design_
;
// for RosettaScripts. to be deprecated when legacy high res disappears
278
bool
ignore_default_docking_task_
;
//passed down to DockingHighRes, prevents the default DockingTaskFactory from being built
279
280
/// @brief Assigns user specified values to primitive members using command line options
281
void
init_from_options
();
282
283
/// @brief Performs the portion of setup of non-primitive members that requires a pose - called on apply
284
void
finalize_setup
(
core::pose::Pose
& pose );
285
286
/// @brief Sets up the instance of DockingProtocol and initializes all members based on values passed in at construction
287
/// or via the command line.
288
void
init
(
289
DockJumps
const
movable_jumps,
290
bool
const
low_res_protocol_only_
,
291
bool
const
docking_local_refine,
292
bool
const
autofoldtree,
293
core::scoring::ScoreFunctionOP
docking_score_low,
294
core::scoring::ScoreFunctionOP
docking_score_high
295
);
296
297
void
initForEqualOperatorAndCopyConstructor
(
DockingProtocol
& lhs,
DockingProtocol
const
& rhs);
298
299
void
setup_objects
();
300
301
void
setup_constraints
(
core::pose::Pose
& pose );
302
void
add_constraints_to_scorefunction
();
303
void
check_high_res_protocol
();
304
305
};
306
}
// docking
307
}
// protocols
308
309
#endif
310
Generated on Sat Jun 1 2013 11:47:13 for Rosetta 3.5 by
1.8.4