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 QString name () const =0
 
virtual QString toString () const =0
 
virtual ~FilterNameInterface ()
 
- Public Member Functions inherited from pappso::FilterInterface
virtual Tracefilter (Trace &data_points) const =0
 
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

virtual void buildFilterFromString (const QString &strBuildParams)=0
 build this filter using a string More...
 

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.

◆ ~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(SortOrder sort_order=SortOrder::ascending)
Definition: trace.cpp:1086

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: