libpappsomspp
Library for mass spectrometry
pappso::FilterGreatestYperWindow Class Reference

keep N datapoints form the greatest intensities to the lowest within a mass range in dalton More...

#include <filterpass.h>

Inheritance diagram for pappso::FilterGreatestYperWindow:
pappso::FilterInterface

Public Member Functions

 FilterGreatestYperWindow (double window_range, std::size_t number_of_points_per_window)
 constructor with the number of datapoints to keep More...
 
 FilterGreatestYperWindow (const FilterGreatestYperWindow &other)
 
virtual ~FilterGreatestYperWindow ()
 
FilterGreatestYperWindowoperator= (const FilterGreatestYperWindow &other)
 
Tracefilter (Trace &data_points) const override
 
std::size_t getNumberOfPoints () const
 
- Public Member Functions inherited from pappso::FilterInterface
virtual ~FilterInterface ()
 

Private Attributes

double m_xWindowRange = 1
 
std::size_t m_numberOfPoints = 0
 

Detailed Description

keep N datapoints form the greatest intensities to the lowest within a mass range in dalton

Definition at line 121 of file filterpass.h.

Constructor & Destructor Documentation

◆ FilterGreatestYperWindow() [1/2]

FilterGreatestYperWindow::FilterGreatestYperWindow ( double  window_range,
std::size_t  number_of_points_per_window 
)

constructor with the number of datapoints to keep

Parameters
window_rangemass range to consider (must be greater than 0.5)
number_of_points_per_windowmaximum number of points accepted per mass window in resulting spectrum

Definition at line 199 of file filterpass.cpp.

201  : m_xWindowRange(window_range), m_numberOfPoints(number_of_points_per_window)
202 {
203 
204  qDebug();
205  if(m_xWindowRange < 0.5)
206  {
208  QObject::tr("window_range must be greater than 0.5"));
209  }
210 
211  qDebug();
212 }

References m_xWindowRange.

◆ FilterGreatestYperWindow() [2/2]

FilterGreatestYperWindow::FilterGreatestYperWindow ( const FilterGreatestYperWindow other)

Definition at line 215 of file filterpass.cpp.

219 {
220  qDebug();
221 }

◆ ~FilterGreatestYperWindow()

virtual pappso::FilterGreatestYperWindow::~FilterGreatestYperWindow ( )
inlinevirtual

Definition at line 133 of file filterpass.h.

133 {};

Member Function Documentation

◆ filter()

Trace & FilterGreatestYperWindow::filter ( Trace data_points) const
overridevirtual

Implements pappso::FilterInterface.

Definition at line 235 of file filterpass.cpp.

236 {
237 
238  std::vector<DataPoint> new_trace(data_points);
239  data_points.clear();
240 
241  int window_number = 0;
242  int old_window_number = -1;
243  std::size_t number_of_peaks_in_window = 0;
244  auto itbegin = data_points.begin();
245  std::vector<DataPoint>::iterator it_min;
246 
247 
248  // std::sort(data_points.begin(),
249  // data_points.end(),
250  // [](const DataPoint &a, const DataPoint &b) { return (a.y > b.y);
251  // });
252 
253  qDebug() << " m_xWindowRange=" << m_xWindowRange
254  << " m_numberOfPoints=" << m_numberOfPoints;
255  for(const pappso::DataPoint &data_point : new_trace)
256  {
257  qDebug() << " data_point.x=" << data_point.x
258  << " data_point.y=" << data_point.y;
259  window_number = trunc(data_point.x / m_xWindowRange);
260  qDebug() << window_number;
261  if(window_number != old_window_number)
262  {
263  old_window_number = window_number;
264  number_of_peaks_in_window = 0;
265  itbegin = data_points.end();
266  }
267  if(number_of_peaks_in_window < m_numberOfPoints)
268  {
269  qDebug();
270  data_points.push_back(data_point);
271  number_of_peaks_in_window++;
272  if(number_of_peaks_in_window == 1)
273  {
274  itbegin = data_points.begin() + (data_points.size() - 1);
275  }
276  }
277  else
278  {
279  qDebug();
280 
281  it_min = minYDataPoint(itbegin, data_points.end());
282  if(it_min != data_points.end())
283  {
284  qDebug();
285  if(it_min->y < data_point.y)
286  {
287  qDebug();
288  *it_min = data_point;
289  // it_min->x = data_point.x;
290  // it_min->y = data_point.y;
291  }
292  }
293  }
294  }
295  qDebug();
296  // new_trace.sortX();
297  // qDebug() << new_trace.size();
298  // data_points.clear();
299  // data_points = new_trace;
300  // data_points = std::move(new_trace);
301  // qDebug() << data_points.size();
302  data_points.sortX();
303  qDebug();
304  return data_points;
305 }
void sortX()
Definition: trace.cpp:956
std::vector< DataPoint >::const_iterator minYDataPoint(std::vector< DataPoint >::const_iterator begin, std::vector< DataPoint >::const_iterator end)
Definition: trace.cpp:158

References m_numberOfPoints, m_xWindowRange, pappso::minYDataPoint(), and pappso::Trace::sortX().

◆ getNumberOfPoints()

std::size_t FilterGreatestYperWindow::getNumberOfPoints ( ) const

Definition at line 308 of file filterpass.cpp.

309 {
310  return m_numberOfPoints;
311 }

References m_numberOfPoints.

◆ operator=()

FilterGreatestYperWindow & FilterGreatestYperWindow::operator= ( const FilterGreatestYperWindow other)

Definition at line 224 of file filterpass.cpp.

225 {
226  qDebug();
229 
230  return *this;
231 }

References m_numberOfPoints, and m_xWindowRange.

Member Data Documentation

◆ m_numberOfPoints

std::size_t pappso::FilterGreatestYperWindow::m_numberOfPoints = 0
private

Definition at line 143 of file filterpass.h.

Referenced by filter(), getNumberOfPoints(), and operator=().

◆ m_xWindowRange

double pappso::FilterGreatestYperWindow::m_xWindowRange = 1
private

Definition at line 142 of file filterpass.h.

Referenced by FilterGreatestYperWindow(), filter(), and operator=().


The documentation for this class was generated from the following files: