libpappsomspp
Library for mass spectrometry
Toggle main menu visibility
Loading...
Searching...
No Matches
localsignaltonoiseestimator.h
Go to the documentation of this file.
1
// Copyright 2026 Filippo Rusconi
2
// Largely inspired by code in OpenMS, by Chris Bielow
3
4
#pragma once
5
6
/////////////////////// stdlib includes
7
8
9
/////////////////////// Qt includes
10
#include <QList>
11
#include <QMap>
12
13
/////////////////////// pappsomspp includes
14
#include "
pappsomspp/core/trace/trace.h
"
15
16
17
/////////////////////// Local includes
18
#include "
pappsomspp/export-import-config.h
"
19
20
namespace
pappso
21
{
22
23
using
TraceIterator
= std::vector<DataPoint>::const_iterator;
24
25
class
PMSPP_LIB_DECL
LocalSignalToNoiseEstimator
26
{
27
28
public
:
29
// We will need that in the Parameters below.
30
enum
IntensityThresholdCalculation
31
{
32
MANUAL_BY_VALUE
= 0x0,
33
AUTO_MAX_BY_STDEV
,
34
AUTO_MAX_BY_PERCENTILE
35
};
36
37
struct
Parameters
38
{
39
// Maximal intensity considered during binning (values above get discarded)
40
// This ensures that absurdly-intense peaks are not used to compute the
41
// stats about the maximum intensity of the trace.
42
double
maxIntensity
= -1;
43
44
// parameter for initial automatic estimation of "max_intensity_": a stdev
45
// multiplier
46
double
maxIntStdDevFactor
= 3;
47
48
// parameter for initial automatic estimation of "max_intensity_" percentile
49
// or a stde
50
double
maxIntPercentile
= 95;
51
52
// Which method is used for estimating m_maxIntensity "max intensity of
53
// trace". valid are MANUAL, AUTOMABYSTDEV or AUTOMAXBYPERCENTILE
54
int
maxIntMode
=
IntensityThresholdCalculation::AUTO_MAX_BY_STDEV
;
55
56
// range of data points which belong to a window in Thomson
57
double
windowSize
= 200;
58
59
// number of bins in the histogram
60
int
binCount
= 30;
61
62
// minimal number of elements a window needs to cover to be used
63
int
minRequiredElements
= 10;
64
65
// used as noise value for windows which cover less than
66
// "min_required_elements_" use a very high value if you want to get a low
67
// S/N result
68
double
noiseValueForEmptyWindow
= std::pow(10.0, 20);
69
70
Parameters
() {};
71
Parameters
(
double
max_intensity,
72
double
max_int_std_dev_factor,
73
double
max_int_percentile,
74
int
max_int_mode,
75
double
window_size,
76
int
bin_count,
77
int
min_required_elements,
78
double
noise_value_for_empty_window)
79
{
80
maxIntensity
= max_intensity;
81
maxIntStdDevFactor
= max_int_std_dev_factor;
82
maxIntPercentile
= max_int_percentile;
83
maxIntMode
= max_int_mode;
84
windowSize
= window_size;
85
binCount
= bin_count;
86
minRequiredElements
= min_required_elements;
87
noiseValueForEmptyWindow
= noise_value_for_empty_window;
88
}
89
90
Parameters
(
const
Parameters
&other)
91
{
92
maxIntensity
= other.
maxIntensity
;
93
maxIntStdDevFactor
= other.
maxIntStdDevFactor
;
94
maxIntPercentile
= other.
maxIntPercentile
;
95
maxIntMode
= other.
maxIntMode
;
96
windowSize
= other.
windowSize
;
97
binCount
= other.
binCount
;
98
minRequiredElements
= other.
minRequiredElements
;
99
noiseValueForEmptyWindow
= other.
noiseValueForEmptyWindow
;
100
}
101
};
102
103
explicit
LocalSignalToNoiseEstimator
(
const
Parameters ¶meters);
104
virtual
~LocalSignalToNoiseEstimator
();
105
106
struct
GaussianEstimateParams
107
{
108
// mean of estimated Gaussian
109
double
mean
;
110
// variance of estimated Gaussian
111
double
variance
;
112
};
113
114
GaussianEstimateParams
115
estimateGaussian
(
const
TraceIterator
&iter_first_data_point,
116
const
TraceIterator
&iter_last_data_point)
const
;
117
118
void
initialize
(
const
Trace
&trace);
119
void
computeSignaToNoiseRatio
(
const
Trace
&trace);
120
double
getSignalToNoiseRatio
(qsizetype index)
const
;
121
122
protected
:
123
Parameters
m_parameters
;
124
125
// counter for sparse windows
126
double
m_sparseWindowPercentage
;
127
// counter for histogram overflow
128
double
m_histogramOverflowPercentage
;
129
130
QList<double>
m_signalToNoiseEstimates
;
131
};
132
133
134
}
// namespace pappso
pappso::LocalSignalToNoiseEstimator
Definition
localsignaltonoiseestimator.h:26
pappso::LocalSignalToNoiseEstimator::initialize
void initialize(const Trace &trace)
Definition
localsignaltonoiseestimator.cpp:65
pappso::LocalSignalToNoiseEstimator::m_histogramOverflowPercentage
double m_histogramOverflowPercentage
Definition
localsignaltonoiseestimator.h:128
pappso::LocalSignalToNoiseEstimator::IntensityThresholdCalculation
IntensityThresholdCalculation
Definition
localsignaltonoiseestimator.h:31
pappso::LocalSignalToNoiseEstimator::AUTO_MAX_BY_STDEV
@ AUTO_MAX_BY_STDEV
Definition
localsignaltonoiseestimator.h:33
pappso::LocalSignalToNoiseEstimator::AUTO_MAX_BY_PERCENTILE
@ AUTO_MAX_BY_PERCENTILE
Definition
localsignaltonoiseestimator.h:34
pappso::LocalSignalToNoiseEstimator::MANUAL_BY_VALUE
@ MANUAL_BY_VALUE
Definition
localsignaltonoiseestimator.h:32
pappso::LocalSignalToNoiseEstimator::LocalSignalToNoiseEstimator
LocalSignalToNoiseEstimator(const Parameters ¶meters)
Definition
localsignaltonoiseestimator.cpp:21
pappso::LocalSignalToNoiseEstimator::m_signalToNoiseEstimates
QList< double > m_signalToNoiseEstimates
Definition
localsignaltonoiseestimator.h:130
pappso::LocalSignalToNoiseEstimator::computeSignaToNoiseRatio
void computeSignaToNoiseRatio(const Trace &trace)
Definition
localsignaltonoiseestimator.cpp:73
pappso::LocalSignalToNoiseEstimator::m_parameters
Parameters m_parameters
Definition
localsignaltonoiseestimator.h:123
pappso::LocalSignalToNoiseEstimator::m_sparseWindowPercentage
double m_sparseWindowPercentage
Definition
localsignaltonoiseestimator.h:126
pappso::LocalSignalToNoiseEstimator::estimateGaussian
GaussianEstimateParams estimateGaussian(const TraceIterator &iter_first_data_point, const TraceIterator &iter_last_data_point) const
Definition
localsignaltonoiseestimator.cpp:32
pappso::LocalSignalToNoiseEstimator::getSignalToNoiseRatio
double getSignalToNoiseRatio(qsizetype index) const
Definition
localsignaltonoiseestimator.cpp:351
pappso::Trace
A simple container of DataPoint instances.
Definition
trace.h:152
export-import-config.h
PMSPP_LIB_DECL
#define PMSPP_LIB_DECL
Definition
export-import-config.h:14
pappso
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition
aa.cpp:39
pappso::TraceIterator
std::vector< DataPoint >::const_iterator TraceIterator
Definition
localsignaltonoiseestimator.h:23
pappso::LocalSignalToNoiseEstimator::GaussianEstimateParams
Definition
localsignaltonoiseestimator.h:107
pappso::LocalSignalToNoiseEstimator::GaussianEstimateParams::variance
double variance
Definition
localsignaltonoiseestimator.h:111
pappso::LocalSignalToNoiseEstimator::GaussianEstimateParams::mean
double mean
Definition
localsignaltonoiseestimator.h:109
pappso::LocalSignalToNoiseEstimator::Parameters
Definition
localsignaltonoiseestimator.h:38
pappso::LocalSignalToNoiseEstimator::Parameters::maxIntensity
double maxIntensity
Definition
localsignaltonoiseestimator.h:42
pappso::LocalSignalToNoiseEstimator::Parameters::noiseValueForEmptyWindow
double noiseValueForEmptyWindow
Definition
localsignaltonoiseestimator.h:68
pappso::LocalSignalToNoiseEstimator::Parameters::maxIntStdDevFactor
double maxIntStdDevFactor
Definition
localsignaltonoiseestimator.h:46
pappso::LocalSignalToNoiseEstimator::Parameters::minRequiredElements
int minRequiredElements
Definition
localsignaltonoiseestimator.h:63
pappso::LocalSignalToNoiseEstimator::Parameters::maxIntPercentile
double maxIntPercentile
Definition
localsignaltonoiseestimator.h:50
pappso::LocalSignalToNoiseEstimator::Parameters::windowSize
double windowSize
Definition
localsignaltonoiseestimator.h:57
pappso::LocalSignalToNoiseEstimator::Parameters::Parameters
Parameters()
Definition
localsignaltonoiseestimator.h:70
pappso::LocalSignalToNoiseEstimator::Parameters::Parameters
Parameters(const Parameters &other)
Definition
localsignaltonoiseestimator.h:90
pappso::LocalSignalToNoiseEstimator::Parameters::maxIntMode
int maxIntMode
Definition
localsignaltonoiseestimator.h:54
pappso::LocalSignalToNoiseEstimator::Parameters::binCount
int binCount
Definition
localsignaltonoiseestimator.h:60
pappso::LocalSignalToNoiseEstimator::Parameters::Parameters
Parameters(double max_intensity, double max_int_std_dev_factor, double max_int_percentile, int max_int_mode, double window_size, int bin_count, int min_required_elements, double noise_value_for_empty_window)
Definition
localsignaltonoiseestimator.h:71
trace.h
pappsomspp
core
processing
detection
localsignaltonoiseestimator.h
Generated on
for libpappsomspp by
1.17.0