Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SheetFilter.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 src/protocols/filters/SheetFilters.hh
11 /// @brief header file for SheetSheetFilter class.
12 /// @detailed
13 /// @author Robert Vernon
14 /// @author James Thompson
15 
16 #ifndef INCLUDED_protocols_simple_filters_SheetFilter_hh
17 #define INCLUDED_protocols_simple_filters_SheetFilter_hh
18 
19 // Unit Headers
21 
22 // Project Headers
23 #include <core/pose/Pose.fwd.hh>
24 #include <core/types.hh>
25 // AUTO-REMOVED #include <basic/options/option.hh>
26 #include <basic/options/keys/OptionKeys.hh>
27 
28 // ObjexxFCL Headers
29 // AUTO-REMOVED #include <ObjexxFCL/FArray1D.hh>
30 // AUTO-REMOVED #include <ObjexxFCL/FArray2D.hh>
31 // AUTO-REMOVED #include <ObjexxFCL/FArray1A.hh>
32 // AUTO-REMOVED #include <ObjexxFCL/FArray2A.hh>
33 #include <ObjexxFCL/FArray1D.fwd.hh>
34 #include <ObjexxFCL/FArray2D.fwd.hh>
35 #include <ObjexxFCL/FArray1A.fwd.hh>
36 #include <ObjexxFCL/FArray2A.fwd.hh>
37 
38 // Utility headers
39 
40 //// C++ headers
41 // AUTO-REMOVED #include <cstdlib>
42 #include <string>
43 // AUTO-REMOVED #include <vector>
44 
45 #include <utility/vector1.hh>
46 
47 
48 namespace protocols {
49 namespace simple_filters {
50 
52 public:
53 
54  /// c-tor and d-tor
56  using namespace basic::options;
57  using namespace basic::options::OptionKeys;
58  }
59  virtual ~SheetFilter() {}
60 
62  return new SheetFilter( *this ); }
63 
65  return new SheetFilter(); }
66 
67 
68  /// @brief Returns true if the given pose passes the filter, false otherwise.
69  virtual
70  bool apply( core::pose::Pose const & pose ) const;
71 
72  static int const max_nstr = 50;
73 
74  virtual std::string name() const {
75  return "SheetFilter";
76  }
77 
78 private:
79 
80  // data
81  /// @brief initialized_ is true if init() has been called, false otherwise.
83  mutable float handedness_score_;
84 
85  // methods
86 
87  void ingo_diamers(
88  int const & nres,
89  ObjexxFCL::FArray1A_int strnm,
90  int natm,
91  ObjexxFCL::FArray2D_float const & atmps,
92  ObjexxFCL::FArray1D_int & rnm,
93  ObjexxFCL::FArray1D_int & indC,
94  ObjexxFCL::FArray1D_int & indN,
95  ObjexxFCL::FArray2A_float strdm,
96  ObjexxFCL::FArray1A_int inddm
97  ) const;
98 
99  void
101  int shnm,
102  int hm,
103  int & nstr,
104  ObjexxFCL::FArray1A_int slct,
105  ObjexxFCL::FArray1A_int order,
106  ObjexxFCL::FArray1A_int strlbl,
107  ObjexxFCL::FArray2A_float strdr,
108  // int & proper, // Not used
109  ObjexxFCL::FArray1A_int directions
110  ) const;
111 
112  void
114  int shnm,
115  int hm,
116  int & nstr,
117  ObjexxFCL::FArray1A_int strlbl,
118  ObjexxFCL::FArray2A_float dstrmin,
119  float ngbhct,
120  ObjexxFCL::FArray1A_int order,
121  ObjexxFCL::FArray1A_int sequence,
122  ObjexxFCL::FArray1A_int slct,
123  int & rubbish
124  ) const;
125 
126  void
127  ingo_hand(
128  int const k,
129  int const hm,
130  ObjexxFCL::FArray1A_int stpppt,
131  ObjexxFCL::FArray1A_int strtpt,
132  int const str1,
133  int const str2,
134  ObjexxFCL::FArray1A_int order,
135  ObjexxFCL::FArray2A_float strdr,
136  int const nstr,
137  int const nres,
138  ObjexxFCL::FArray1A_int sequence,
139  ObjexxFCL::FArray1A_int directions,
140  ObjexxFCL::FArray1A_int scstr,
141  ObjexxFCL::FArray2A_float lctn,
142  bool const use_whole_helix,
143  int & rubbish
144  ) const;
145 
146  void
148  int &nstr,
149  ObjexxFCL::FArray2A_float dstrmin,
150  float ngbhct,
151  ObjexxFCL::FArray2A_int strprs,
152  int & nsht,
153  ObjexxFCL::FArray1A_int strsht,
154  ObjexxFCL::FArray1A_int strlbl,
155  int & rubbish
156  ) const;
157 
158  void
159  ingo_lnl(
160  int hm,
161  ObjexxFCL::FArray1A_int order,
162  int & nloc,
163  int & nnloc
164  ) const;
165 
166  void
168  int const & nres,
169  int natm,
170  ObjexxFCL::FArray1D_int & indCA,
171  ObjexxFCL::FArray2D_float const & atmps,
172  ObjexxFCL::FArray2A_float lctn
173  ) const;
174 
175  void
177  int const & nres,
178  ObjexxFCL::FArray1A_int scstr,
179  int & nstr
180  ) const;
181 
182  void
184  int & nstr,
185  int & nsht,
186  float ngbhct,
187  ObjexxFCL::FArray2A_float dstrmin,
188  ObjexxFCL::FArray2A_float strdr,
189  ObjexxFCL::FArray1A_int strsht,
190  ObjexxFCL::FArray1A_int strlbl,
191  int & rubbish,
192  float & maxdist,
193  float & mindotprodabs,
194  ObjexxFCL::FArray1A_int strtpt,
195  ObjexxFCL::FArray1A_int stpppt,
196  ObjexxFCL::FArray2A_int locdsm,
197  ObjexxFCL::FArray2A_float lctn,
198  int const & nres
199  ) const;
200 
201  void
203  int const & nres,
204  ObjexxFCL::FArray1A_int scstr,
205  int natm,
206  ObjexxFCL::FArray2D_float const & atmps,
207  ObjexxFCL::FArray1D_int & indN,
208  ObjexxFCL::FArray1D_int & indCA,
209  ObjexxFCL::FArray1D_int & indC,
210  ObjexxFCL::FArray1D_int & rnm,
211  float ngbhct,
212  int & nstr,
213  int & nsht,
214  float & maxdt,
215  float & mindp,
216  int & nloc,
217  int & nnloc,
218  int & rubbish
219  ) const;
220 
221  void
223  int const & nres,
224  ObjexxFCL::FArray1A_int scstr,
225  int & nstr,
226  ObjexxFCL::FArray1A_int strnm,
227  ObjexxFCL::FArray1A_int strtpt,
228  ObjexxFCL::FArray1A_int stpppt
229  ) const;
230 
231  void
233  int const & nres,
234  int & nstr,
235  ObjexxFCL::FArray1A_int strtpt,
236  ObjexxFCL::FArray1A_int stpppt,
237  ObjexxFCL::FArray2A_float lctn,
238  ObjexxFCL::FArray2A_float strdr
239  ) const;
240 
241  void
243  int const & nres,
244  int & nstr,
245  ObjexxFCL::FArray1A_int inddm,
246  ObjexxFCL::FArray1A_int strnm,
247  ObjexxFCL::FArray2A_float strdm,
248  ObjexxFCL::FArray2A_float dstrmin,
249  ObjexxFCL::FArray2A_int locdsm
250  ) const;
251 
252  void ingo_clean_ss(
253  int const & nres,
254  ObjexxFCL::FArray1A_int scstr
255  ) const;
256 };
257 
258 } // filters
259 } // protocols
260 
261 #endif