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
 
- Protected Member Functions inherited from pappso::FilterNameInterface

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}

◆ FilterNormalizeIntensities() [2/3]

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

Definition at line 56 of file filternormalizeintensities.cpp.

58{
59 buildFilterFromString(parameters);
60}
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 63 of file filternormalizeintensities.cpp.

65{
66 m_newYMax = other.m_newYMax;
67}

References m_newYMax.

◆ ~FilterNormalizeIntensities()

pappso::FilterNormalizeIntensities::~FilterNormalizeIntensities ( )
virtual

Definition at line 70 of file filternormalizeintensities.cpp.

71{
72}

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

89{
90 // Typical string: "FloorAmplitudePercentage|15"
91 if(parameters.startsWith(QString("%1|").arg(name())))
92 {
93 QStringList params = parameters.split("|").back().split(";");
94
95 m_newYMax = params.at(0).toDouble();
96 }
97 else
98 {
100 QString("Building of FilterNormalizeIntensities from string %1 failed")
101 .arg(parameters));
102 }
103}
excetion to use when an item type is not recognized

References m_newYMax, and name().

Referenced by FilterNormalizeIntensities().

◆ filter()

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

Implements pappso::FilterInterface.

Definition at line 107 of file filternormalizeintensities.cpp.

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

References m_newYMax, and pappso::maxYDataPoint().

◆ name()

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

Implements pappso::FilterNameInterface.

Definition at line 148 of file filternormalizeintensities.cpp.

149{
150 return "FilterNormalizeIntensities";
151}

Referenced by buildFilterFromString(), and toString().

◆ operator=()

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

Definition at line 76 of file filternormalizeintensities.cpp.

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

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

142{
143 return QString("%1").arg(name()).arg(QString::number(m_newYMax, 'f', 2));
144}

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: