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
movers
PlaceStubMover.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/protein_interface_design/movers/PlaceStubMover.hh
11
/// @brief definition of classes for grafting hotspots into a pose
12
/// @author Sarel Fleishman (sarelf@u.washington.edu), Jacob Corn (jecorn@u.washington.edu), Eva-Maria Strauch (evas01@u.washington.edu)
13
14
#ifndef INCLUDED_protocols_protein_interface_design_movers_PlaceStubMover_hh
15
#define INCLUDED_protocols_protein_interface_design_movers_PlaceStubMover_hh
16
#include <
protocols/protein_interface_design/movers/PlaceStubMover.fwd.hh
>
17
18
// Project Headers
19
#include <
core/scoring/ScoreFunction.fwd.hh
>
20
#include <
core/pose/Pose.fwd.hh
>
21
#include <
core/types.hh
>
22
#include <
protocols/hotspot_hashing/HotspotStubSet.hh
>
23
#include <utility/tag/Tag.fwd.hh>
24
#include <
protocols/moves/Mover.fwd.hh
>
25
#include <
core/pack/task/PackerTask.fwd.hh
>
26
#include <
core/scoring/constraints/HarmonicFunc.fwd.hh
>
27
#include <
protocols/moves/DataMapObj.hh
>
28
// C++ headers
29
30
// Unit headers
31
#include <
protocols/moves/DataMap.fwd.hh
>
32
33
#include <
core/kinematics/FoldTree.fwd.hh
>
34
#include <utility/vector1.hh>
35
36
//Auto Headers
37
#include <
protocols/simple_moves/DesignRepackMover.hh
>
38
39
40
41
namespace
protocols {
42
namespace
protein_interface_design {
43
namespace
movers {
44
45
/// @brief choose a stub based on mc sampling, and place it on the pose.
46
/// Iterates over stubs until one matches criteria.
47
class
PlaceStubMover
:
public
simple_moves::DesignRepackMover
48
{
49
public
:
50
// used to define pairs of design/repack movers with an associated bool that
51
// determines whether to use the stub-based foldtree with cuts etc., or to
52
// use the default foldtree
53
typedef
std::pair< simple_moves::DesignRepackMoverOP, bool >
DesignMoverFoldTreePair
;
54
typedef
std::pair< simple_moves::DesignRepackMoverOP, core::Real >
DesignMoverRealPair
;
55
public
:
56
PlaceStubMover
();
57
58
PlaceStubMover
(
59
protocols::hotspot_hashing::HotspotStubSetOP
stub_set,
60
core::Real
score_threshold,
61
core::Size
const
host_chain,
62
protocols::filters::FilterOP
final_filter,
63
bool
const
hurry=
false
,
64
bool
const
triage_positions=
true
,
65
core::Real
stub_energy_threshold = 1.0
66
);
67
virtual
~PlaceStubMover
();
68
69
protocols::moves::MoverOP
clone
()
const
;
70
protocols::moves::MoverOP
fresh_instance
()
const
{
71
return
protocols::moves::MoverOP
(
new
PlaceStubMover
);
72
}
73
74
void
stub_minimize_movers
(
utility::vector1< DesignMoverRealPair >
const
& dmrp ) {
75
stub_minimize_movers_
= dmrp;
76
}
77
78
utility::vector1< DesignMoverRealPair >
const
&
79
stub_minimize_movers
()
const
80
{
return
stub_minimize_movers_
; }
81
82
virtual
void
apply
(
core::pose::Pose
& pose );
83
virtual
std::string
get_name
()
const
;
84
virtual
void
parse_my_tag
(
utility::tag::TagPtr
const
tag,
85
protocols::moves::DataMap
&,
86
protocols::filters::Filters_map
const
&,
87
protocols::moves::Movers_map
const
&,
88
core::pose::Pose
const
& );
89
90
private
:
// member functions
91
void
92
place_stub
(
core::pose::Pose
& pose,
core::conformation::Residue
const
res_stub,
core::Size
const
res_num );
93
94
void
stub_based_atom_tree
(
core::pose::Pose
& pose,
core::conformation::Residue
const
res_stub,
core::Real
const
cst_sdev );
95
96
bool
SelectStubIteratively
( protocols::hotspot_hashing::HotspotStubSet::Hs_vec::const_iterator stub_it );
97
98
bool
StubMinimize
(
core::pose::Pose
& pose,
99
protocols::hotspot_hashing::HotspotStubCOP
= NULL,
100
core::Size
const
host_res = 0,
101
bool
const
hurry =
false
);
102
void
refresh_coordinate_constraints
(
core::pose::Pose
& pose,
core::Real
const
sdev );
103
104
/// @brief resets pose's constraints upon stub failure
105
/// remove constraints if they exist. To be used on failure
106
void
cst_cleanup
(
core::pose::Pose
& pose );
107
/// clean everything before exiting
108
void
final_cleanup
(
core::pose::Pose
& pose );
109
110
private
:
// data members
111
/// maximum bonus_value for accepting a stub
112
core::Real
score_threshold_
;
// dflt 0.0
113
///where is the stub to be placed
114
core::Size
host_chain_
;
// dflt 2
115
/// stub set we're choosing from
116
protocols::hotspot_hashing::HotspotStubSetOP
stub_set_
;
117
/// or use fold tree rb jump.
118
bool
add_constraints_
;
/// dflt false
119
/// what std to use for coordinate cst in each design mover
120
utility::vector1< core::Real >
coord_cst_std_
;
121
/// Locations where stubs are not allowed to be placed
122
/// @note This is similar to DesignRepackMover::prevent_repacking() but
123
/// we want to allow repacking at steps after stub placement.
124
utility::vector1< core::Real >
disallowed_host_pos_
;
125
/// movers for stub minimization, vector of pairs of movers and whether or not
126
/// to apply bb constraints during the mover
127
utility::vector1< DesignMoverRealPair >
stub_minimize_movers_
;
128
///utility::vector1< core::Real > coord_cst_std_stub_minimize_;
129
utility::vector1< DesignMoverFoldTreePair >
design_movers_
;
130
///immediately after placement + minimization
131
protocols::filters::FilterOP
after_placement_filter_
;
132
/// a filter at the last stage of placement. Defaults to TrueFilter
133
protocols::filters::FilterOP
final_filter_
;
134
core::scoring::constraints::HarmonicFuncOP
coord_cst_func_
;
135
/// where stubs were placed and whether they use constraints. vector is
136
/// necessary to maintain the order of the placed stubs
137
utility::vector1< std::pair< core::Size, bool >
>
placed_stubs_
;
138
139
/// this is the foldtree with which we come into the first PlaceStubMover.
140
/// It will be passed between movers for the user to decide that it should be used.
141
core::kinematics::FoldTreeOP
default_fold_tree_
;
142
/// saves the coordinate constraints that this mover has associated with the
143
/// pose. At the end of the run, they should be removed
144
core::scoring::constraints::ConstraintCOPs
curr_coordinate_constraints_
;
145
bool
leave_coord_csts_after_placement_
;
//defaults to false
146
core::Real
post_placement_sdev_
;
//If coord_csts are left on, what should the sdev be? defaults to 1.0
147
148
core::scoring::constraints::ConstraintCOPs
previous_coordinate_constraints_
;
149
core::scoring::constraints::ConstraintCOPs
saved_bb_constraints_
;
150
utility::vector1< core::Size >
saved_prevent_repacking_
;
151
utility::vector1< std::pair< core::Size, bool >
>
saved_placed_stubs_
;
152
153
/// use inverse rotamers to place the scaffold
154
bool
place_scaffold_
;
//dflt false
155
/// the maximum distance for a stub to be considered a a neighbour to a host residue
156
core::Real
max_cb_cb_dist_
;
// dflt 4.0
157
/// Should we speed up StubMinimize at the expense of accuracy?
158
bool
hurry_
;
//dflt true
159
/// Should we triage host positions based on smart criteria, such as current position?
160
/// Leave false if partners have not already been docked.
161
bool
triage_positions_
;
//dflt true
162
/// Maximum per-residue energy the placed stub can have to be saved
163
core::Real
stub_energy_threshold_
;
164
/// This task factory is used by placed stubs to add prevent repacking instructions to design movers that
165
/// would be invoked *after* PlaceStub finishes successfully. It's a way to communicate the placements that
166
/// should not be changed to design movers down stream. Note that this is a different implementation than
167
/// the one used in PlaceSimultaneously.
168
core::pack::task::TaskFactoryOP
residue_level_tasks_for_placed_hotspots_
;
169
utility::pointer::owning_ptr< protocols::moves::DataMapObj< utility::vector1< core::Size >
> >
residue_numbers_
;
/// dflt NULL; a vector of residue numbers placed on the DataMap which specifies all the placed residues. Useful to communicate between movers and filters, without the pesky NotifyMovers strategy
170
std::string
user_defined_name_
;
// reserved for keeping the name of the current stub placement mover
171
};
172
173
}
//movers
174
}
//protein_interface_design
175
}
//protocols
176
177
#endif
/*INCLUDED_protocols_protein_interface_design_movers_PlaceStubMover_HH*/
178
Generated on Sat Jun 1 2013 12:06:18 for Rosetta 3.5 by
1.8.4