libpappsomspp
Library for mass spectrometry
filterflooramplitudepercentage.h
Go to the documentation of this file.
1 /* BEGIN software license
2  *
3  * msXpertSuite - mass spectrometry software suite
4  * -----------------------------------------------
5  * Copyright(C) 2009,...,2021 Filippo Rusconi
6  *
7  * http://www.msxpertsuite.org
8  *
9  * This file is part of the msXpertSuite project.
10  *
11  * The msXpertSuite project is the successor of the massXpert project. This
12  * project now includes various independent modules:
13  *
14  * - massXpert, model polymer chemistries and simulate mass spectrometric data;
15  * - mineXpert, a powerful TIC chromatogram/mass spectrum viewer/miner;
16  *
17  * This program is free software: you can redistribute it and/or modify
18  * it under the terms of the GNU General Public License as published by
19  * the Free Software Foundation, either version 3 of the License, or
20  * (at your option) any later version.
21  *
22  * This program is distributed in the hope that it will be useful,
23  * but WITHOUT ANY WARRANTY; without even the implied warranty of
24  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25  * GNU General Public License for more details.
26  *
27  * You should have received a copy of the GNU General Public License
28  * along with this program. If not, see <http://www.gnu.org/licenses/>.
29  *
30  * END software license
31  */
32 
33 
34 #pragma once
35 
36 
37 #include <QObject>
38 
39 #include "../../trace/trace.h"
40 #include "../../exportinmportconfig.h"
41 #include "filternameinterface.h"
42 
43 
44 namespace pappso
45 {
46 
47 
48 class FilterFloorAmplitudePercentage;
49 
50 typedef std::shared_ptr<FilterFloorAmplitudePercentage>
52 typedef std::shared_ptr<const FilterFloorAmplitudePercentage>
54 
55 
56 /**
57  * @brief Redefines the floor intensity of the Trace
58  *
59  * The amplitude of the trace is computed (maxValue - minValue)
60  * Its fraction is calculated = amplitude * (percentage / 100)
61  * The threshold value is computed as (minValue + fraction)
62  *
63  * When the values to be filtered are below that threshold they acquire that
64  * threshold value.
65  *
66  * When the values to be filtered are above that threshold they remain
67  * unchanged.
68  *
69  * This effectively re-floors the values to threshold.
70  */
72 {
73  public:
74  FilterFloorAmplitudePercentage(double percentage);
75  FilterFloorAmplitudePercentage(const QString &parameters);
77 
79 
81  operator=(const FilterFloorAmplitudePercentage &other);
82 
83  Trace &filter(Trace &data_points) const override;
84 
85  double getPercentage() const;
86  QString name() const override;
87 
88  QString toString() const override;
89 
90  protected:
91  void buildFilterFromString(const QString &strBuildParams) override;
92 
93  private:
94  double m_percentage;
95 };
96 } // namespace pappso
Redefines the floor intensity of the Trace.
Interface that allows to build filter objects from strings.
A simple container of DataPoint instances.
Definition: trace.h:148
#define PMSPP_LIB_DECL
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition: aa.cpp:39
std::shared_ptr< const FilterFloorAmplitudePercentage > FilterFloorAmplitudePercentageCstSPtr
std::shared_ptr< FilterFloorAmplitudePercentage > FilterFloorAmplitudePercentageSPtr