44 class ConsensusFeature;
80 : field(type), op(op), value(val), value_string(), meta_name(meta_name), value_is_numerical(true)
84 : field(type), op(op), value(0.0), value_string(val), meta_name(meta_name), value_is_numerical(false)
97 bool value_is_numerical{
false };
109 void fromString(
const String & filter);
127 const DataFilter & operator[](
Size index)
const;
130 void add(
const DataFilter & filter);
137 void remove(
Size index);
144 void replace(
Size index,
const DataFilter & filter);
150 void setActive(
bool is_active);
164 bool passes(
const Feature& feature)
const;
172 if (!is_active_)
return true;
174 for (
Size i = 0; i < filters_.size(); i++)
177 if (filter.
field == INTENSITY)
182 if (spectrum[peak_index].getIntensity() < filter.
value)
return false;
187 if (spectrum[peak_index].getIntensity() != filter.
value)
return false;
192 if (spectrum[peak_index].getIntensity() > filter.
value)
return false;
200 else if (filter.
field == META_DATA)
205 for (
Size j = 0; j < f_arrays.size(); ++j)
207 if (f_arrays[j].getName() == filter.
meta_name)
216 if (filter.
op == EQUAL && f_arrays[f_index][peak_index] != filter.
value)
return false;
217 else if (filter.
op == LESS_EQUAL && f_arrays[f_index][peak_index] > filter.
value)
return false;
218 else if (filter.
op == GREATER_EQUAL && f_arrays[f_index][peak_index] < filter.
value)
return false;
225 for (
Size j = 0; j < i_arrays.size(); ++j)
227 if (i_arrays[j].getName() == filter.
meta_name)
236 if (filter.
op == EQUAL && i_arrays[i_index][peak_index] != filter.
value)
return false;
237 else if (filter.
op == LESS_EQUAL && i_arrays[i_index][peak_index] > filter.
value)
return false;
238 else if (filter.
op == GREATER_EQUAL && i_arrays[i_index][peak_index] < filter.
value)
return false;
242 if (f_index == -1 && i_index == -1)
return false;
251 if (!is_active_)
return true;
253 for (
Size i = 0; i < filters_.size(); i++)
256 if (filter.
field == INTENSITY)
261 if (chrom[peak_index].getIntensity() < filter.
value)
267 if (chrom[peak_index].getIntensity() != filter.
value)
273 if (chrom[peak_index].getIntensity() > filter.
value)
282 else if (filter.
field == META_DATA)
287 for (
Size j = 0; j < f_arrays.size(); ++j)
289 if (f_arrays[j].getName() == filter.
meta_name)
298 if (filter.
op == EQUAL && f_arrays[f_index][peak_index] != filter.
value)
return false;
299 else if (filter.
op == LESS_EQUAL && f_arrays[f_index][peak_index] > filter.
value)
return false;
300 else if (filter.
op == GREATER_EQUAL && f_arrays[f_index][peak_index] < filter.
value)
return false;
307 for (
Size j = 0; j < i_arrays.size(); ++j)
309 if (i_arrays[j].getName() == filter.
meta_name)
318 if (filter.
op == EQUAL && i_arrays[i_index][peak_index] != filter.
value)
return false;
319 else if (filter.
op == LESS_EQUAL && i_arrays[i_index][peak_index] > filter.
value)
return false;
320 else if (filter.
op == GREATER_EQUAL && i_arrays[i_index][peak_index] < filter.
value)
return false;
324 if (f_index == -1 && i_index == -1)
return false;
const std::string & toString(const DriftTimeUnit value)
Filter the intensity value.
Definition: DataFilters.h:59
bool isActive() const
Returns if the filters are enabled.
Definition: DataFilters.h:158
A more convenient string class.
Definition: String.h:58
FilterOperation
Filter operation.
Definition: DataFilters.h:66
The representation of a chromatogram.
Definition: MSChromatogram.h:53
DataFilter()
Definition: DataFilters.h:77
ptrdiff_t SignedSize
Signed Size type e.g. used as pointer difference.
Definition: Types.h:134
bool operator==(const IDBoostGraph::ProteinGroup &lhs, const IDBoostGraph::ProteinGroup &rhs)
std::vector< Size > meta_indices_
Vector of meta indices acting as index cache.
Definition: DataFilters.h:334
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:47
DataFilter(const FilterType type, const FilterOperation op, const String &val, const String &meta_name="")
ctor for common case of string filter
Definition: DataFilters.h:83
const FloatDataArrays & getFloatDataArrays() const
Returns a const reference to the float meta data arrays.
FilterType
Information to filter.
Definition: DataFilters.h:57
const IntegerDataArrays & getIntegerDataArrays() const
Returns a const reference to the integer meta data arrays.
The representation of a 1D spectrum.
Definition: MSSpectrum.h:66
Representation of a peak/feature filter combining FilterType, FilterOperation and a value (either dou...
Definition: DataFilters.h:75
Equal to the value.
Definition: DataFilters.h:69
FilterType field
Field to filter.
Definition: DataFilters.h:87
const FloatDataArrays & getFloatDataArrays() const
bool passes(const MSSpectrum &spectrum, Size peak_index) const
Returns if the a peak in a spectrum at peak_index fulfills the current filter criteria.
Definition: DataFilters.h:170
double value
Value for comparison.
Definition: DataFilters.h:91
std::vector< DataFilter > filters_
Array of DataFilters.
Definition: DataFilters.h:332
An LC-MS feature.
Definition: Feature.h:70
DataFilter(const FilterType type, const FilterOperation op, const double val, const String &meta_name="")
ctor for common case of numerical filter
Definition: DataFilters.h:79
Filter the charge value.
Definition: DataFilters.h:61
std::vector< IntegerDataArray > IntegerDataArrays
Definition: MSSpectrum.h:126
String value_string
String value for comparison (for meta data)
Definition: DataFilters.h:93
FilterOperation op
Filter operation.
Definition: DataFilters.h:89
bool passes(const MSChromatogram &chrom, Size peak_index) const
Returns if the a peak in a chrom at peak_index fulfills the current filter criteria.
Definition: DataFilters.h:249
String meta_name
Name of the considered meta information (key)
Definition: DataFilters.h:95
bool operator!=(_Iterator< _Val, _Ref, _Ptr > const &, _Iterator< _Val, _Ref, _Ptr > const &)
Definition: KDTree.h:824
Filter the overall quality value.
Definition: DataFilters.h:60
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:127
DataFilter array providing some convenience functions.
Definition: DataFilters.h:51
Greater than the value or equal to the value.
Definition: DataFilters.h:68
bool is_active_
Determines if the filters are activated.
Definition: DataFilters.h:337
Less than the value or equal to the value.
Definition: DataFilters.h:70
A consensus feature spanning multiple LC-MS/MS experiments.
Definition: ConsensusFeature.h:69
const IntegerDataArrays & getIntegerDataArrays() const
Returns a const reference to the integer meta data arrays.
Filter the number of subordinates/elements.
Definition: DataFilters.h:62