Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ABEGOEval.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/fragment/picking_old/vall/eval/ABEGOEval.hh
11 /// @brief scores a fragment based on ABEGO
12 /// @author Nobuyasu Koga (nobuyasu@u.washington.edu)
13 
14 #ifndef INCLUDED_core_fragment_picking_old_vall_eval_ABEGOEval_hh
15 #define INCLUDED_core_fragment_picking_old_vall_eval_ABEGOEval_hh
16 
17 
18 // unit headers
20 // AUTO-REMOVED #include <core/fragment/picking_old/vall/eval/IdentityEval.hh>
22 
23 // type headers
24 #include <core/types.hh>
25 
26 // package headers
29 
30 #include <utility/vector1.hh>
31 
32 
33 
34 
35 namespace core {
36 namespace fragment {
37 namespace picking_old {
38 namespace vall {
39 namespace eval {
40 
41 
42 /// @brief scores a fragment based on sum of secondary structure identity and sequence identity
43 class ABEGOEval : public VallFragmentEval {
44 
45 
46 private: // typedefs
47 
48 
50 
51 
52 public: // typedefs
53 
54 
56 
58  typedef core::Real Real;
59 
62 
63 public: // concept typedefs
64 
65 
66  /// @brief typedef for ExtentEvaluator concept
68 
69 
70  /// @brief typedef for ExtentEvaluator concept
72 
73 
74 public: // concept translation typedefs
75 
76 
78 
79 
80 public: // construct/destruct
81 
82 
83  /// @brief default constructor
84  ABEGOEval();
85 
86 
87  /// @brief full values constructor
88  /// @param ss secondary structure string to match against
89  /// @param aa amino acid structure string to match against
90  ABEGOEval(
91  utility::vector1< String > const & input,
92  Real const penalty = 1.0,
93  bool const randomize = true
94  );
95 
96 
97  /// @brief default copy constructor
98  ABEGOEval( ABEGOEval const & rval );
99 
100 
101  /// @brief default destructor
102  virtual
103  ~ABEGOEval();
104 
105 
106 public: // copy assignment
107 
108 
109  /// @brief copy assignment
110  ABEGOEval & operator =( ABEGOEval const & rval );
111 
112 
113 public: // virtual constructors
114 
115 
116  /// @brief clone this object
117  virtual
118  VallFragmentEvalOP clone() const;
119 
120 
121 public: // virtual evaluation methods
122 
123 
124  /// @brief for a fragment extent, evaluate and store results in a VallFragmentScore
125  /// @return true, so score is always stored during VallLibrarian::catalog()
126  virtual
127  bool eval_impl(
128  Extent const & extent,
129  VallFragmentScore & fs
130  );
131 
132 
133 public: // accessor/mutators
134 
135 
136  /// @brief get secondary structure string
137  inline
139  return abego_;
140  }
141 
142  /// @brief set abego vector of string
143  inline
145  abego_ = abego;
146  }
147 
148  /// @brief get secondary structure penalty
149  inline
150  Real penalty() const {
151  return penalty_;
152  }
153 
154  /// @brief adding random noise to score?
155  inline
156  bool randomize() const {
157  return randomize_;
158  }
159 
160 
161 public: // additional hooks
162 
163 
164  /// @brief operation to be perform before catalog() starts
165  virtual
166  void pre_catalog_op( VallLibrary const & );
167 
168 
169 private: // data
170 
171 
172  /// @brief abego string to match against
174 
175  /// @brief abego penalty if non-matching
177 
178  /// @brief flag to add random noise between [0, 0.001) into score
180 
182 
183 
184 };
185 
186 
187 } // namespace eval
188 } // namespace vall
189 } // namespace picking_old
190 } // namespace fragment
191 } // namespace core
192 
193 
194 #endif /* INCLUDED_core_fragment_picking_old_vall_eval_ABEGOEval_HH */