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
features
helixAssembly
HelixBundleFeatures.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
// :notabs=false:tabSize=4:indentsize=4:
4
//
5
// (c) copyright rosetta commons member institutions.
6
// (c) this file is part of the rosetta software suite and is made available under license.
7
// (c) the rosetta software is developed by the contributing members of the rosetta commons.
8
// (c) for more information, see http://www.rosettacommons.org. questions about this can be
9
// (c) addressed to university of washington uw techtransfer, email: license@u.washington.edu.
10
11
/// @file HelixBundleFeatures.hh
12
/// @brief
13
/// @author Tim Jacobs
14
15
#ifndef INCLUDED_protocols_features_helixAssembly_HelixBundleFeatures_hh
16
#define INCLUDED_protocols_features_helixAssembly_HelixBundleFeatures_hh
17
18
//Unit
19
#include <
protocols/features/helixAssembly/HelixBundleFeatures.fwd.hh
>
20
21
//External
22
#include <boost/uuid/uuid.hpp>
23
24
//Protocols
25
#include <
protocols/features/FeaturesReporter.hh
>
26
#include <
protocols/simple_filters/InterfaceSasaFilter.hh
>
27
28
//Devel
29
#include <
protocols/features/helixAssembly/HelicalFragment.hh
>
30
31
//Utility
32
#include <utility/vector1.hh>
33
34
namespace
protocols {
35
namespace
features {
36
namespace
helixAssembly {
37
38
struct
FragmentPair
39
{
40
FragmentPair
(
HelicalFragmentOP
frag1,
HelicalFragmentOP
frag2):
41
fragment_1
(frag1),
42
fragment_2
(frag2)
43
{}
44
45
HelicalFragmentOP
fragment_1
;
46
HelicalFragmentOP
fragment_2
;
47
48
core::Real
end_1_distance
;
49
core::Real
end_2_distance
;
50
core::Real
fa_attr
;
51
core::Real
fa_fraction
;
52
core::Real
crossing_angle
;
53
};
54
55
class
HelixBundleFeatures
:
public
protocols::features::FeaturesReporter
56
{
57
58
public
:
59
60
HelixBundleFeatures
();
61
62
virtual
63
std::string
64
type_name
()
const
{
65
return
"HelixBundleFeatures"
;
66
};
67
68
///@brief generate the table schemas and write them to the database
69
virtual
70
void
71
write_schema_to_db
(
72
utility::sql_database::sessionOP db_session
73
)
const
;
74
75
virtual
76
void
77
parse_my_tag
(
78
utility::tag::TagPtr
const
tag,
79
protocols::moves::DataMap
& data,
80
protocols::filters::Filters_map
const
&
/*filters*/
,
81
protocols::moves::Movers_map
const
&
/*movers*/
,
82
core::pose::Pose
const
& pose
83
);
84
85
///@brief return the set of features reporters that are required to
86
///also already be extracted by the time this one is used.
87
utility::vector1<std::string>
88
features_reporter_dependencies
()
const
;
89
90
bool
91
valid_frag_set
(
92
std::set<HelicalFragmentOP>
const
& frag_set
93
);
94
95
bool
96
check_cap_distances
(
97
core::pose::Pose
const
& pose,
98
utility::vector1<HelicalFragmentOP>
const
& frag_set
99
);
100
101
///@brief collect all the feature data for the pose
102
virtual
103
core::Size
104
report_features
(
105
core::pose::Pose
const
& pose,
106
utility::vector1<bool>
const
& relevant_residues,
107
boost::uuids::uuid struct_id,
108
utility::sql_database::sessionOP db_session
109
);
110
111
utility::vector1<HelicalFragmentOP>
112
get_helix_fragments
(
113
boost::uuids::uuid struct_id,
114
utility::sql_database::sessionOP db_session
115
);
116
117
void
118
calc_pc_and_com
(
119
core::pose::Pose
const
& pose,
120
HelicalFragmentOP
fragment
121
);
122
123
///@brief create a bundle-pose from the combination of fragments
124
/// and record the "interface" SASA for each helix against the
125
/// rest of the bundle
126
void
127
record_helix_sasas
(
128
core::pose::Pose
const
& pose,
129
std::set<HelicalFragmentOP>
const
& frag_set
130
);
131
132
utility::vector1<FragmentPair>
133
get_helix_pairs
(
134
core::pose::Pose
const
& pose,
135
utility::vector1<HelicalFragmentOP>
helix_fragments
136
);
137
138
///@brief calculate the shared fa_attr for each pair of helices
139
/// in the bundle
140
void
141
calc_fa_energy
(
142
core::pose::Pose
const
& pose,
143
FragmentPair
& fragment_pair
144
);
145
146
///@brief calculate the crossing angles of the helix fragment in the bundle set
147
void
148
calc_crossing_angles
(
149
core::pose::Pose
const
& pose,
150
FragmentPair
& fragment_pair
151
);
152
153
private
:
154
155
//Maximum allowable distance, in angstroms, between any two helix ends
156
core::Real
helix_cap_dist_cutoff_
;
157
158
//number of helices in the bundle
159
core::Size
bundle_size_
;
160
161
//number of residues in each helix
162
core::Size
helix_size_
;
163
164
//minimum residue_normalized fa_attr between two helix fragments in order to be considered
165
//interacting
166
core::Real
min_per_residue_fa_attr_
;
167
168
//minimum fraction of
169
core::Real
min_interacting_set_fraction_
;
170
171
//maximum degrees off parallel for crossing angle
172
core::Real
max_degrees_off_parallel_
;
173
174
protocols::simple_filters::InterfaceSasaFilter
sasa_filter_
;
175
176
core::scoring::ScoreFunctionOP
scorefxn_
;
177
};
178
179
}
//namespace helixAssembly
180
}
//namespace features
181
}
//namespace protocols
182
183
#endif
Generated on Sat Jun 1 2013 11:49:09 for Rosetta 3.5 by
1.8.4