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
core
io
silent
RNA_SilentStruct.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 core/io/silent/RNA_SilentStruct.hh
12
///
13
/// @brief Representation of rosetta++ RNA silent-file structures.
14
/// @author James Thompson
15
/// @author Rhiju Das
16
17
#ifndef INCLUDED_core_io_silent_RNA_SilentStruct_hh
18
#define INCLUDED_core_io_silent_RNA_SilentStruct_hh
19
20
// mini headers
21
#include <
core/types.hh
>
22
#include <
core/pose/Pose.fwd.hh
>
23
24
// AUTO-REMOVED #include <core/conformation/Residue.fwd.hh>
25
26
#include <
core/io/silent/SilentStruct.hh
>
27
#include <
core/kinematics/FoldTree.hh
>
28
#include <
core/kinematics/Jump.hh
>
29
30
#include <
core/chemical/ResidueTypeSet.fwd.hh
>
31
32
33
// AUTO-REMOVED #include <basic/OStream.fwd.hh>
34
35
// AUTO-REMOVED #include <utility/vector1.hh>
36
#include <utility/pointer/ReferenceCount.hh>
37
38
39
// C++ Headers
40
#include <cstdlib>
41
#include <iostream>
42
#include <cassert>
43
#include <vector>
44
#include <string>
45
#include <map>
46
#include <algorithm>
47
48
#include <utility/vector1.hh>
49
50
51
/////////////////////////////////////////////////////////////////////////
52
// Following should be easy to generalize for protein, RNA, DNA.
53
// This may eventually be critical as we start to look at mixed systems.
54
// For now, just for safety and (perhaps) to avoid confusion,
55
// we'll go ahead and make this a separate class.
56
// -- Rhiju, April 2008
57
/////////////////////////////////////////////////////////////////////////
58
59
namespace
core {
60
namespace
io {
61
namespace
silent {
62
63
class
RNA_SilentStruct
:
public
SilentStruct
{
64
65
public
:
66
67
/// @brief Constructors.
68
RNA_SilentStruct
(
Size
const
nres_in )
69
{
70
nres
( nres_in );
71
fullatom_
=
true
;
72
non_main_chain_sugar_coords_defined_
=
false
;
73
resize
( nres_in );
74
}
75
76
// RNA_SilentStruct( RNA_SilentStruct const & src );
77
78
RNA_SilentStruct
()
79
{
80
nres
( 0 );
81
fullatom_
=
true
;
82
non_main_chain_sugar_coords_defined_
=
false
;
83
decoy_tag
(
"empty"
);
84
}
85
86
RNA_SilentStruct
(
87
core::pose::Pose
const
& pose,
88
std::string
tag =
"empty_tag"
,
89
bool
fa =
true
90
);
91
92
/// @brief Re-dimension the storage capacity of this RNA_SilentStruct to the given number of residues.
93
void
resize
(
94
Size
const
nres_in
95
);
96
97
virtual
SilentStructOP
clone
()
const
{
98
return
new
RNA_SilentStruct
( *
this
);
99
};
100
101
// destructor
102
~RNA_SilentStruct
() {}
103
104
/// @brief Test if this RNA_SilentStruct is equal to the given RNA_SilentStruct in terms of conformation.
105
/// Doesn't check energies.
106
RNA_SilentStruct
&
operator=
(
107
RNA_SilentStruct
const
& src
108
);
109
110
/// @brief Tells this RNA_SilentStruct object to initialize itself from the given set of lines. Lines should
111
/// be of the format
112
virtual
bool
init_from_lines
(
113
utility::vector1< std::string >
const
& lines,
114
SilentFileData
& container
115
);
116
117
/// @brief Configure the conformation of the given Pose with the conformational data within this RNA_SilentStruct.
118
/// Calls pose.clear() and rebuilds Pose from scratch using FA_STANDARD residue types.
119
virtual
void
fill_pose
(
120
core::pose::Pose
& pose
121
)
const
;
122
123
/// @brief Configure the conformation of the given Pose with the conformational data within
124
/// this RNA_SilentStruct. Calls pose.clear() and rebuilds Pose from scratch using the
125
/// user-specified residue types.
126
virtual
void
fill_pose
(
127
core::pose::Pose
& pose,
128
core::chemical::ResidueTypeSet
const
& residue_set
129
)
const
;
130
131
//virtual void fill_pose(
132
// core::pose::Pose & pose,
133
// core::chemical::ResidueTypeSet const & residue_set,
134
// bool const use_input_pose
135
//) const;
136
137
/// @brief opposite of fill_pose
138
virtual
void
fill_struct
(
core::pose::Pose
const
& pose,
std::string
tag );
139
140
/// @brief print header information
141
virtual
void
print_header
( std::ostream& out )
const
;
142
143
/// @brief Prints the conformation information within this RNA_SilentStruct to the given std::ostream.
144
virtual
void
print_conformation
( std::ostream & output )
const
;
145
146
/// @brief data getters/setters
147
bool
fullatom
()
const
{
148
return
fullatom_
;
149
}
150
151
void
fullatom
(
bool
fullatom
) {
152
fullatom_
=
fullatom
;
153
}
154
155
char
secstruct
(
Size
seqpos )
const
{
156
return
secstruct_
[seqpos];
157
}
158
159
utility::vector1< Real >
mainchain_torsions
(
Size
seqpos )
const
{
160
return
mainchain_torsions_
[ seqpos ];
161
}
162
163
utility::vector1< Real >
chi_torsions
(
Size
seqpos )
const
{
164
return
chi_torsions_
[ seqpos ];
165
}
166
167
Real
mainchain_torsion
(
Size
const
& seqpos,
Size
const
& torsion_num )
const
{
168
return
mainchain_torsions_
[ seqpos ][ torsion_num ];
169
}
170
171
Real
chi
(
Size
const
& seqpos,
Size
const
& torsion_num )
const
{
172
return
chi_torsions_
[ seqpos ][ torsion_num ];
173
}
174
175
Vector
coords
(
Size
seqpos )
const
{
176
return
coords_
[seqpos];
177
}
178
179
utility::vector1< Vector >
coords
()
const
{
180
return
coords_
;
181
}
182
183
void
set_secstruct
(
Size
const
& seqpos,
char
const
& ss ) {
184
secstruct_
[seqpos] = ss;
185
}
186
187
void
set_mainchain_torsions
(
Size
const
& seqpos,
utility::vector1< Real >
& torsions ) {
188
mainchain_torsions_
[seqpos] = torsions;
189
}
190
191
void
set_chi_torsions
(
Size
const
& seqpos,
utility::vector1< Real >
& torsions ) {
192
chi_torsions_
[seqpos] = torsions;
193
}
194
195
void
set_coords
(
Size
const
& seqpos,
Vector
const
&
coords
) {
196
coords_
[seqpos] =
coords
;
197
}
198
199
void
set_non_main_chain_sugar_coords
(
Size
const
& seqpos,
utility::vector1< Vector >
const
& vecs ) {
200
non_main_chain_sugar_coords_defined_
=
true
;
201
non_main_chain_sugar_coords_
[seqpos] = vecs;
202
}
203
204
void
set_fold_tree
(
kinematics::FoldTree
const
& f ) {
205
fold_tree_
= f;
206
}
207
208
kinematics::FoldTree
const
&
fold_tree
( )
const
{
209
return
fold_tree_
;
210
}
211
212
void
add_jump
(
kinematics::Jump
const
&
jump
) {
213
jumps_
.push_back( jump );
214
}
215
216
kinematics::Jump
const
&
jump
(
Size
const
& jump_num )
const
{
217
return
jumps_
[ jump_num ];
218
}
219
220
221
/// @brief returns the positions of the CA atoms in this RNA_SilentStruct.
222
/// Useful for RMS calculations.
223
virtual
ObjexxFCL::FArray2D< Real >
get_CA_xyz
()
const
;
224
225
// model quality-related methods.
226
virtual
Real
CA_rmsd
(
RNA_SilentStruct
other_pss );
227
228
/// @brief calculates the RMSD between the C-alpha atoms of a Pose built from the torsions in this
229
/// RNA_SilentStruct and the C-alpha atoms from this RNA_SilentStruct.
230
virtual
Real
get_debug_rmsd
();
231
232
protected
:
233
bool
fullatom_
;
234
bool
non_main_chain_sugar_coords_defined_
;
235
236
utility::vector1< char >
secstruct_
;
237
utility::vector1< utility::vector1< Real >
>
mainchain_torsions_
;
238
utility::vector1< utility::vector1< Real >
>
chi_torsions_
;
239
utility::vector1< Vector >
coords_
;
240
utility::vector1< utility::vector1< Vector >
>
non_main_chain_sugar_coords_
;
241
utility::vector1< kinematics::Jump >
jumps_
;
242
243
kinematics::FoldTree
fold_tree_
;
244
245
};
// class RNA_SilentStruct
246
247
}
// namespace silent
248
}
// namespace io
249
}
// namespace core
250
251
#endif
Generated on Sat Jun 1 2013 11:33:03 for Rosetta 3.5 by
1.8.4