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
protein_interface_design
filters
BindingStrainFilter.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 sw=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
/// @author Sarel Fleishman (sarelf@uw.edu)
11
#include <
protocols/protein_interface_design/filters/BindingStrainFilter.hh
>
12
#include <
protocols/protein_interface_design/filters/BindingStrainFilterCreator.hh
>
13
#include <
protocols/rigid/RigidBodyMover.hh
>
14
#include <
core/scoring/ScoreFunction.hh
>
15
#include <
core/scoring/ScoreType.hh
>
16
#include <
core/pack/task/PackerTask.hh
>
17
#include <
core/pack/task/TaskFactory.hh
>
18
#include <
protocols/moves/Mover.hh
>
19
#include <
core/pack/pack_rotamers.hh
>
20
#include <
protocols/simple_moves/PackRotamersMover.hh
>
21
#include <
protocols/simple_moves/symmetry/SymPackRotamersMover.hh
>
22
#include <
core/pose/symmetry/util.hh
>
23
#include <
core/pose/Pose.hh
>
24
#include <utility/tag/Tag.hh>
25
#include <
protocols/filters/Filter.hh
>
26
// AUTO-REMOVED #include <protocols/moves/DataMap.hh>
27
#include <basic/Tracer.hh>
28
#include <
protocols/rosetta_scripts/util.hh
>
29
30
// AUTO-REMOVED #include <core/id/types.hh>
31
#include <utility/vector0.hh>
32
#include <utility/vector1.hh>
33
34
//Auto Headers
35
#include <
protocols/simple_filters/ScoreTypeFilter.hh
>
36
37
38
39
namespace
protocols {
40
namespace
protein_interface_design{
41
namespace
filters {
42
43
static
basic::Tracer
TR
(
"protocols.protein_interface_design.filters.BindingStrainFilter"
);
44
45
///@brief default ctor
46
BindingStrainFilter::BindingStrainFilter
() :
47
parent
(
"BindingStrain"
),
48
task_factory_( NULL ),
49
scorefxn_( NULL ),
50
relax_mover_( NULL ),
51
jump_( 1 ),
52
threshold_( 3.0 )
53
{}
54
55
core::Size
56
BindingStrainFilter::jump
()
const
{
57
return
jump_
;
58
}
59
60
void
61
BindingStrainFilter::jump
(
core::Size
const
j ){
62
jump_
= j;
63
}
64
65
core::pack::task::TaskFactoryOP
66
BindingStrainFilter::task_factory
()
const
{
67
return
task_factory_
;
68
}
69
70
void
71
BindingStrainFilter::task_factory
(
core::pack::task::TaskFactoryOP
task ){
72
task_factory_
= task;
73
}
74
75
core::scoring::ScoreFunctionOP
76
BindingStrainFilter::scorefxn
()
const
{
77
return
scorefxn_
;
78
}
79
80
void
81
BindingStrainFilter::scorefxn
(
core::scoring::ScoreFunctionOP
scorefxn ){
82
scorefxn_
=
scorefxn
;
83
}
84
85
core::Real
86
BindingStrainFilter::threshold
()
const
{
87
return
threshold_
;
88
}
89
90
void
91
BindingStrainFilter::threshold
(
core::Real
const
t
){
92
threshold_
=
t
;
93
}
94
95
bool
96
BindingStrainFilter::apply
(
core::pose::Pose
const
& pose )
const
97
{
98
core::Real
const
strain(
compute
( pose ) );
99
return
( strain <=
threshold
() );
100
}
101
102
void
103
BindingStrainFilter::unbind
(
core::pose::Pose
& pose )
const
{
104
protocols::rigid::RigidBodyTransMover
rbtm( pose,
jump
() );
105
rbtm.
step_size
( 10000.0 );
106
rbtm.
apply
( pose );
107
}
108
109
core::Real
110
BindingStrainFilter::compute
(
core::pose::Pose
const
& p )
const
{
111
using namespace
core::pack;
112
using namespace
core::pack::task;
113
114
PackerTaskOP
pack =
task_factory
()->create_task_and_apply_taskoperations( p );
115
pack->restrict_to_repacking();
116
pack->initialize_from_command_line();
117
protocols::simple_filters::ScoreTypeFilter
const
stf(
scorefxn
(),
core::scoring::total_score
, 0.0 );
118
core::pose::Pose
pose( p );
119
unbind
( pose );
120
core::Real
const
energy_before_pack( stf.
compute
( pose ));
121
122
protocols::simple_moves::PackRotamersMoverOP
prm;
123
if
(
core::pose::symmetry::is_symmetric
( pose ) )
124
prm =
new
protocols::simple_moves::symmetry::SymPackRotamersMover
(
scorefxn
(), pack );
125
else
126
prm =
new
protocols::simple_moves::PackRotamersMover
(
scorefxn
(), pack );
127
prm->apply( pose );
128
core::Real
const
energy_after_pack( stf.
compute
( pose ) );
129
return
( energy_before_pack - energy_after_pack );
130
}
131
132
core::Real
133
BindingStrainFilter::report_sm
(
core::pose::Pose
const
& pose )
const
134
{
135
return
(
compute
( pose ) );
136
}
137
138
void
139
BindingStrainFilter::report
( std::ostream & out,
core::pose::Pose
const
& pose )
const
140
{
141
out<<
"BindingStrainFilter returns "
<<
compute
( pose )<<std::endl;
142
}
143
144
void
145
BindingStrainFilter::parse_my_tag
(
utility::tag::TagPtr
const
tag,
146
protocols::moves::DataMap
& data,
147
protocols::filters::Filters_map
const
&,
148
protocols::moves::Movers_map
const
& movers,
149
core::pose::Pose
const
& )
150
{
151
using namespace
protocols::rosetta_scripts;
152
TR
<<
"BindingStrainFilter"
<<std::endl;
153
task_factory
(
parse_task_operations
( tag, data ) );
154
scorefxn
(
parse_score_function
( tag, data ) );
155
jump
( tag->getOption<
core::Size
>(
"jump"
, 1 ) );
156
runtime_assert(
jump
() > 0 );
157
threshold
( tag->getOption<
core::Real
>(
"threshold"
, 3.0 ));
158
relax_mover
(
protocols::rosetta_scripts::parse_mover
( tag->getOption<
std::string
>(
"relax_mover"
,
"null"
), movers ) );
159
160
TR
<<
"with options jump: "
<<
jump
()<<
" and strain threshold: "
<<
threshold
()<<std::endl;
161
}
162
163
protocols::filters::FilterOP
164
BindingStrainFilter::fresh_instance
()
const
{
165
return
new
BindingStrainFilter
();
166
}
167
168
BindingStrainFilter::~BindingStrainFilter
(){}
169
170
protocols::filters::FilterOP
171
BindingStrainFilter::clone
()
const
{
172
return
new
BindingStrainFilter
( *
this
);
173
}
174
175
protocols::filters::FilterOP
176
BindingStrainFilterCreator::create_filter
()
const
{
return
new
BindingStrainFilter
; }
177
178
std::string
179
BindingStrainFilterCreator::keyname
()
const
{
return
"BindingStrain"
; }
180
181
protocols::moves::MoverOP
182
BindingStrainFilter::relax_mover
()
const
{
183
return
relax_mover_
;
184
}
185
186
void
187
BindingStrainFilter::relax_mover
(
protocols::moves::MoverOP
const
m ){
188
relax_mover_
= m;
189
}
190
191
}
// filters
192
}
// protein_interface_design
193
}
// protocols
Generated on Sat Jun 1 2013 12:03:11 for Rosetta 3.5 by
1.8.4