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
relax
ClassicRelax.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 relax_initialization_protocols
11
/// @brief initialization protocols for relax
12
/// @detailed
13
/// Contains currently: Relax Baseclass, ClassicRelax Stage 1,2,3, ClassicRelax
14
///
15
///
16
/// @author Mike Tyka
17
18
19
#ifndef INCLUDED_protocols_relax_ClassicRelax_hh
20
#define INCLUDED_protocols_relax_ClassicRelax_hh
21
22
23
#include <
protocols/relax/RelaxProtocolBase.hh
>
24
25
#include <
protocols/moves/Mover.hh
>
26
#include <
protocols/simple_moves/MinMover.fwd.hh
>
27
#include <
protocols/simple_moves/RotamerTrialsMover.fwd.hh
>
28
#include <
protocols/simple_moves/PackRotamersMover.fwd.hh
>
29
#include <
protocols/checkpoint/CheckPointer.hh
>
30
31
#include <
core/scoring/ScoreFunction.fwd.hh
>
32
#include <
core/scoring/ScoreType.hh
>
33
34
#include <
core/pose/Pose.fwd.hh
>
35
36
#include <
core/kinematics/MoveMap.fwd.hh
>
37
#include <
protocols/moves/MoverCreator.hh
>
38
39
//// C++ headers
40
#include <string>
41
42
#include <utility/vector1.hh>
43
44
45
46
namespace
protocols {
47
namespace
relax {
48
49
50
class
ClassicRelaxCreator
:
public
protocols::moves::MoverCreator
{
51
public
:
52
virtual
moves::MoverOP
create_mover
()
const
;
53
virtual
std::string
keyname
()
const
;
54
static
std::string
mover_name
();
55
};
56
57
/// A functor class which implements the classic Rosetta++ pose_relax protocol
58
///
59
/// @todo Crank and Wobble Moves - however there's little evidence that they are essential
60
///
61
// @todo Ramping of vdw --> how about providing a general ramper class. It could provide an iterator thru which
62
// continuously changing score functions are accessible.
63
/// @brief A functor class which implements the classic Rosetta++ pose_relax protocol
64
class
ClassicRelax
:
public
RelaxProtocolBase
{
65
public
:
66
typedef
RelaxProtocolBase
parent
;
67
68
public
:
69
ClassicRelax
(
core::scoring::ScoreFunctionOP
scorefxn_in );
70
71
ClassicRelax
(
core::scoring::ScoreFunctionOP
scorefxn_in,
core::kinematics::MoveMapOP
movemap );
72
73
ClassicRelax
(
ClassicRelax
const
& );
74
75
ClassicRelax
();
76
77
virtual
~ClassicRelax
();
78
79
protocols::moves::MoverOP
clone
()
const
;
80
81
static
void
register_options
();
82
// Default settings
83
84
void
set_default
(
core::scoring::ScoreFunctionOP
scorefxn_in );
85
86
///////////////////////////////////////////////////////////////////////////////////
87
///
88
/// Central Apply function
89
///
90
virtual
void
apply
(
core::pose::Pose
& pose );
91
virtual
std::string
get_name
()
const
;
92
93
94
95
///////////////////////////////////////////////////////////////////////////////////
96
///
97
/// Set default options from outside
98
///
99
100
void
set_default
(
bool
const
use_default_movemap =
true
);
101
102
103
104
void
set_default_minimizer
();
105
106
void
set_default_moveset_phase1
();
107
108
void
set_default_moveset_phase2
();
109
110
void
set_default_moveset_phase3
();
111
112
///////////////////////////////////////////////////////////////////////////////////
113
///
114
/// Set options from outside
115
///
116
117
void
set_lj_ramp_cycles
(
int
param ) {
lj_ramp_cycles
= param; }
118
119
void
set_lj_ramp_inner_cycles
(
int
param ) {
lj_ramp_inner_cycles
= param; }
120
121
void
set_start_rep_weight
(
core::Real
param ){
start_rep_weight
= param; }
122
123
void
set_stage2_cycles
(
int
cycles2 ) {
stage2_cycles
= cycles2; }
124
125
void
set_stage2_repack_period
(
int
repack2 ) {
stage2_repack_period
= repack2; }
126
127
void
set_stage3_cycles
(
int
cycles3 ) {
stage3_cycles
= cycles3; }
128
129
void
set_tolerance
(
core::Real
new_tolerance );
130
131
void
set_mc
(
moves::MonteCarloOP
new_mc_ );
132
133
void
set_full_repack
(
protocols::simple_moves::PackRotamersMoverOP
new_pack_full_repack );
134
135
void
set_rottrial
(
protocols::simple_moves::RotamerTrialsMoverOP
new_pack_rottrial );
136
137
void
setPoseExtraScores
(
core::pose::Pose
&pose );
138
139
void
use_coarse_vdw
() {
//we need to know which scoring terms to ramp!
140
// one could generalize this by giving a RamperClass to the Protocol, which provides an iterator that yields a scoring function
141
st_rep_
=
core::scoring::coarse_fa_rep
;
142
st_atr_
=
core::scoring::coarse_fa_atr
;
143
st_sol_
=
core::scoring::coarse_fa_sol
;
144
};
145
146
147
148
///////////////////////////////////////////////////////////////////////////////////
149
///
150
/// Accessors
151
///
152
153
moves::MonteCarloOP
get_mc
(
core::pose::Pose
&pose );
154
155
156
protocols::checkpoint::CheckPointer
&
get_checkpoints
() {
return
checkpoints_
; };
157
158
private
:
159
// protocol stuff
160
161
protocols::simple_moves::MinMoverOP
min_mover_
;
162
protocols::checkpoint::CheckPointer
checkpoints_
;
163
164
// THese three are special in the sense that they require a Pose at creating time.
165
// this means they cannot have default values at construction time of ClassicRelax
166
// because the pose is not yet known. Thus their initialisation has to be delayed
167
// until apply is called. Each has a boolean flag to indicate whether the user has
168
// overridden them with their own object instance or if apply should create a default
169
// version.
170
171
moves::MonteCarloOP
mc_
;
172
bool
use_default_mc_
;
173
void
check_default_mc
(
core::pose::Pose
& pose );
174
// stuff to do with packing
175
176
protocols::simple_moves::PackRotamersMoverOP
pack_full_repack_
;
177
bool
use_default_pack_full_repack_
;
178
void
check_default_full_repacker
(
core::pose::Pose
& pose,
core::kinematics::MoveMap
& movemap );
179
180
protocols::simple_moves::RotamerTrialsMoverOP
pack_rottrial_
;
181
bool
use_default_pack_rottrial_
;
182
void
check_default_rottrial
(
core::pose::Pose
& pose,
core::kinematics::MoveMap
& movemap );
183
184
// default temperature for monte carlo
185
core::Real
m_Temperature
;
186
187
// default number of moves
188
core::Size
nmoves_
;
189
core::Real
energycut
;
190
191
// minimization options
192
std::string
min_type
;
193
bool
nb_list
;
194
core::Real
min_tolerance
;
195
196
moves::MoverOP
moveset_phase1_
;
197
moves::MoverOP
moveset_phase2_
;
198
moves::MoverOP
moveset_phase3_
;
199
200
// PHASE1 stuff
201
202
int
lj_ramp_cycles
;
203
int
lj_ramp_inner_cycles
;
204
core::Real
start_rep_weight
;
205
core::Real
end_rep_weight
;
206
207
core::scoring::ScoreType
st_rep_
;
208
core::scoring::ScoreType
st_atr_
;
209
core::scoring::ScoreType
st_sol_
;
210
211
// PHASE2 stuff
212
int
stage2_repack_period
;
213
int
stage2_cycles
;
214
215
// PHASE3 stuff RandomMover
216
int
stage3_cycles
;
217
218
219
// filters
220
221
float
score_stage2_beginning
;
222
float
score_stage2_quarter
;
223
float
score_stage2_half
;
224
float
score_stage2_end
;
225
226
float
filter_stage2_beginning
;
227
float
filter_stage2_quarter
;
228
float
filter_stage2_half
;
229
float
filter_stage2_end
;
230
231
};
232
233
234
235
}
236
}
// protocols
237
238
#endif
Generated on Sat Jun 1 2013 12:08:44 for Rosetta 3.5 by
1.8.4