Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ResFilters.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/pack/task/operation/ResFilters.hh
11 /// @brief core-level (very general) classes that take a pose and a residue index, and return true or false
12 /// @author ashworth
13 
14 #ifndef INCLUDED_core_pack_task_operation_ResFilters_hh
15 #define INCLUDED_core_pack_task_operation_ResFilters_hh
16 
17 // Unit Headers
19 
21 
22 // Project Headers
23 #include <core/pose/Pose.fwd.hh>
24 
25 #include <utility/vector1.hh>
26 
27 #include <string>
28 #include <set>
29 
30 
31 namespace core {
32 namespace pack {
33 namespace task {
34 namespace operation {
35 
37 {
38  public:
39  typedef ResFilter parent;
40 
41  public:
44 
45  virtual void parse_tag( TagPtr );
46 
47  protected:
50 };
51 
53 {
54 public:
56 
57  AnyResFilter();
59  virtual bool operator() ( Pose const &, Size ) const;
60  virtual ResFilterOP clone() const;
61 };
62 
64 {
65 public:
67 
68  AllResFilter();
70  virtual bool operator() ( Pose const &, Size ) const;
71  virtual ResFilterOP clone() const;
72 };
73 
75 {
76 public:
78 
79  NoResFilter();
81  virtual bool operator() ( Pose const &, Size ) const;
82  virtual ResFilterOP clone() const;
83 };
84 
85 // @brief Convenience filter to filter by residue type (polar, apolar, aromatic, charged)
87 {
88 public:
89  typedef ResFilter parent;
90 
92  ResidueTypeFilter(bool polar, bool apolar, bool aromatic, bool charged);
93 
94  virtual bool operator() ( Pose const &, Size ) const;
95  virtual ResFilterOP clone() const;
96  virtual void parse_tag( TagPtr );
97 
98 private:
100 };
101 
102 ////////////////////////////////////////////////////////////////////////////////////////////////////
103 // NOTE: in most cases, each 'Inst' class inherits largely from its corresponding 'Is' class
104 
106 public:
107  typedef ResFilter parent;
108 public:
110  ResidueHasProperty( std::string const & );
111  virtual bool operator() ( Pose const &, Size ) const;
112  virtual ResFilterOP clone() const;
113  virtual void parse_tag( TagPtr );
114  virtual std::string const & property() const { return property_; }
115 private:
117 };
118 
120 public:
122 public:
125  virtual bool operator() ( Pose const &, Size ) const;
126  virtual ResFilterOP clone() const;
127 };
128 
129 class ResidueName3Is : public ResFilter {
130 public:
131  typedef ResFilter parent;
132 public:
133  ResidueName3Is();
134  ResidueName3Is( std::string const & );
135  ResidueName3Is( std::set<std::string> const & );
136  virtual bool operator() ( Pose const &, Size ) const;
137  virtual ResFilterOP clone() const;
138  virtual void parse_tag( TagPtr );
139 private:
140  std::set<std::string> name3_set;
141 };
142 
144 public:
146 public:
148  ResidueName3Isnt( std::string const & );
149  ResidueName3Isnt( std::set<std::string> const & );
150  virtual bool operator() ( Pose const &, Size ) const;
151  virtual ResFilterOP clone() const;
152 };
153 
154 class ResidueIndexIs : public ResFilter {
155 public:
156  typedef ResFilter parent;
157 
158 public:
159  ResidueIndexIs();
160  ResidueIndexIs( Size );
162  virtual bool operator() ( Pose const &, Size ) const;
163  virtual ResFilterOP clone() const;
164  virtual void parse_tag( TagPtr );
165  virtual utility::vector1< Size > const & indices() const;
166 
167 private:
169 };
170 
172 public:
174 
175 public:
179  virtual bool operator() ( Pose const &, Size ) const;
180  virtual ResFilterOP clone() const;
181 };
182 
183 class ResiduePDBIndexIs : public ResFilter {
184 public:
185  typedef ResFilter parent;
186 
187  struct ChainPos { // for (optional) pdb indexing
188  char chain_; int pos_;
189  ChainPos( char chain, int pos ) : chain_(chain), pos_(pos) {}
190  bool operator == ( ChainPos const & other ) const
191  { return( chain_ == other.chain_ && pos_ == other.pos_ ); }
192  };
193 
194 public:
196  ResiduePDBIndexIs( char, int );
198  virtual bool operator() ( Pose const &, Size ) const;
199  virtual ResFilterOP clone() const;
200  virtual void parse_tag( TagPtr );
201  virtual utility::vector1< ChainPos > const & indices() const;
202 
203 private:
205 };
206 
208 public:
210 
211 public:
213  ResiduePDBIndexIsnt( char, int );
215  virtual bool operator() ( Pose const &, Size ) const;
216  virtual ResFilterOP clone() const;
217 };
218 
219 class ChainIs : public ResFilter {
220 public:
221  typedef ResFilter parent;
222 public:
223  ChainIs();
224  ChainIs( char const & );
225  virtual bool operator() ( Pose const &, Size ) const;
226  virtual ResFilterOP clone() const;
227  virtual void parse_tag( TagPtr );
228  virtual char const & chain() const { return chain_; }
229 private:
230  char chain_;
231 };
232 
233 class ChainIsnt : public ChainIs {
234 public:
235  typedef ChainIs parent;
236 public:
237  ChainIsnt();
238  ChainIsnt( char const & );
239  virtual bool operator() ( Pose const &, Size ) const;
240  virtual ResFilterOP clone() const;
241 };
242 
243 } //namespace operation
244 } //namespace task
245 } //namespace pack
246 } //namespace core
247 
248 #endif