Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HSSTripletFilter.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/fldsgn/filters/HSSTripletFilter.hh
11 /// @brief header file for HSSTripletFilter class.
12 /// @detailed
13 /// @author Nobuyasu Koga ( nobuyasu@uw.edu )
14 
15 
16 #ifndef INCLUDED_protocols_fldsgn_filters_HSSTripletFilter_hh
17 #define INCLUDED_protocols_fldsgn_filters_HSSTripletFilter_hh
18 
19 // Unit Headers
21 
22 // Package Headers
25 
26 // Project Headers
27 #include <core/pose/Pose.fwd.hh>
28 
29 // Utility headers
30 
31 // Parser headers
35 #include <utility/tag/Tag.fwd.hh>
36 
37 #include <utility/vector1.hh>
38 
39 
40 //// C++ headers
41 
42 namespace protocols {
43 namespace fldsgn {
44 namespace filters {
45 
47 public:
48 
49 
53  typedef core::Real Real;
54  typedef core::Size Size;
61 
66 
67 
68 public:// constructor/destructor
69 
70 
71  // @brief default constructor
73 
74  // @brief constructor with arguments
75  HSSTripletFilter( HSSTriplets const & hss3s );
76 
77  // @brief constructor with arguments
78  HSSTripletFilter( String const & hss3s );
79 
80  // @brief copy constructor
81  HSSTripletFilter( HSSTripletFilter const & rval );
82 
83  virtual ~HSSTripletFilter(){}
84 
85 
86 public:// virtual constructor
87 
88 
89  // @brief make clone
90  virtual FilterOP clone() const { return new HSSTripletFilter( *this ); }
91 
92  // @brief make fresh instance
93  virtual FilterOP fresh_instance() const { return new HSSTripletFilter(); }
94 
95 
96 public:// mutator
97 
98 
99  // @brief add hsstriplets for filtering
100  void add_hsstriplets( HSSTriplets const & hss3s );
101 
102  // @brief set secondary strucure elements
103  void secstruct( String const & ss );
104 
105  // @brief minimum distance for filtering
106  void filter_min_dist( Real const r );
107 
108  // @brief maximum distance for filtering
109  void filter_max_dist( Real const r );
110 
111  /// @brief miniimum angle for filtering
112  void filter_min_angle( Real const r );
113 
114  /// @brief maximum angle for filtering
115  void filter_max_angle( Real const r );
116 
117  /// @brief set output id
118  void output_id( Size const i );
119 
120  /// @brief set output type
121  void output_type( String const & s );
122 
123 
124 public:// accessor
125 
126 
127  // @brief get name of this filter
128  virtual std::string name() const { return "HSSTripletFilter"; }
129 
130 
131 public:// parser
132 
133 
134  virtual void parse_my_tag( TagPtr const tag,
135  DataMap &,
136  Filters_map const &,
137  Movers_map const &,
138  Pose const & );
139 
140 
141 public:// virtual main operation
142 
143 
144  /// @brief
145  Real report_sm( Pose const & pose ) const;
146 
147  /// @brief
148  Real compute( Pose const & pose ) const;
149 
150 
151  // @brief returns true if the given pose passes the filter, false otherwise.
152  // In this case, the test is whether the give pose is the topology we want.
153  virtual bool apply( Pose const & pose ) const;
154 
155 
156 private:
157 
158 
159  /// @brief hsstriplet
161 
162  /// @brief if value is empty, dssp will run for ss definition ( default is emptry )
164 
165  /// @brief filtered min distance between helix and sheet
167 
168  /// @brief filtered max distance between helix and sheet
170 
171  /// @brief filtered min angle between helix and sheet
173 
174  /// @brief filtered max angle between helix and sheet
176 
177  /// @brief output id of HSSTriplet
179 
180  /// @brief output type, dist or angle
182 
183  /// @brief output value, the result of filterring calculation
185 
186 
187 };
188 
189 } // filters
190 } // fldsgn
191 } // protocols
192 
193 #endif