Rosetta 3.5
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
core
pack
task
operation
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
18
#include <
core/pack/task/operation/ResFilters.fwd.hh
>
19
20
#include <
core/pack/task/operation/ResFilter.hh
>
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
36
class
ResFilterComposition
:
public
ResFilter
37
{
38
public
:
39
typedef
ResFilter
parent
;
40
41
public
:
42
ResFilterComposition
();
43
ResFilterComposition
(
utility::vector1<ResFilterCOP>
const
&);
44
45
virtual
void
parse_tag
(
TagPtr
);
46
47
protected
:
48
utility::vector1<ResFilterCOP>
sub_filters_
;
49
void
parse_sub_filters_tag
(
TagPtr
);
50
};
51
52
class
AnyResFilter
:
public
ResFilterComposition
53
{
54
public
:
55
typedef
ResFilterComposition
parent
;
56
57
AnyResFilter
();
58
AnyResFilter
(
utility::vector1<ResFilterCOP>
const
&);
59
virtual
bool
operator()
(
Pose
const
&,
Size
)
const
;
60
virtual
ResFilterOP
clone
()
const
;
61
};
62
63
class
AllResFilter
:
public
ResFilterComposition
64
{
65
public
:
66
typedef
ResFilterComposition
parent
;
67
68
AllResFilter
();
69
AllResFilter
(
utility::vector1<ResFilterCOP>
const
&);
70
virtual
bool
operator()
(
Pose
const
&,
Size
)
const
;
71
virtual
ResFilterOP
clone
()
const
;
72
};
73
74
class
NoResFilter
:
public
ResFilterComposition
75
{
76
public
:
77
typedef
ResFilterComposition
parent
;
78
79
NoResFilter
();
80
NoResFilter
(
utility::vector1<ResFilterCOP>
const
&);
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)
86
class
ResidueTypeFilter
:
public
ResFilter
87
{
88
public
:
89
typedef
ResFilter
parent
;
90
91
ResidueTypeFilter
();
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
:
99
bool
polar_
,
apolar_
,
aromatic_
,
charged_
;
100
};
101
102
////////////////////////////////////////////////////////////////////////////////////////////////////
103
// NOTE: in most cases, each 'Inst' class inherits largely from its corresponding 'Is' class
104
105
class
ResidueHasProperty
:
public
ResFilter
{
106
public
:
107
typedef
ResFilter
parent
;
108
public
:
109
ResidueHasProperty
();
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
:
116
std::string
property_
;
117
};
118
119
class
ResidueLacksProperty
:
public
ResidueHasProperty
{
120
public
:
121
typedef
ResidueHasProperty
parent
;
122
public
:
123
ResidueLacksProperty
();
124
ResidueLacksProperty
(
std::string
const
& );
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
143
class
ResidueName3Isnt
:
public
ResidueName3Is
{
144
public
:
145
typedef
ResidueName3Is
parent
;
146
public
:
147
ResidueName3Isnt
();
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
);
161
ResidueIndexIs
(
utility::vector1< Size >
const
& );
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
:
168
utility::vector1< Size >
indices_
;
169
};
170
171
class
ResidueIndexIsnt
:
public
ResidueIndexIs
{
172
public
:
173
typedef
ResidueIndexIs
parent
;
174
175
public
:
176
ResidueIndexIsnt
();
177
ResidueIndexIsnt
(
Size
);
178
ResidueIndexIsnt
(
utility::vector1< Size >
const
& );
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
:
195
ResiduePDBIndexIs
();
196
ResiduePDBIndexIs
(
char
,
int
);
197
ResiduePDBIndexIs
(
utility::vector1< ChainPos >
const
& );
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
:
204
utility::vector1< ChainPos >
indices_
;
205
};
206
207
class
ResiduePDBIndexIsnt
:
public
ResiduePDBIndexIs
{
208
public
:
209
typedef
ResiduePDBIndexIs
parent
;
210
211
public
:
212
ResiduePDBIndexIsnt
();
213
ResiduePDBIndexIsnt
(
char
,
int
);
214
ResiduePDBIndexIsnt
(
utility::vector1< ChainPos >
const
& );
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
Generated on Sat Jun 1 2013 11:33:51 for Rosetta 3.5 by
1.8.4