29 #include "../../massspectrum/massspectrum.h"
53 spectrum.erase(begin_it, spectrum.end());
89 spectrum.erase(spectrum.begin(), last_it);
98 : m_minX(min_x), m_maxX(max_x)
134 spectrum.erase(begin_it, end_it);
143 : m_minX(min_x), m_maxX(max_x)
149 : m_minX(other.m_minX), m_maxX(other.m_maxX)
180 if(end_it == spectrum.end())
195 spectrum.erase(end_it, spectrum.end());
196 spectrum.erase(spectrum.begin(), begin_it);
204 : m_filterRange(mz_range.lower(), mz_range.upper())
211 : m_filterRange(other.m_filterRange)
226 : m_filterRange(mz_range.lower(), mz_range.upper())
232 : m_filterRange(other.m_filterRange)
271 selection_polygon_specs.end());
276 std::min(
m_lowestMz, item.selectionPolygon.getBottomMostPoint().y());
279 std::max(
m_greatestMz, item.selectionPolygon.getTopMostPoint().y());
295 std::min(
m_lowestMz, item.selectionPolygon.getBottomMostPoint().y());
298 std::max(
m_greatestMz, item.selectionPolygon.getTopMostPoint().y());
342 qFatal(
"Programming error.");
350 double rt_value)
const
371 trace = the_filter.
filter(trace);
377 auto begin_it = trace.begin();
378 auto end_it = trace.end();
387 while(iter > begin_it)
400 double checked_value;
410 qFatal(
"Programming error.");
412 checked_value = dt_value;
418 checked_value = rt_value;
423 qFatal(
"Programming error.");
428 if(!spec.selectionPolygon.contains(QPointF(checked_value, iter->x)))
429 iter = trace.erase(iter);
463 qDebug() <<
"The left line goes: (" << xA_left <<
"," << yA_left
464 <<
")->(" << xB_left <<
"," << yB_left <<
")";
466 if((xB_left - xA_left) * (iter->x - yA_left) -
467 (yB_left - yA_left) * (checked_value - xA_left) >
473 qDebug() << qSetRealNumberPrecision(10)
474 <<
"Filtered out point (left of left line):"
475 << checked_value <<
"-" << iter->x;
477 iter = trace.erase(iter);
486 qDebug() << qSetRealNumberPrecision(10)
487 <<
"Kept point (right of left line):" << checked_value
505 qDebug() <<
"The right line goes: (" << xA_right <<
"," << yA_right
506 <<
")->(" << xB_right <<
"," << yB_right <<
")";
508 if((xB_right - xA_right) * (iter->x - yA_right) -
509 (yB_right - yA_right) * (checked_value - xA_right) <
512 qDebug() << qSetRealNumberPrecision(10)
513 <<
"Filtered out point (right of right line):"
514 << checked_value <<
"-" << iter->x;
518 iter = trace.erase(iter);
527 if(iter->x >= 449 && iter->x <= 450 && checked_value > 19.5 &&
530 << qSetRealNumberPrecision(10)
531 <<
"SHOULD NOT Definitively kept point (left of right line):"
532 << checked_value <<
"-" << iter->x;
535 << qSetRealNumberPrecision(10)
536 <<
"MIGHT Definitively kept point (left of right line):"
537 << checked_value <<
"-" << iter->x;
double getThresholdX() const
FilterResampleKeepGreater & operator=(const FilterResampleKeepGreater &other)
FilterResampleKeepGreater(double x_value)
Trace & filter(Trace &trace) const override
void newSelectionPolygonSpec(const SelectionPolygonSpec &selection_polygon_spec)
std::vector< SelectionPolygonSpec > m_selectionPolygonSpecs
virtual Trace & filter(Trace &data_points) const=0
FilterResampleKeepPointInPolygon & operator=(const FilterResampleKeepPointInPolygon &other)
FilterResampleKeepPointInPolygon()
Trace & filter(Trace &trace) const override
FilterResampleKeepSmaller(double x_value)
FilterResampleKeepXRange & operator=(const FilterResampleKeepXRange &other)
FilterResampleKeepXRange(double min_x=0, double max_x=0)
Trace & filter(Trace &trace) const override
FilterResampleRemoveXRange(double min_x, double max_x)
FilterResampleRemoveXRange & operator=(const FilterResampleRemoveXRange &other)
Trace & filter(Trace &trace) const override
MassSpectrumFilterResampleKeepMzRange(const MzRange &mz_range)
MassSpectrum & filter(MassSpectrum &spectrum) const override
const FilterResampleKeepXRange m_filterRange
const FilterResampleRemoveXRange m_filterRange
MassSpectrumFilterResampleRemoveMzRange(const MzRange &mz_range)
MassSpectrum & filter(MassSpectrum &spectrum) const override
Class to represent a mass spectrum.
A simple container of DataPoint instances.
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
std::vector< DataPoint >::iterator findFirstEqualOrGreaterX(std::vector< DataPoint >::iterator begin, std::vector< DataPoint >::iterator end, const double &value)
find the first element in which X is equal or greater than the value searched important : it implies ...
std::vector< DataPoint >::iterator findFirstGreaterX(std::vector< DataPoint >::iterator begin, std::vector< DataPoint >::iterator end, const double &value)
find the first element in which X is greater than the value searched important : it implies that Trac...
std::vector< SelectionPolygonSpec > SelectionPolygonSpecVector