libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
pappso::FilterNormalizeIntensities Class Reference

Sets the maximum intensity of the trace to the provided value. More...

#include <filternormalizeintensities.h>

Inheritance diagram for pappso::FilterNormalizeIntensities:
pappso::FilterNameInterface pappso::FilterInterface

Public Member Functions

 FilterNormalizeIntensities (double new_max_y_value)
 FilterNormalizeIntensities (const QString &parameters)
 FilterNormalizeIntensities (const FilterNormalizeIntensities &other)
virtual ~FilterNormalizeIntensities ()
FilterNormalizeIntensitiesoperator= (const FilterNormalizeIntensities &other)
Tracefilter (Trace &data_points) const override
QString name () const override
QString toString () const override
 Return a string with the textual representation of the configuration data.
Public Member Functions inherited from pappso::FilterNameInterface
virtual ~FilterNameInterface ()
Public Member Functions inherited from pappso::FilterInterface
virtual ~FilterInterface ()

Protected Member Functions

void buildFilterFromString (const QString &strBuildParams) override
 build this filter using a string

Private Attributes

double m_newYMax

Static Private Attributes

static constexpr double nan = std::numeric_limits<double>::quiet_NaN()

Detailed Description

Sets the maximum intensity of the trace to the provided value.

All the other values are modified by applying the same modification ratio.

The amplitude of the trace is computed (maxValue - minValue) The new maxValue is set to the required intensity. All the other data points have their intensity modified:

new_intensity = previous_intensity / old_max_value * new_max_value

Definition at line 67 of file filternormalizeintensities.h.

Constructor & Destructor Documentation

◆ FilterNormalizeIntensities() [1/3]

pappso::FilterNormalizeIntensities::FilterNormalizeIntensities ( double new_max_y_value)

Definition at line 50 of file filternormalizeintensities.cpp.

51 : m_newYMax(new_max_y_value)
52{
53}

References m_newYMax.

Referenced by FilterNormalizeIntensities(), and operator=().

◆ FilterNormalizeIntensities() [2/3]

pappso::FilterNormalizeIntensities::FilterNormalizeIntensities ( const QString & parameters)

Definition at line 56 of file filternormalizeintensities.cpp.

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

References buildFilterFromString().

◆ FilterNormalizeIntensities() [3/3]

pappso::FilterNormalizeIntensities::FilterNormalizeIntensities ( const FilterNormalizeIntensities & other)

Definition at line 62 of file filternormalizeintensities.cpp.

63{
64 m_newYMax = other.m_newYMax;
65}

References FilterNormalizeIntensities(), and m_newYMax.

◆ ~FilterNormalizeIntensities()

pappso::FilterNormalizeIntensities::~FilterNormalizeIntensities ( )
virtual

Definition at line 68 of file filternormalizeintensities.cpp.

69{
70}

Member Function Documentation

◆ buildFilterFromString()

void pappso::FilterNormalizeIntensities::buildFilterFromString ( const QString & strBuildParams)
overrideprotectedvirtual

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 86 of file filternormalizeintensities.cpp.

87{
88 // Typical string: "FloorAmplitudePercentage|15"
89 if(parameters.startsWith(QString("%1|").arg(name())))
90 {
91 QStringList params = parameters.split("|").back().split(";");
92
93 m_newYMax = params.at(0).toDouble();
94 }
95 else
96 {
97 throw pappso::ExceptionNotRecognized(
98 QString("Building of FilterNormalizeIntensities from string %1 failed").arg(parameters));
99 }
100}

References m_newYMax, and name().

Referenced by FilterNormalizeIntensities().

◆ filter()

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

Implements pappso::FilterInterface.

Definition at line 104 of file filternormalizeintensities.cpp.

105{
106 // Start by looking at the most intense data point (greatest y value of the
107 // whole trace)
108
109 auto max_dp_iter = maxYDataPoint(trace.cbegin(), trace.cend());
110
111 if(max_dp_iter == trace.cend())
112 throw pappso::ExceptionNotPossible(
113 QString("Failed to find the max intensity data point in the trace."));
114
115 if(!max_dp_iter->y)
116 throw pappso::ExceptionNotPossible(
117 QString("The max intensity data point in the trace has intensity 0."));
118
119 double ratio = m_newYMax / max_dp_iter->y;
120
121 for(DataPoint &dp : trace)
122 {
123 dp.y *= ratio;
124 }
125
126 // #if 0
127 max_dp_iter = maxYDataPoint(trace.cbegin(), trace.cend());
128 qDebug() << "Now max int:" << max_dp_iter->y;
129
130 // #endif
131
132 return trace;
133}
std::vector< DataPoint >::const_iterator maxYDataPoint(std::vector< DataPoint >::const_iterator begin, std::vector< DataPoint >::const_iterator end)
Definition trace.cpp:169

References m_newYMax, and pappso::maxYDataPoint().

◆ name()

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

Implements pappso::FilterNameInterface.

Definition at line 145 of file filternormalizeintensities.cpp.

146{
147 return "FilterNormalizeIntensities";
148}

Referenced by buildFilterFromString(), and toString().

◆ operator=()

FilterNormalizeIntensities & pappso::FilterNormalizeIntensities::operator= ( const FilterNormalizeIntensities & other)

Definition at line 74 of file filternormalizeintensities.cpp.

75{
76 if(&other == this)
77 return *this;
78
79 m_newYMax = other.m_newYMax;
80
81 return *this;
82}

References FilterNormalizeIntensities(), and m_newYMax.

◆ toString()

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

Return a string with the textual representation of the configuration data.

Implements pappso::FilterNameInterface.

Definition at line 138 of file filternormalizeintensities.cpp.

139{
140 return QString("%1").arg(name()).arg(QString::number(m_newYMax, 'f', 2));
141}

References m_newYMax, and name().

Member Data Documentation

◆ m_newYMax

double pappso::FilterNormalizeIntensities::m_newYMax
private

◆ nan

double pappso::FilterNormalizeIntensities::nan = std::numeric_limits<double>::quiet_NaN()
staticconstexprprivate

Definition at line 87 of file filternormalizeintensities.h.


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