Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SecondaryStructureWeights.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 core/scoring/ScoringManager.hh
11 /// @brief Scoring manager class header
12 /// @author Andrew Leaver-Fay (leaverfa@email.unc.edu)
13 
14 
15 #ifndef INCLUDED_core_scoring_SecondaryStructureWeights_hh
16 #define INCLUDED_core_scoring_SecondaryStructureWeights_hh
17 
18 #include <core/types.hh>
19 
20 // AUTO-REMOVED #include <utility/vector1.hh>
21 
22 // AUTO-REMOVED #include <numeric/xyzVector.hh>
23 #include <utility/pointer/ReferenceCount.hh>
24 
25 
26 // ObjexxFCL Headers
27 
28 // C++ headers
29 
30 namespace core {
31 namespace scoring {
32 
33 
34 /// @brief Holds weights and flags for configuring a SecondaryStructureEnergy evaluation
35 
37 
38 public: // construct/destruct
39 
40  /// @brief default constructor
41  inline
43  {
44  initialize();
45  }
46 
47  /// @brief copy constructor
48  inline
51  ) : ReferenceCount(),
54 
63  {}
64 
65  /// @brief default destructor
66  virtual
68 
69 
70  public: // assignment
71 
72  /// @brief copy assignment
73  inline
76  {
77  if ( this != &s ) {
80 
89  }
90  return *this;
91  }
92 
93 
94  public: // bulk setup
95 
96  /// @brief setup parallel/antiparallel weights according to scheme
97  void
99  bool const & randomize_weights = false
100  );
101 
102  public: // get accessors
103 
104  /// @brief operator==
105  friend
106  inline
107  bool
109  {
110  return ( ( a.parallel_weight_ == b.parallel_weight_ ) &&
112  ( a.ss_lowstrand_ == b.ss_lowstrand_ ) &&
113  ( a.ss_cutoff_ == b.ss_cutoff_ ) &&
115  ( a.seq_sep_scale_ == b.seq_sep_scale_ ) &&
120  }
121 
122 
123 
124  /// @brief parallel strand weight
125  inline
126  Real const &
128  {
129  return parallel_weight_;
130  }
131 
132  /// @brief antiparallel strand weight
133  inline
134  Real const &
136  {
137  return antiparallel_weight_;
138  }
139 
140  ///
141  inline
142  int
144  {
145  return ss_lowstrand_;
146  }
147 
148  ///
149  inline
150  int
152  {
153  return ss_cutoff_;
154  }
155 
156  /// @brief local strand pair penalty
157  inline
158  Real const &
160  {
162  }
163 
164  /// @brief sequence separation scale
165  inline
166  Real const &
168  {
169  return seq_sep_scale_;
170  }
171 
172  /// @brief max strand distance cutoff
173  inline
174  Real const &
176  {
178  }
179 
180  /// @brief strand distance cutoff
181  inline
182  Real const &
184  {
185  return strand_dist_cutoff_;
186  }
187 
188  /// @brief stretching the strand distance cutoff?
189  inline
190  bool const &
192  {
194  }
195 
196  /// @brief using handedness score?
197  inline
198  bool const &
200  {
201  return handedness_score_flag_;
202  }
203 
204 
205  public: // set accessors
206 
207  /// @brief set parallel strand weight
208  inline
209  void
211  Real const & weight
212  )
213  {
214  parallel_weight_ = weight;
215  }
216 
217  /// @brief set antiparallel strand weight
218  inline
219  void
221  Real const & weight
222  )
223  {
224  antiparallel_weight_ = weight;
225  }
226 
227  ///
228  void
229  set_ss_lowstrand( int const setting )
230  {
231  ss_lowstrand_ = setting;
232  }
233 
234  ///
235  void
236  set_ss_cutoff( int const setting )
237  {
238  ss_cutoff_ = setting;
239  }
240 
241 
242  /// @brief set local strand pair penalty
243  inline
244  void
246  Real const & penalty
247  )
248  {
249  localstrandpair_penalty_ = penalty;
250  }
251 
252  /// @brief set sequence separation scale
253  inline
254  void
256  Real const & scale
257  )
258  {
259  seq_sep_scale_ = scale;
260  }
261 
262  /// @brief set max strand distance cutoff
263  inline
264  void
266  Real const & cutoff
267  )
268  {
269  max_strand_dist_cutoff_ = cutoff;
270  }
271 
272  /// @brief set strand distance cutoff
273  inline
274  void
276  Real const & cutoff
277  )
278  {
279  strand_dist_cutoff_ = cutoff;
280  }
281 
282  /// @brief stretch the strand distance cutoff
283  inline
284  void
286  bool const & flag
287  )
288  {
290  }
291 
292  /// @brief use the handedness score
293  inline
294  void
296  bool const & flag
297  )
298  {
299  handedness_score_flag_ = flag;
300  }
301 
302 
303  private: // initialization
304 
305  /// @brief initialize to default values, also load proper data bins from external files
306  void
307  initialize();
308 
309  private: // weights
310 
313 
314 
315  private: // additional settings
316 
319 
326 
327 
328 };
329 
330 
331 
332 } // ns scoring
333 } // ns core
334 
335 #endif