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

Redefines the ceiling intensity of the Trace. More...

#include <filterceilingamplitudepercentage.h>

Inheritance diagram for pappso::FilterCeilingAmplitudePercentage:
pappso::FilterNameInterface pappso::FilterInterface

Public Member Functions

 FilterCeilingAmplitudePercentage (double percentage)
 
 FilterCeilingAmplitudePercentage (const QString &parameters)
 
 FilterCeilingAmplitudePercentage (const FilterCeilingAmplitudePercentage &other)
 
virtual ~FilterCeilingAmplitudePercentage ()
 
FilterCeilingAmplitudePercentageoperator= (const FilterCeilingAmplitudePercentage &other)
 
Tracefilter (Trace &data_points) const override
 
double getPercentage () const
 
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_percentage
 

Detailed Description

Redefines the ceiling intensity of the Trace.

The amplitude of the trace is computed (maxValue - minValue) Its fraction is calculated = amplitude * (percentage / 100) The threshold value is computed as (minValue + fraction)

When the values to be filtered are above that threshold they acquire that threshold value.

When the values to be filtered are below that threshold they remain unchanged.

This effectively re-ceilings the values to threshold.

Definition at line 71 of file filterceilingamplitudepercentage.h.

Constructor & Destructor Documentation

◆ FilterCeilingAmplitudePercentage() [1/3]

pappso::FilterCeilingAmplitudePercentage::FilterCeilingAmplitudePercentage ( double percentage)

◆ FilterCeilingAmplitudePercentage() [2/3]

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

Definition at line 80 of file filterceilingamplitudepercentage.cpp.

82{
83 buildFilterFromString(parameters);
84}
void buildFilterFromString(const QString &strBuildParams) override
build this filter using a string

References buildFilterFromString().

◆ FilterCeilingAmplitudePercentage() [3/3]

pappso::FilterCeilingAmplitudePercentage::FilterCeilingAmplitudePercentage ( const FilterCeilingAmplitudePercentage & other)

Definition at line 56 of file filterceilingamplitudepercentage.cpp.

58{
59 m_percentage = other.m_percentage;
60}

References m_percentage.

◆ ~FilterCeilingAmplitudePercentage()

pappso::FilterCeilingAmplitudePercentage::~FilterCeilingAmplitudePercentage ( )
virtual

Definition at line 63 of file filterceilingamplitudepercentage.cpp.

64{
65}

Member Function Documentation

◆ buildFilterFromString()

void pappso::FilterCeilingAmplitudePercentage::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 filterceilingamplitudepercentage.cpp.

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

References m_percentage, and name().

Referenced by FilterCeilingAmplitudePercentage().

◆ filter()

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

Implements pappso::FilterInterface.

Definition at line 109 of file filterceilingamplitudepercentage.cpp.

110{
111
112 auto it_min = minYDataPoint(data_points.begin(), data_points.end());
113 auto it_max = maxYDataPoint(data_points.begin(), data_points.end());
114
115 if(it_min == data_points.end() || it_max == data_points.end())
116 return data_points;
117
118 double min = it_min->y;
119 double max = it_max->y;
120
121 double amplitude = max - min;
122
123 double amplitude_ratio = amplitude * m_percentage / 100;
124
125 double threshold = min + amplitude_ratio;
126
127 // Since we never remove points, we only change their y value, we can do the
128 // filtering inplace.
129
130 for(auto &&data_point : data_points)
131 {
132 // Change the value to be threshold (re-ceiling in action).
133 if(data_point.y > threshold)
134 {
135 data_point.y = threshold;
136 }
137 }
138
139 return data_points;
140}
std::vector< DataPoint >::const_iterator maxYDataPoint(std::vector< DataPoint >::const_iterator begin, std::vector< DataPoint >::const_iterator end)
Definition trace.cpp:180
std::vector< DataPoint >::const_iterator minYDataPoint(std::vector< DataPoint >::const_iterator begin, std::vector< DataPoint >::const_iterator end)
Definition trace.cpp:158
@ max
maximum of intensities

References m_percentage, pappso::max, pappso::maxYDataPoint(), pappso::min, and pappso::minYDataPoint().

◆ getPercentage()

double pappso::FilterCeilingAmplitudePercentage::getPercentage ( ) const

Definition at line 144 of file filterceilingamplitudepercentage.cpp.

145{
146 return m_percentage;
147}

References m_percentage.

◆ name()

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

Implements pappso::FilterNameInterface.

Definition at line 160 of file filterceilingamplitudepercentage.cpp.

161{
162 return "CeilingAmplitudePercentage";
163}

Referenced by buildFilterFromString(), and toString().

◆ operator=()

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

Definition at line 68 of file filterceilingamplitudepercentage.cpp.

70{
71 if(&other == this)
72 return *this;
73
74 m_percentage = other.m_percentage;
75
76 return *this;
77}

References m_percentage.

◆ toString()

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

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

Implements pappso::FilterNameInterface.

Definition at line 152 of file filterceilingamplitudepercentage.cpp.

153{
154 return QString("%1|%2").arg(name()).arg(
155 QString::number(m_percentage, 'f', 2));
156}

References m_percentage, and name().

Member Data Documentation

◆ m_percentage

double pappso::FilterCeilingAmplitudePercentage::m_percentage
private

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