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
 

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 139 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 196 of file filterpass.cpp.

198  : m_xWindowRange(window_range), m_numberOfPoints(number_of_points_per_window)
199 {
200 
201  qDebug();
202  if(m_xWindowRange < 0.5)
203  {
205  QObject::tr("window_range must be greater than 0.5"));
206  }
207 
208  qDebug();
209 }

References m_xWindowRange.

◆ FilterGreatestYperWindow() [2/2]

FilterGreatestYperWindow::FilterGreatestYperWindow ( const FilterGreatestYperWindow other)

Definition at line 212 of file filterpass.cpp.

216 {
217  qDebug();
218 }

◆ ~FilterGreatestYperWindow()

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

Definition at line 151 of file filterpass.h.

152 :
153  MassSpectrumFilterGreatestItensities(std::size_t number_of_points = 0);

Member Function Documentation

◆ filter()

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

Implements pappso::FilterInterface.

Definition at line 231 of file filterpass.cpp.

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

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

◆ getNumberOfPoints()

std::size_t FilterGreatestYperWindow::getNumberOfPoints ( ) const

Definition at line 298 of file filterpass.cpp.

299 {
300  return m_numberOfPoints;
301 }

References m_numberOfPoints.

◆ operator=()

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

Definition at line 222 of file filterpass.cpp.

223 {
225 
226  return *this;
227 }

References m_numberOfPoints.

Member Data Documentation

◆ m_numberOfPoints

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

Definition at line 161 of file filterpass.h.

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

◆ m_xWindowRange

double pappso::FilterGreatestYperWindow::m_xWindowRange = 1
private

Definition at line 160 of file filterpass.h.

Referenced by filter(), and FilterGreatestYperWindow().


The documentation for this class was generated from the following files:
pappso::FilterGreatestYperWindow::m_numberOfPoints
std::size_t m_numberOfPoints
Definition: filterpass.h:161
pappso::ExceptionOutOfRange
Definition: exceptionoutofrange.h:53
pappso::Trace
A simple container of DataPoint instances.
Definition: trace.h:132
pappso::Trace::sortX
void sortX()
Definition: trace.cpp:748
pappso::FilterGreatestYperWindow::m_xWindowRange
double m_xWindowRange
Definition: filterpass.h:160
pappso::minYDataPoint
std::vector< DataPoint >::const_iterator minYDataPoint(std::vector< DataPoint >::const_iterator begin, std::vector< DataPoint >::const_iterator end)
Definition: trace.cpp:116