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::FilterNameInterface pappso::FilterInterface

Public Member Functions

 FilterComplementIonEnhancer (double target_mz, PrecisionPtr precision_ptr)
 
 FilterComplementIonEnhancer (const QualifiedMassSpectrum &qmass_spectrum, PrecisionPtr precision_ptr)
 
 FilterComplementIonEnhancer (const QString &strBuildParams)
 
 FilterComplementIonEnhancer (const FilterComplementIonEnhancer &other)
 
virtual ~FilterComplementIonEnhancer ()
 
Tracefilter (Trace &data_points) const override
 
void buildFilterFromString (const QString &strBuildParams) override
 build this filter using a string More...
 
QString name () const override
 
QString toString () const override
 
- Public Member Functions inherited from pappso::FilterNameInterface
virtual ~FilterNameInterface ()
 
- Public Member Functions inherited from pappso::FilterInterface
virtual ~FilterInterface ()
 

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
 

Additional Inherited Members

Detailed Description

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

experimental filter

Definition at line 46 of file filtercomplementionenhancer.h.

Constructor & Destructor Documentation

◆ FilterComplementIonEnhancer() [1/4]

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

Definition at line 33 of file filtercomplementionenhancer.cpp.

◆ FilterComplementIonEnhancer() [2/4]

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 45 of file filtercomplementionenhancer.cpp.

48  : m_targetMzSum(((qmass_spectrum.getPrecursorMz() -
49  (qmass_spectrum.getPrecursorCharge() * MHPLUS /
50  qmass_spectrum.getPrecursorCharge())) *
51  qmass_spectrum.getPrecursorCharge() +
52  (MHPLUS + MHPLUS))),
53  m_precisionPtr(precision_ptr)
54 {
55 }
uint getPrecursorCharge(bool *ok=nullptr) const
Get the precursor charge.
pappso_double getPrecursorMz(bool *ok=nullptr) const
Get the precursor m/z ratio.
const pappso_double MHPLUS(1.007276466879)

◆ FilterComplementIonEnhancer() [3/4]

pappso::FilterComplementIonEnhancer::FilterComplementIonEnhancer ( const QString &  strBuildParams)
Parameters
strBuildParamsstring to build the filter "complementIonEnhancer|456.567;0.02dalton"

Definition at line 57 of file filtercomplementionenhancer.cpp.

59 {
60  buildFilterFromString(strBuildParams);
61 }
void buildFilterFromString(const QString &strBuildParams) override
build this filter using a string

◆ FilterComplementIonEnhancer() [4/4]

FilterComplementIonEnhancer::FilterComplementIonEnhancer ( const FilterComplementIonEnhancer other)

Copy constructor

Parameters
otherTODO

Definition at line 39 of file filtercomplementionenhancer.cpp.

42 {
43 }

◆ ~FilterComplementIonEnhancer()

FilterComplementIonEnhancer::~FilterComplementIonEnhancer ( )
virtual

Destructor

Definition at line 108 of file filtercomplementionenhancer.cpp.

109 {
110 }

Member Function Documentation

◆ buildFilterFromString()

void pappso::FilterComplementIonEnhancer::buildFilterFromString ( const QString &  strBuildParams)
overridevirtual

build this filter using a string

Parameters
strBuildParamsa string coding the filter and its parameters "filterName|param1;param2;param3"

Implements pappso::FilterNameInterface.

Definition at line 64 of file filtercomplementionenhancer.cpp.

66 {
67  //"complementIonEnhancer|456.567;0.02dalton"
68  if(strBuildParams.startsWith("complementIonEnhancer|"))
69  {
70  QStringList params = strBuildParams.split("|").back().split(";");
71 
72  m_targetMzSum = params.at(0).toDouble();
73  QString precision = params.at(1);
75  PrecisionFactory::fromString(precision.replace("dalton", " dalton")
76  .replace("ppm", " ppm")
77  .replace("res", " res"));
78  }
79  else
80  {
82  QString(
83  "building FilterComplementIonEnhancer from string %1 is not possible")
84  .arg(strBuildParams));
85  }
86 }
excetion to use when an item type is not recognized
static PrecisionPtr fromString(const QString &str)
get a precision pointer from a string
Definition: precision.cpp:72

References pappso::PrecisionFactory::fromString().

◆ 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 138 of file filtercomplementionenhancer.cpp.

144 {
145  for(std::vector<DataPoint>::iterator it = it_begin; it != it_end; it++)
146  {
147  if((it->x >= mz_lower_bound) && (it->x <= mz_upper_bound))
148  {
149  if(it->y < new_intensity)
150  {
151  it->y = new_intensity;
152  }
153  }
154  }
155 }

◆ filter()

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

Implements pappso::FilterInterface.

Definition at line 113 of file filtercomplementionenhancer.cpp.

114 {
115 
116  auto it_end = data_points.end();
117  std::sort(data_points.begin(),
118  it_end,
119  [](const DataPoint &a, const DataPoint &b) { return (a.y > b.y); });
120 
121  for(auto it = data_points.begin(); it != it_end; it++)
122  {
123  double mz_complement = m_targetMzSum - it->x;
124  if(mz_complement > 0)
125  {
126  MzRange mz_range(mz_complement, m_precisionPtr);
128  it->y, mz_range.lower(), mz_range.upper(), it, it_end);
129  }
130  }
131 
132  data_points.sortX();
133  return data_points;
134 }
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
void sortX()
Definition: trace.cpp:956

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

◆ name()

QString pappso::FilterComplementIonEnhancer::name ( ) const
overridevirtual

Implements pappso::FilterNameInterface.

Definition at line 90 of file filtercomplementionenhancer.cpp.

91 {
92  return "complementIonEnhancer";
93 }

◆ toString()

QString pappso::FilterComplementIonEnhancer::toString ( ) const
overridevirtual

Implements pappso::FilterNameInterface.

Definition at line 97 of file filtercomplementionenhancer.cpp.

98 {
99  QString strCode = QString("%1|%2;%3")
100  .arg(name())
101  .arg(QString::number(m_targetMzSum, 'g', 15))
102  .arg(m_precisionPtr->toString());
103  strCode.replace(" ", "");
104 
105  return strCode;
106 }
virtual QString toString() const =0

Member Data Documentation

◆ m_precisionPtr

PrecisionPtr pappso::FilterComplementIonEnhancer::m_precisionPtr
private

Definition at line 99 of file filtercomplementionenhancer.h.

◆ m_targetMzSum

double pappso::FilterComplementIonEnhancer::m_targetMzSum
private

Definition at line 98 of file filtercomplementionenhancer.h.


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