libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
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
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

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.

References m_precisionPtr, and m_targetMzSum.

Referenced by FilterComplementIonEnhancer().

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

47 ((qmass_spectrum.getPrecursorMz() -
48 (qmass_spectrum.getPrecursorCharge() * MHPLUS / qmass_spectrum.getPrecursorCharge())) *
49 qmass_spectrum.getPrecursorCharge() +
50 (MHPLUS + MHPLUS))),
51 m_precisionPtr(precision_ptr)
52{
53}
uint getPrecursorCharge(bool *ok=nullptr) const
get precursor charge
pappso_double getPrecursorMz(bool *ok=nullptr) const
get precursor mz
const pappso_double MHPLUS(1.007276466879)

References m_precisionPtr, m_targetMzSum, and pappso::MHPLUS().

◆ FilterComplementIonEnhancer() [3/4]

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

Definition at line 55 of file filtercomplementionenhancer.cpp.

56{
57 buildFilterFromString(strBuildParams);
58}
void buildFilterFromString(const QString &strBuildParams) override
build this filter using a string

References buildFilterFromString().

◆ FilterComplementIonEnhancer() [4/4]

FilterComplementIonEnhancer::FilterComplementIonEnhancer ( const FilterComplementIonEnhancer & other)

Copy constructor

Parameters
otherTODO

Definition at line 39 of file filtercomplementionenhancer.cpp.

References FilterComplementIonEnhancer(), m_precisionPtr, and m_targetMzSum.

◆ ~FilterComplementIonEnhancer()

FilterComplementIonEnhancer::~FilterComplementIonEnhancer ( )
virtual

Destructor

Definition at line 101 of file filtercomplementionenhancer.cpp.

102{
103}

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

62{
63 //"complementIonEnhancer|456.567;0.02dalton"
64 if(strBuildParams.startsWith("complementIonEnhancer|"))
65 {
66 QStringList params = strBuildParams.split("|").back().split(";");
67
68 m_targetMzSum = params.at(0).toDouble();
69 QString precision = params.at(1);
71 precision.replace("dalton", " dalton").replace("ppm", " ppm").replace("res", " res"));
72 }
73 else
74 {
75 throw pappso::ExceptionNotRecognized(
76 QString("building FilterComplementIonEnhancer from string %1 is not possible")
77 .arg(strBuildParams));
78 }
79}
static PrecisionPtr fromString(const QString &str)
get a precision pointer from a string
Definition precision.cpp:80

References pappso::PrecisionFactory::fromString(), m_precisionPtr, and m_targetMzSum.

Referenced by FilterComplementIonEnhancer().

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

136{
137 for(std::vector<DataPoint>::iterator it = it_begin; it != it_end; it++)
138 {
139 if((it->x >= mz_lower_bound) && (it->x <= mz_upper_bound))
140 {
141 if(it->y < new_intensity)
142 {
143 it->y = new_intensity;
144 }
145 }
146 }
147}

Referenced by filter().

◆ filter()

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

Implements pappso::FilterInterface.

Definition at line 106 of file filtercomplementionenhancer.cpp.

107{
108
109 auto it_end = data_points.end();
110 std::sort(data_points.begin(), it_end, [](const DataPoint &a, const DataPoint &b) {
111 return (a.y > b.y);
112 });
113
114 for(auto it = data_points.begin(); it != it_end; it++)
115 {
116 double mz_complement = m_targetMzSum - it->x;
117 if(mz_complement > 0)
118 {
119 MzRange mz_range(mz_complement, m_precisionPtr);
120 enhanceComplementMassInRange(it->y, mz_range.lower(), mz_range.upper(), it, it_end);
121 }
122 }
123
124 data_points.sortX();
125 return data_points;
126}
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(Enums::SortOrder sort_order=Enums::SortOrder::ascending)
Definition trace.cpp:1071

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

◆ name()

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

Implements pappso::FilterNameInterface.

Definition at line 83 of file filtercomplementionenhancer.cpp.

84{
85 return "complementIonEnhancer";
86}

Referenced by toString().

◆ toString()

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

Implements pappso::FilterNameInterface.

Definition at line 90 of file filtercomplementionenhancer.cpp.

91{
92 QString strCode = QString("%1|%2;%3")
93 .arg(name())
94 .arg(QString::number(m_targetMzSum, 'g', 15))
95 .arg(m_precisionPtr->toString());
96 strCode.replace(" ", "");
97
98 return strCode;
99}

References m_precisionPtr, m_targetMzSum, and name().

Member Data Documentation

◆ m_precisionPtr

PrecisionPtr pappso::FilterComplementIonEnhancer::m_precisionPtr
private

◆ m_targetMzSum

double pappso::FilterComplementIonEnhancer::m_targetMzSum
private

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