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
symmetric_docking
SymSidechainMinMover.cc
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
11
/// @brief
12
/// @author Sid Chaudhury (Carbon copy by Ingemar André)
13
14
// Unit headers
15
#include <
protocols/symmetric_docking/SymSidechainMinMover.hh
>
16
17
// Project headers
18
#include <
protocols/scoring/Interface.hh
>
19
20
#include <
core/types.hh
>
21
22
#include <
core/pack/task/PackerTask.hh
>
23
#include <
core/pack/task/TaskFactory.hh
>
24
25
#include <
core/pose/Pose.hh
>
26
#include <
core/kinematics/MoveMap.hh
>
27
// AUTO-REMOVED #include <core/kinematics/FoldTree.hh>
28
// AUTO-REMOVED #include <basic/options/option.hh>
29
// AUTO-REMOVED #include <basic/options/keys/docking.OptionKeys.gen.hh>
30
#include <
core/scoring/ScoreFunction.hh
>
31
#include <
core/scoring/ScoreFunctionFactory.hh
>
32
#include <
core/pose/symmetry/util.hh
>
33
// AUTO-REMOVED #include <core/conformation/symmetry/util.hh>
34
35
#include <
protocols/moves/Mover.hh
>
36
#include <
protocols/simple_moves/symmetry/SymMinMover.hh
>
37
38
// Utility Headers
39
#include <basic/Tracer.hh>
40
41
#include <utility/vector1.hh>
42
43
44
using
basic::T
;
45
using
basic::Error;
46
using
basic::Warning;
47
48
static
basic::Tracer
TR
(
"protocols.docking.SymSidechainMinMover"
);
49
50
namespace
protocols {
51
namespace
symmetric_docking {
52
53
//default constructor
54
SymSidechainMinMover::SymSidechainMinMover
() : moves::Mover()
55
{
56
Mover::type(
"SymSidechainMin"
);
57
update_movemap_
=
true
;
58
set_default_options
();
59
}
60
61
//construtor with arguments
62
SymSidechainMinMover::SymSidechainMinMover
(
core::scoring::ScoreFunctionCOP
scorefxn_in) : moves::Mover(), scorefxn_(scorefxn_in)
63
{
64
Mover::type(
"SymSidechainMin"
);
65
set_default_options
();
66
}
67
68
//construtor with arguments
69
SymSidechainMinMover::SymSidechainMinMover
(
70
core::scoring::ScoreFunctionCOP
scorefxn_in,
71
core::kinematics::MoveMapOP
movemap_in
72
) : moves::Mover(), scorefxn_(scorefxn_in), movemap_(movemap_in), update_movemap_(false)
73
{
74
Mover::type(
"SymSidechainMin"
);
75
set_default_options
();
76
}
77
78
//constructor with arguments
79
SymSidechainMinMover::SymSidechainMinMover
(
80
core::scoring::ScoreFunctionCOP
scorefxn_in,
81
core::pack::task::PackerTaskOP
task_in) : moves::Mover(), scorefxn_(scorefxn_in), task_(task_in), update_movemap_(true)
82
{
83
Mover::type(
"SymSidechainMin"
);
84
set_default_options
();
85
}
86
87
//constructor with arguments
88
SymSidechainMinMover::SymSidechainMinMover
(
89
core::scoring::ScoreFunctionCOP
scorefxn_in,
90
core::pack::task::TaskFactoryOP
tf_in) : moves::Mover(), scorefxn_(scorefxn_in), tf_(tf_in), update_movemap_(true)
91
{
92
Mover::type(
"SymSidechainMin"
);
93
set_default_options
();
94
}
95
96
//destructor
97
SymSidechainMinMover::~SymSidechainMinMover
() {}
98
99
void
SymSidechainMinMover::set_minmover
(
protocols::simple_moves::MinMoverOP
minmover_in ){
minmover_
= minmover_in; }
100
101
//default options setup for SymSidechainMinMover
102
void
SymSidechainMinMover::set_default_options
()
103
{
104
if
(
update_movemap_
){
105
movemap_
=
new
core::kinematics::MoveMap
();
106
movemap_
->set_chi(
true
);
107
}
108
scorefxn_
=
core::scoring::ScoreFunctionFactory::create_score_function
(
"standard"
);
109
minmover_
=
new
simple_moves::symmetry::SymMinMover
(
movemap_
,
scorefxn_
,
"dfpmin_armijo_nonmonotone"
, 0.01,
true
/*nblist*/
,
false
/*deriv_check*/
);
110
}
111
112
std::string
113
SymSidechainMinMover::get_name
()
const
{
114
return
"SidechainMin"
;
115
}
116
117
//SymSidechainMinMover updates the movemap based on a packer task
118
void
SymSidechainMinMover::update_movemap
(
core::pose::Pose
& pose)
119
{
120
movemap_
->set_chi(
true
);
121
if
(
tf_
)
task_
=
tf_
->create_task_and_apply_taskoperations( pose );
122
if
(
task_
){
123
for
(
Size
i = 1; i <= pose.
total_residue
(); i++){
124
if
(!
task_
->nonconst_residue_task(i).being_packed())
movemap_
->set_chi(i,
false
);
125
}
126
}
127
}
128
129
//SymSidechainMinMover apply function
130
void
SymSidechainMinMover::apply
(
core::pose::Pose
& pose )
131
{
132
//runtime_assert(pose.is_fullatom());
133
if
(
update_movemap_
)
update_movemap
( pose );
134
core::pose::symmetry::make_symmetric_movemap
(pose, *
movemap_
);
135
minmover_
->apply( pose );
136
}
137
138
//constructor
139
SymInterfaceSidechainMinMover::SymInterfaceSidechainMinMover
() :
SymSidechainMinMover
(), interface_dist_(8.0)
140
{
141
Mover::type(
"SymInterfaceSidechainMinMover"
);
142
set_default_options
();
143
}
144
145
SymInterfaceSidechainMinMover::SymInterfaceSidechainMinMover
(
146
core::scoring::ScoreFunctionCOP
scorefxn_in,
147
core::Real
interface_dist_in
148
) :
SymSidechainMinMover
(scorefxn_in), interface_dist_(interface_dist_in)
149
{
150
Mover::type(
"SymInterfaceSidechainMin"
);
151
set_default_options
();
152
}
153
154
//destructor
155
SymInterfaceSidechainMinMover::~SymInterfaceSidechainMinMover
() {}
156
157
void
SymInterfaceSidechainMinMover::set_interface_dist
(
core::Real
interface_dist_in)
158
{
159
interface_dist_
= interface_dist_in;
160
interface_
->distance(
interface_dist_
);
161
}
162
163
//default options setup for SymInterfaceSidechainMinMover
164
void
165
SymInterfaceSidechainMinMover::set_default_options
()
166
{
167
interface_
=
new
protocols::scoring::Interface
( 1 );
168
169
}
170
171
//apply function for SymInterfaceSidechainMinMover
172
void
173
SymInterfaceSidechainMinMover::apply
(
core::pose::Pose
& pose )
174
{
175
//reset movemap
176
movemap_
->set_bb(
false
);
177
movemap_
->set_jump(
false
);
178
movemap_
->set_chi(
false
);
179
180
core::pose::symmetry::make_symmetric_movemap
(pose, *
movemap_
);
181
182
//calculate interface
183
interface_
->calculate( pose );
184
185
minmover_
->apply(pose);
186
187
}
188
189
std::string
190
SymInterfaceSidechainMinMover::get_name
()
const
{
191
return
"SymInterfaceSidechainMin"
;
192
}
193
194
}
// docking
195
}
// protocols
Generated on Sat Jun 1 2013 12:20:39 for Rosetta 3.5 by
1.8.4