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
scoring
methods
pcs2
PcsDataCenter.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
/// @begin
11
///
12
/// @file protocols/scoring/methods/pcs2/PcsDataCenter.hh
13
///
14
/// @brief Hold the PCS data on which the SVD will be applyed
15
///
16
/// @detailed
17
///
18
/// @param
19
///
20
/// @return
21
///
22
/// @remarks
23
///
24
/// @references
25
///
26
/// @authorsv Christophe Schmitz
27
///
28
/// @last_modified February 2010
29
////////////////////////////////////////////////
30
31
#ifndef INCLUDED_protocols_scoring_methods_pcs2_PcsDataCenter_hh
32
#define INCLUDED_protocols_scoring_methods_pcs2_PcsDataCenter_hh
33
34
// Package headers
35
#include <
protocols/scoring/methods/pcs2/PcsInputCenter.fwd.hh
>
36
#include <
protocols/scoring/methods/pcs2/PcsDataLanthanide.hh
>
37
38
// Project headers
39
#include <
core/types.hh
>
40
#include <
core/pose/Pose.fwd.hh
>
41
42
// Utility headers
43
#include <utility/vector1.hh>
44
#include <utility/pointer/ReferenceCount.hh>
45
46
// Numeric headers
47
#include <numeric/constants.hh>
48
49
// ObjexxFCL headers
50
51
// c++ headers
52
53
#ifdef WIN32
54
#include <
protocols/scoring/methods/pcs2/PcsInputLine.hh
>
55
#endif
56
57
58
namespace
protocols{
59
namespace
scoring{
60
namespace
methods{
61
namespace
pcs2
{
62
63
class
PcsDataCenter
:
public
utility::pointer::ReferenceCount
{
64
private
:
65
core::Size
n_lanthanides_
;
66
core::Size
n_pcs_spin_
;
67
utility::vector1<PcsInputLine>
PCS_data_line_all_spin_
;
68
utility::vector1<PcsDataLanthanide>
PCS_data_per_lanthanides_all_
;
69
utility::vector1< utility::vector1<core::Real>
>
A_all_
;
70
utility::vector1<core::Real>
X_all_
;
71
utility::vector1<core::Real>
Y_all_
;
72
utility::vector1<core::Real>
Z_all_
;
73
74
public
:
75
PcsDataCenter
();
//construct
76
77
virtual
~PcsDataCenter
();
//destruct
78
79
PcsDataCenter
(
PcsDataCenter
const
&other);
// copy
80
81
PcsDataCenter
&
82
operator=
(
PcsDataCenter
const
& src );
// =
83
84
PcsDataCenter
(
PcsInputCenter
& pcs_i_c,
core::Size
start
,
core::Size
end
,
core::Real
individual_scale);
85
86
/// @brief Give me the number of lanthanides for this center
87
core::Size
88
get_n_lanthanides
()
const
;
89
90
/// @brief Give me the matrix A_all_
91
utility::vector1< utility::vector1<core::Real>
>
const
&
92
get_A_all
()
const
;
93
/*
94
/// @brief Give me the vector r5_all_
95
utility::vector1<core::Real> const &
96
get_r5_all() const;
97
*/
98
/// @brief Give me the vector X_all_
99
utility::vector1<core::Real>
const
&
100
get_X_all
()
const
;
101
102
/// @brief Give me the vector Y_all_
103
utility::vector1<core::Real>
const
&
104
get_Y_all
()
const
;
105
106
/// @brief Give me the vector Z_all_
107
utility::vector1<core::Real>
const
&
108
get_Z_all
()
const
;
109
110
/// @brief Give the index number of the PcsInputLine given
111
core::Size
112
where_is_line
(
PcsInputLine
& pcs_i_l);
113
114
/// @brief This is called each time the pose is changed
115
void
116
update_X_Y_Z_all
(
core::pose::Pose
const
& pose);
117
118
/// @brief Call update_my_A_matrix for all lanthanide data.
119
/// X Y Z are the new coordinate of the center
120
void
121
update_matrix_A_all
(
core::Real
const
X
,
122
core::Real
const
Y,
123
core::Real
const
Z);
124
125
/// @brief Call update_my_A_matrix for all lanthanide data.
126
/// X Y Z are the new coordinate of the center
127
/// It also update individual smaller matrice for svd
128
void
129
update_matrix_A_all_for_svd
(
core::Real
const
X
,
130
core::Real
const
Y,
131
core::Real
const
Z);
132
133
void
134
update_matrix_A_all_for_cstyle
(
core::Real
const
X
,
135
core::Real
const
Y,
136
core::Real
const
Z);
137
138
139
140
/// @brief Give me the vector PCS_data_per_lanthanides_all_
141
utility::vector1<PcsDataLanthanide>
&
142
get_pcs_data_per_lanthanides_all
();
143
144
/// @brief Give me the vector PCS_data_line_all_spin_
145
const
utility::vector1<PcsInputLine>
&
146
get_PCS_data_line_all_spin
()
const
;
147
148
/// @brief Give me the vector PCS_data_per_lanthanides_all_ (const version)
149
const
utility::vector1<PcsDataLanthanide>
&
150
get_pcs_data_per_lanthanides_all
()
const
;
151
152
/// @brief Print me
153
friend
std::ostream &
154
operator<<
(std::ostream& out,
const
PcsDataCenter
& me);
155
156
157
private
:
158
void
159
update_matrix_A
();
160
161
void
162
update_matrix_A_cstyle
();
163
164
};
165
166
167
core::Real
168
fill_A_line_fast
(
utility::vector1<core::Real>
& A_line,
169
core::Real
const
xM,
170
core::Real
const
yM,
171
core::Real
const
zM,
172
core::Real
const
x,
173
core::Real
const
y,
174
core::Real
const
z
175
);
176
177
void
178
fill_A_line_slow
(
utility::vector1<core::Real>
& A_line,
179
core::Real
const
xM,
180
core::Real
const
yM,
181
core::Real
const
zM,
182
core::Real
const
x,
183
core::Real
const
y,
184
core::Real
const
z
185
);
186
187
188
}
//namespace pcs2
189
}
//namespace methods
190
}
//namespace scoring
191
}
//namespace protocols
192
193
static
const
core::Real
OTHER_FACT_USI_PRECALC_FOR_A_3
( (10000.0/12.0/
core::Real
( numeric::constants::d::pi ) ) * 3.0 );
194
195
#endif
Generated on Sat Jun 1 2013 12:11:02 for Rosetta 3.5 by
1.8.4