libpappsomspp
Library for mass spectrometry
filterceilingamplitudepercentage.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 FilterCeilingAmplitudePercentage;
49 
50 typedef std::shared_ptr<FilterCeilingAmplitudePercentage> FilterCeilingAmplitudePercentageSPtr;
51 typedef std::shared_ptr<const FilterCeilingAmplitudePercentage> FilterCeilingAmplitudePercentageCstSPtr;
52 
53 
54 /**
55  * @brief Redefines the ceiling intensity of the Trace
56  *
57  * The amplitude of the trace is computed (maxValue - minValue)
58  * Its fraction is calculated = amplitude * (percentage / 100)
59  * The threshold value is computed as (minValue + fraction)
60  *
61  * When the values to be filtered are above that threshold they acquire that
62  * threshold value.
63  *
64  * When the values to be filtered are below that threshold they remain
65  * unchanged.
66  *
67  * This effectively re-ceilings the values to threshold.
68  */
70 {
71  public:
72  FilterCeilingAmplitudePercentage(double percentage);
73  FilterCeilingAmplitudePercentage(const QString &parameters);
75 
77 
79 
80  Trace &filter(Trace &data_points) const override;
81 
82  double getPercentage() const;
83  QString name() const override;
84 
85  QString toString() const override;
86 
87  protected:
88  void buildFilterFromString(const QString &strBuildParams) override;
89 
90  private:
91  double m_percentage;
92 };
93 } // namespace pappso
Redefines the ceiling 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 FilterCeilingAmplitudePercentage > FilterCeilingAmplitudePercentageCstSPtr
std::shared_ptr< FilterCeilingAmplitudePercentage > FilterCeilingAmplitudePercentageSPtr