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
simple_moves
sidechain_moves
SidechainMCMover.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/simple_moves/sidechain_moves/SidechainMCMover.hh
11
/// @brief definition of SidechainMCMover class and functions
12
/// @author Colin A. Smith (colin.smith@ucsf.edu)
13
14
15
#ifndef INCLUDED_protocols_simple_moves_sidechain_moves_SidechainMCMover_hh
16
#define INCLUDED_protocols_simple_moves_sidechain_moves_SidechainMCMover_hh
17
18
// Unit Headers
19
#include <
protocols/simple_moves/sidechain_moves/SidechainMover.hh
>
20
#include <
protocols/simple_moves/sidechain_moves/SidechainMCMover.fwd.hh
>
21
#include <
protocols/canonical_sampling/MetropolisHastingsMover.fwd.hh
>
22
#include <
core/pack/interaction_graph/SimpleInteractionGraph.fwd.hh
>
23
24
// Protocols Headers
25
#include <
protocols/moves/Mover.hh
>
26
#include <
protocols/moves/DataMap.fwd.hh
>
27
#include <
protocols/filters/Filter.fwd.hh
>
28
29
30
// Core Headers
31
// AUTO-REMOVED #include <core/pack/task/TaskFactory.hh>
32
#include <
core/chemical/ResidueType.fwd.hh
>
33
#include <
core/pack/task/PackerTask.fwd.hh
>
34
#include <
core/pose/Pose.fwd.hh
>
35
// AUTO-REMOVED #include <numeric/random/random.hh>
36
37
38
#include <
core/pack/dunbrack/RotamerLibrary.fwd.hh
>
39
#include <
core/pack/dunbrack/RotamerLibraryScratchSpace.fwd.hh
>
40
41
// Utility Headers
42
#include <utility/tag/Tag.fwd.hh>
43
44
// AUTO-REMOVED #include <utility/vector0.hh>
45
// AUTO-REMOVED #include <utility/vector1.hh>
46
// AUTO-REMOVED #include <numeric/conversions.hh>
47
48
#include <
core/scoring/ScoreFunction.hh
>
49
#include <utility/vector1.hh>
50
51
#ifdef WIN32
52
#include <
core/conformation/Residue.hh
>
53
#endif
54
55
56
namespace
protocols {
57
namespace
simple_moves {
58
namespace
sidechain_moves {
59
60
61
/// @brief class for non-discrete side chain sampling using Dunbrack rotamer probabilities/distributions
62
class
SidechainMCMover
:
public
protocols::simple_moves::sidechain_moves::SidechainMover
{
63
64
public
:
65
//
66
/// @brief default constructor
67
SidechainMCMover
();
68
69
/// @brief constructor with user provided rotamer library
70
SidechainMCMover
(
71
core::pack::dunbrack::RotamerLibrary
const
&
rotamer_library
72
);
73
74
~SidechainMCMover
();
75
76
void
77
show_counters
( std::ostream & out );
78
79
void
80
setup
(
core::scoring::ScoreFunctionCOP
sfxn );
81
82
//parser stuff
83
protocols::moves::MoverOP
clone
()
const
;
84
protocols::moves::MoverOP
fresh_instance
()
const
;
85
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
& );
86
87
/// @brief apply a sidechain move to a Pose object
88
void
89
apply
(
90
core::pose::Pose
& pose
91
);
92
93
virtual
std::string
get_name
()
const
;
94
95
void
96
set_ntrials
(
core::Size
ntrial ){
97
ntrials_
= ntrial;
98
};
99
100
core::Size
101
ntrials
(){
102
return
ntrials_
;
103
}
104
105
void
106
set_temperature
(
core::Real
temp ){
107
temperature_
= temp;
108
}
109
110
core::Real
111
temperature
(){
112
return
temperature_
;
113
}
114
115
void
116
set_inherit_scorefxn_temperature
(
bool
inherit_scorefxn_temperature
)
117
{
118
inherit_scorefxn_temperature_
=
inherit_scorefxn_temperature
;
119
}
120
121
bool
122
inherit_scorefxn_temperature
()
const
123
{
124
return
inherit_scorefxn_temperature_
;
125
}
126
127
void
128
set_scorefunction
(
core::scoring::ScoreFunction
const
& sfxn ){
129
sfxn_
= sfxn;
130
}
131
132
core::scoring::ScoreFunction
&
133
scorefunction
(){
134
return
sfxn_
;
135
}
136
137
virtual
138
void
139
initialize_simulation
(
140
core::pose::Pose
& pose,
141
protocols::canonical_sampling::MetropolisHastingsMover
const
&
metropolis_hastings_mover
,
142
core::Size
cycle
//non-zero if trajectory is restarted
143
);
144
145
virtual
146
core::Real
147
last_proposal_density_ratio
()
148
{
149
return
1;
150
}
151
152
virtual
153
bool
154
is_multi_trial
()
155
{
156
return
true
;
157
}
158
159
virtual
160
core::Real
161
last_inner_score_temperature_delta
()
162
{
163
return
(
score_post_apply_
-
score_pre_apply_
)/
temperature_
;
164
}
165
166
virtual
167
protocols::canonical_sampling::MetropolisHastingsMoverAP
168
metropolis_hastings_mover
()
169
{
170
return
metropolis_hastings_mover_
;
171
}
172
173
virtual
174
void
175
set_metropolis_hastings_mover
(
176
protocols::canonical_sampling::MetropolisHastingsMoverAP
metropolis_hastings_mover
177
)
178
{
179
metropolis_hastings_mover_
=
metropolis_hastings_mover
;
180
}
181
182
183
private
:
184
185
bool
pass_metropolis
(
core::Real
delta_energy ,
core::Real
last_proposal_density_ratio
);
186
187
void
188
perturb_chi
(numeric::random::RandomGenerator Rand,
189
core::Real
max_deviation,
190
utility::vector1<core::Real>
& current_chi,
191
utility::vector1<core::Real>
& new_chi
192
);
193
194
//ek for fast sidechain sampling and internal mc trials
195
utility::vector1< core::conformation::ResidueOP >
current_
;
196
utility::vector1< core::conformation::ResidueOP >
previous_
;
197
utility::vector1< core::conformation::ResidueOP >
best_
;
198
core::Real
temperature_
;
199
core::Size
ntrials_
;
200
core::Real
best_energy_
;
201
core::Real
current_energy_
;
202
core::scoring::ScoreFunction
sfxn_
;
203
bool
inherit_scorefxn_temperature_
;
204
core::pack::interaction_graph::SimpleInteractionGraphOP
ig_
;
205
core::Real
accepts_
;
206
core::Real
current_ntrial_
;
207
core::Real
score_pre_apply_
;
208
core::Real
score_post_apply_
;
209
protocols::canonical_sampling::MetropolisHastingsMoverAP
metropolis_hastings_mover_
;
210
211
};
//SidechainMCMover
212
213
214
}
// sidechain_moves
215
}
// simple_moves
216
}
// protocols
217
218
#endif
219
Generated on Sat Jun 1 2013 12:17:22 for Rosetta 3.5 by
1.8.4