libpappsomspp
Library for mass spectrometry
pappso::FilterComplementIonEnhancer Class Reference

try to detect complementary ions and assign maximum intensity of both elements More...

#include <filtercomplementionenhancer.h>

Inheritance diagram for pappso::FilterComplementIonEnhancer:
pappso::FilterInterface

Public Member Functions

 FilterComplementIonEnhancer (double target_mz, PrecisionPtr precision_ptr)
 
 FilterComplementIonEnhancer (const QualifiedMassSpectrum &qmass_spectrum, PrecisionPtr precision_ptr)
 
 FilterComplementIonEnhancer (const FilterComplementIonEnhancer &other)
 
virtual ~FilterComplementIonEnhancer ()
 
Tracefilter (Trace &data_points) const override
 

Private Member Functions

void enhanceComplementMassInRange (double new_intensity, double mz_lower_bound, double mz_upper_bound, std::vector< DataPoint >::iterator it_begin, std::vector< DataPoint >::iterator it_end) const
 

Private Attributes

double m_targetMzSum
 
PrecisionPtr m_precisionPtr
 

Detailed Description

try to detect complementary ions and assign maximum intensity of both elements

experimental filter

Definition at line 63 of file filtercomplementionenhancer.h.

Constructor & Destructor Documentation

◆ FilterComplementIonEnhancer() [1/3]

FilterComplementIonEnhancer::FilterComplementIonEnhancer ( double  target_mz,
PrecisionPtr  precision_ptr 
)
Parameters
target_mzthe targeted mass of the peak pair
precision_ptrmatching precision

Definition at line 32 of file filtercomplementionenhancer.cpp.

34  : m_targetMzSum(target_mz), m_precisionPtr(precision_ptr)
35 {
36 }

◆ FilterComplementIonEnhancer() [2/3]

pappso::FilterComplementIonEnhancer::FilterComplementIonEnhancer ( const QualifiedMassSpectrum qmass_spectrum,
pappso::PrecisionPtr  precision_ptr 
)
Parameters
qmass_spectrumqualified mass spectrum to compute the targeted mass of the peak pair
precision_ptrmatching precision

Definition at line 44 of file filtercomplementionenhancer.cpp.

47  : m_targetMzSum(((qmass_spectrum.getPrecursorMz() -
48  (qmass_spectrum.getPrecursorCharge() * MHPLUS /
49  qmass_spectrum.getPrecursorCharge())) *
50  qmass_spectrum.getPrecursorCharge() +
51  (MHPLUS + MHPLUS))),
52  m_precisionPtr(precision_ptr)
53 {
54 }

◆ FilterComplementIonEnhancer() [3/3]

FilterComplementIonEnhancer::FilterComplementIonEnhancer ( const FilterComplementIonEnhancer other)

Copy constructor

Parameters
otherTODO

Definition at line 38 of file filtercomplementionenhancer.cpp.

41 {
42 }

◆ ~FilterComplementIonEnhancer()

FilterComplementIonEnhancer::~FilterComplementIonEnhancer ( )
virtual

Destructor

Definition at line 56 of file filtercomplementionenhancer.cpp.

57 {
58 }

Member Function Documentation

◆ enhanceComplementMassInRange()

void pappso::FilterComplementIonEnhancer::enhanceComplementMassInRange ( double  new_intensity,
double  mz_lower_bound,
double  mz_upper_bound,
std::vector< DataPoint >::iterator  it_begin,
std::vector< DataPoint >::iterator  it_end 
) const
private

Definition at line 86 of file filtercomplementionenhancer.cpp.

92 {
93  for(std::vector<DataPoint>::iterator it = it_begin; it != it_end; it++)
94  {
95  if((it->x >= mz_lower_bound) && (it->x <= mz_upper_bound))
96  {
97  if(it->y < new_intensity)
98  {
99  it->y = new_intensity;
100  }
101  }
102  }
103 }

◆ filter()

pappso::Trace & pappso::FilterComplementIonEnhancer::filter ( pappso::Trace data_points) const
overridevirtual

Implements pappso::FilterInterface.

Definition at line 61 of file filtercomplementionenhancer.cpp.

62 {
63 
64  auto it_end = data_points.end();
65  std::sort(data_points.begin(),
66  it_end,
67  [](const DataPoint &a, const DataPoint &b) { return (a.y > b.y); });
68 
69  for(auto it = data_points.begin(); it != it_end; it++)
70  {
71  double mz_complement = m_targetMzSum - it->x;
72  if(mz_complement > 0)
73  {
74  MzRange mz_range(mz_complement, m_precisionPtr);
76  it->y, mz_range.lower(), mz_range.upper(), it, it_end);
77  }
78  }
79 
80  data_points.sortX();
81  return data_points;
82 }

References pappso::a, pappso::b, pappso::MzRange::lower(), pappso::Trace::sortX(), and pappso::MzRange::upper().

Member Data Documentation

◆ m_precisionPtr

PrecisionPtr pappso::FilterComplementIonEnhancer::m_precisionPtr
private

Definition at line 122 of file filtercomplementionenhancer.h.

◆ m_targetMzSum

double pappso::FilterComplementIonEnhancer::m_targetMzSum
private

Definition at line 121 of file filtercomplementionenhancer.h.


The documentation for this class was generated from the following files:
pappso::FilterComplementIonEnhancer::enhanceComplementMassInRange
void enhanceComplementMassInRange(double new_intensity, double mz_lower_bound, double mz_upper_bound, std::vector< DataPoint >::iterator it_begin, std::vector< DataPoint >::iterator it_end) const
Definition: filtercomplementionenhancer.cpp:86
pappso::MHPLUS
const pappso_double MHPLUS(1.007276466879)
pappso::DataPoint
Definition: datapoint.h:21
pappso::FilterComplementIonEnhancer::m_precisionPtr
PrecisionPtr m_precisionPtr
Definition: filtercomplementionenhancer.h:122
pappso::MzRange
Definition: mzrange.h:67
pappso::QualifiedMassSpectrum::getPrecursorCharge
uint getPrecursorCharge(bool *ok=nullptr) const
Get the precursor charge.
Definition: qualifiedmassspectrum.cpp:334
pappso::Trace::sortX
void sortX()
Definition: trace.cpp:790
pappso::FilterComplementIonEnhancer::m_targetMzSum
double m_targetMzSum
Definition: filtercomplementionenhancer.h:121
pappso::QualifiedMassSpectrum::getPrecursorMz
pappso_double getPrecursorMz(bool *ok=nullptr) const
Get the precursor m/z ratio.
Definition: qualifiedmassspectrum.cpp:256