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
fldsgn
topology
HelixPairing.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
// This file is part of the Rosetta software suite and is made available under license.
5
// The Rosetta software is developed by the contributing members of the Rosetta Commons consortium.
6
// Copyright in the Rosetta software belongs to the developers and their institutions.
7
// For more information, see www.rosettacommons.org.
8
9
/// @file ./src/protocols/fldsgn/topology/HelixPairing.hh
10
/// @brief header file of HelixPairing.cc
11
/// @author Nobuyasu Koga ( nobuyasu@u.washington.edu )
12
13
#ifndef INCLUDED_protocols_fldsgn_topology_HelixPairing_hh
14
#define INCLUDED_protocols_fldsgn_topology_HelixPairing_hh
15
16
// Unit headers
17
#include <
protocols/fldsgn/topology/HelixPairing.fwd.hh
>
18
19
// Project headers
20
#include <
core/types.hh
>
21
#include <
protocols/fldsgn/topology/SS_Info2.fwd.hh
>
22
23
// Utility headers
24
#include <utility/pointer/ReferenceCount.hh>
25
26
#include <utility/vector1.hh>
27
#include <string>
28
29
30
namespace
protocols {
31
namespace
fldsgn {
32
namespace
topology {
33
34
class
HelixPairing
:
public
utility::pointer::ReferenceCount
{
35
public
:
36
37
typedef
std::string
String
;
38
typedef
core::Size
Size
;
39
typedef
core::Real
Real
;
40
typedef
core::Vector
Vector
;
41
typedef
protocols::fldsgn::topology::SS_Info2_COP
SS_Info2_COP
;
42
43
public
:
// construct/destruct
44
45
46
/// @brief default constructor
47
HelixPairing
();
48
49
/// @brief value constructor
50
HelixPairing
(
51
Size
const
h1
,
52
Size
const
h2
,
53
char
const
o
54
);
55
56
57
/// @brief copy constructor
58
HelixPairing
(
String
const
& hp );
59
60
/// @brief copy constructor
61
HelixPairing
(
HelixPairing
const
& hp );
62
63
/// @brief default destructor
64
virtual
~HelixPairing
();
65
66
/// @brief clone this object
67
HelixPairingOP
clone
();
68
69
/// @brief return strand pairing
70
friend
71
std::ostream &
operator<<
(std::ostream & out,
const
HelixPairing
&hp);
72
73
74
public
:
//accessors
75
76
77
/// @brief the strand number of the 1st strand in strand pairing
78
inline
Size
h1
()
const
{
return
h1_
; }
79
80
/// @brief the strand number of the 2nd strand in strand pairing
81
inline
Size
h2
()
const
{
return
h2_
; }
82
83
/// @brief orientation, parallel or anti-parallel, of helix pairing
84
inline
char
orient
()
const
{
return
orient_
; }
85
86
/// @brief HelixPairing is descripbed as s1()-s2().orient()
87
/// For example, 2-3.A means 2nd and 3rd helices make anti-parallel helix_pairing
88
inline
String
name
()
const
{
return
name_
; }
89
90
/// @brief
91
inline
Real
dist
()
const
{
return
dist_
; }
92
93
/// @brief
94
inline
Real
cross_angle
()
const
{
return
cross_angle_
; }
95
96
/// @brief helix angle projected on sheet helices belongs to
97
inline
Real
align_angle
()
const
{
return
align_angle_
; }
98
99
/// @brief is parallel
100
bool
is_parallel
()
const
;
101
102
103
public
:
104
105
/// @brief
106
void
calc_geometry
(
SS_Info2_COP
const
ss_info );
107
108
109
//private: // initialize
110
111
112
void
initialize
();
113
114
115
private
:
// data
116
117
118
/// @brief Helix number of first strand in the strand pair
119
Size
h1_
;
120
121
/// @brief Helix number of second strand in the strand pair
122
Size
h2_
;
123
124
/// @brief two helices make a pair by parallel, "P", anti parallel, "A", and if not defined, "N"
125
char
orient_
;
126
127
/// @brief helix_pairing as in the style: h1_-h2_.orient_
128
String
name_
;
129
130
/// @brief
131
Real
dist_
;
132
133
/// @brief
134
Real
cross_angle_
;
135
136
/// @brief
137
Real
align_angle_
;
138
139
/// @brief
140
Size
loop_length_
;
141
142
143
};
144
145
146
////////////////////////////////////////////////////////////////////////////////////////////////////////////
147
class
HelixPairingSet
:
public
utility::pointer::ReferenceCount
{
148
public
:
// typedef
149
150
151
typedef
std::string
String
;
152
typedef
core::Size
Size
;
153
typedef
protocols::fldsgn::topology::SS_Info2_COP
SS_Info2_COP
;
154
155
public
:
// construct/destruct
156
157
158
/// @brief default constructor
159
HelixPairingSet
();
160
161
/// @brief value constructor
162
HelixPairingSet
(
HelixPairings
const
&
helix_pairings
);
163
164
/// @brief value constructor
165
HelixPairingSet
(
String
const
&
helix_pairings
);
166
167
/// @brief copy constructor
168
HelixPairingSet
(
HelixPairingSet
const
& s );
169
170
/// @brief default destructor
171
virtual
~HelixPairingSet
();
172
173
/// @brief clone this object
174
HelixPairingSetOP
clone
()
const
;
175
176
/// @brief return strand pairing
177
friend
std::ostream &
operator<<
( std::ostream & out,
const
HelixPairingSet
&s );
178
179
180
public
:
// mutators
181
182
183
/// @brief add HelixPairingOP to StrandPairingSet
184
void
push_back
(
HelixPairingOP
const
hop );
185
186
/// @brief clear data of this HelixPairingSet
187
void
clear
();
188
189
190
public
:
// accessors
191
192
193
/// @brief return one of the strand_pairings given a number
194
HelixPairingOP
helix_pairing
(
Size
const
s )
const
;
195
196
/// @brief return the pointer of the helix pairing, given the two helix numbers of h1, and h2
197
/// if h1 and h2 does not make pairing, return 0
198
HelixPairingOP
helix_pairing
(
Size
const
h1
,
Size
const
h2
);
199
200
/// @brief return all helix pairings
201
HelixPairings
const
&
helix_pairings
()
const
;
202
203
/// @brief return the size of helix_pairings_
204
Size
size
()
const
;
205
206
207
public
:
208
209
210
/// @brief calc geomtry of helix pairing
211
void
calc_geometry
(
SS_Info2_COP
ss_info );
212
213
/// @brief the name of HelixPairingSet is expressed by the combination of helix pairings
214
String
name
()
const
;
215
216
217
218
private
:
219
220
221
/// @brief create map _strand_pairings_
222
void
create_map_helix_pairings
();
223
224
225
private
:
// data
226
227
228
/// @brief vector1 including owning pointers of HelixPairing
229
HelixPairings
helix_pairings_
;
230
231
/// @brief the name of HelixPairingSet is expressed by the combination of helix pairings
232
String
hpairset_name_
;
233
234
/// @brief the total number of strands included in HelixPairingSet
235
Size
num_helices_
;
236
237
/// @brief whether the map_helix_pairings_ is initialized or not
238
bool
initialize_map_helix_pairings_
;
239
240
/// @brief 2D table of the pointer of helix pairing, which is sorted by the helix number
241
utility::vector1< utility::vector1< HelixPairingOP >
>
map_helix_pairings_
;
242
243
244
};
// HelixPairingSet
245
246
}
// namespace topology
247
}
// namespace fldsgn
248
}
// namespace protocols
249
250
#endif
Generated on Sat Jun 1 2013 11:50:13 for Rosetta 3.5 by
1.8.4