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
backrub
BackrubSegment.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/backrub/BackrubSegment.hh
11
/// @brief definition/implmentation of BackrubSegment class
12
/// @author Colin A. Smith (colin.smith@ucsf.edu)
13
14
15
#ifndef INCLUDED_protocols_backrub_BackrubSegment_hh
16
#define INCLUDED_protocols_backrub_BackrubSegment_hh
17
18
// Core Headers
19
#include <
core/kinematics/tree/Atom.fwd.hh
>
20
#include <
core/pose/Pose.fwd.hh
>
21
#include <
core/id/AtomID.hh
>
22
#include <
core/types.hh
>
23
24
// Protocols Headers
25
26
// Utility Headers
27
#include <utility/keys/Key3Vector.fwd.hh>
28
29
#include <utility/vector1.hh>
30
31
32
// C++ Headers
33
34
namespace
protocols {
35
namespace
backrub {
36
37
/// @brief a class for holind information about individual backrub segments
38
class
BackrubSegment
{
39
40
public
:
41
42
typedef
utility::keys::Key3Vector<core::id::AtomID>
BondAngleKey
;
43
44
BackrubSegment
(
45
core::id::AtomID
start_atomid
,
46
core::id::AtomID
start_atomid1
,
47
core::id::AtomID
start_atomid2
,
48
core::id::AtomID
end_atomid
,
49
core::Size
size
,
50
core::Real
max_angle_disp
51
):
52
start_atomid_
(start_atomid),
53
start_atomid1_
(start_atomid1),
54
start_atomid2_
(start_atomid2),
55
end_atomid_
(end_atomid),
56
size_
(size),
57
max_angle_disp_
(max_angle_disp),
58
angle_disp_
(0)
59
{}
60
61
/// @brief get AtomID of starting atom
62
core::id::AtomID
63
start_atomid
()
const
64
{
65
return
start_atomid_
;
66
}
67
68
/// @brief get AtomID of first atom along the path from start to end
69
core::id::AtomID
70
start_atomid1
()
const
71
{
72
return
start_atomid1_
;
73
}
74
75
/// @brief get AtomID of second atom along the path from start to end
76
core::id::AtomID
77
start_atomid2
()
const
78
{
79
return
start_atomid2_
;
80
}
81
82
/// @brief get AtomID of starting atom
83
core::id::AtomID
84
end_atomid
()
const
85
{
86
return
end_atomid_
;
87
}
88
89
/// @brief get the segment size
90
core::Size
91
size
()
const
92
{
93
return
size_
;
94
}
95
96
/// @brief get mainchain atom tree atoms 1 bond away from the start pivot
97
void
98
start_atoms1
(
99
core::pose::Pose
const
& pose,
100
core::kinematics::tree::AtomCOP
& start_atom_m1,
101
core::kinematics::tree::AtomCOP
& start_atom,
102
core::kinematics::tree::AtomCOP
& start_atom_p1
103
)
const
;
104
105
/// @brief get mainchain atom tree atoms 2 bonds away from the start pivot
106
void
107
start_atoms2
(
108
core::pose::Pose
const
& pose,
109
core::kinematics::tree::AtomCOP
& start_atom_m2,
110
core::kinematics::tree::AtomCOP
& start_atom_m1,
111
core::kinematics::tree::AtomCOP
& start_atom,
112
core::kinematics::tree::AtomCOP
& start_atom_p1,
113
core::kinematics::tree::AtomCOP
& start_atom_p2
114
)
const
;
115
116
/// @brief get a key representing the starting mainchain bond angle atoms
117
BondAngleKey
118
start_bond_angle_key
(
119
core::pose::Pose
const
& pose
120
);
121
122
/// @brief get mainchain atom tree atoms 1 bond away from the end pivot
123
void
124
end_atoms1
(
125
core::pose::Pose
const
& pose,
126
core::kinematics::tree::AtomCOP
& end_atom_m1,
127
core::kinematics::tree::AtomCOP
& end_atom,
128
core::kinematics::tree::AtomCOP
& end_atom_p1
129
)
const
;
130
131
/// @brief get mainchain atom tree atoms 2 bonds away from the end pivot
132
void
133
end_atoms2
(
134
core::pose::Pose
const
& pose,
135
core::kinematics::tree::AtomCOP
& end_atom_m2,
136
core::kinematics::tree::AtomCOP
& end_atom_m1,
137
core::kinematics::tree::AtomCOP
& end_atom,
138
core::kinematics::tree::AtomCOP
& end_atom_p1,
139
core::kinematics::tree::AtomCOP
& end_atom_p2
140
)
const
;
141
142
/// @brief get a key representing the ending mainchain bond angle atoms
143
BondAngleKey
144
end_bond_angle_key
(
145
core::pose::Pose
const
& pose
146
);
147
148
/// @brief get the current bond angle atoms referred to by a key
149
static
150
void
151
bond_angle_atoms
(
152
core::pose::Pose
const
& pose,
153
BackrubSegment::BondAngleKey
bond_angle_key,
154
core::kinematics::tree::AtomCOP
& atom_m1,
155
core::kinematics::tree::AtomCOP
& atom,
156
core::kinematics::tree::AtomCOP
& atom_p1
157
);
158
159
/// @brief get maximum angular displacement
160
core::Real
161
max_angle_disp
()
const
162
{
163
return
max_angle_disp_
;
164
}
165
166
/// @brief get overall angular displacement
167
core::Real
168
angle_disp
()
const
169
{
170
return
angle_disp_
;
171
}
172
173
private
:
174
175
core::id::AtomID
start_atomid_
;
176
core::id::AtomID
start_atomid1_
;
177
core::id::AtomID
start_atomid2_
;
178
core::id::AtomID
end_atomid_
;
179
core::Size
size_
;
180
core::Real
max_angle_disp_
;
181
core::Real
angle_disp_
;
182
// to be implemented
183
//utility::histogram<float> > attempted_moves_;
184
//utility::histogram<float> > accepted_moves_;
185
};
186
187
}
// moves
188
}
// protocols
189
190
#endif
Generated on Sat Jun 1 2013 11:43:27 for Rosetta 3.5 by
1.8.4