| OpenMS 2.5.0

Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
SignalToNoiseEstimatorMedianRapid Class Reference
Analysis » SignalProcessing

Estimates the signal/noise (S/N) ratio of each data point in a scan by using the median (window based) More...

`#include <OpenMS/FILTERING/NOISEESTIMATION/SignalToNoiseEstimatorMedianRapid.h>`

## Classes

struct | NoiseEstimator
| Class to compute the noise value at a given position. More...

## Public Member Functions

| SignalToNoiseEstimatorMedianRapid (double window_length)
| default constructor More...
NoiseEstimator | estimateNoise (OpenMS::Interfaces::SpectrumPtr spectrum)
| Compute noise estimator for an m/z and intensity array using windows. More...
NoiseEstimator | estimateNoise (OpenMS::Interfaces::ChromatogramPtr chrom)
| Compute noise estimator for an m/z and intensity array using windows. More...
NoiseEstimator | estimateNoise (const std::vector< double > &mz_array, const std::vector< double > &int_array)
| Compute noise estimator for an m/z and intensity array using windows. More...

## Private Member Functions

void | computeNoiseInWindows_ (const std::vector< double > &mz_array, std::vector< double > int_array, std::vector< double > &result, double mz_start)
| Computes the noise in windows for two input arrays and stores the median intensity in the result (internal) More...
double | computeMedian_ (std::vector< double >::iterator &first, std::vector< double >::iterator &last)
| Median computation on a part of an array [first,last) More...

## Private Attributes

double | window_length_
| Window length parameter. More...

## Detailed Description

Estimates the signal/noise (S/N) ratio of each data point in a scan by using the median (window based)

For each scan, we define a set of windows of a pre-defined size (param: window_length_) in m/z domain for which the intensity median is calculated. The noise for a data point is estimated to be the median of the intensities of the current window.

To get a more robust noise estimate, the nose value is calculated two times for two sets of windows that are shifted by 1/2 of the window size and the reported noise value is the average of the two.

A call to estimateNoise will return an object of type NoiseEstimator which then provides a function get_noise_value which will return the noise value for a given m/z value.

The idea behind this class is to have an estimator for signal to noise that gives similar results to SignalToNoiseEstimatorMedian but performs faster. Note that it will not give identical results as SignalToNoiseEstimatorMedian but for many application the results from this class will be sufficient.

## Constructor & Destructor Documentation

## ◆ SignalToNoiseEstimatorMedianRapid()

SignalToNoiseEstimatorMedianRapid | ( | double | window_length | ) |

inline

default constructor

## Member Function Documentation

## ◆ computeMedian_()

double computeMedian_ | ( | std::vector< double >::iterator & | first,
|  | std::vector< double >::iterator & | last
| ) |  |

private

Median computation on a part of an array [first,last)

Note
  Does not guarantee that the elements between [first, last) are in the same order as before (they most likely will not be).

## ◆ computeNoiseInWindows_()

void computeNoiseInWindows_ | ( | const std::vector< double > & | mz_array,
|  | std::vector< double > | int_array,
|  | std::vector< double > & | result,
|  | double | mz_start
| ) |  |

private

Computes the noise in windows for two input arrays and stores the median intensity in the result (internal)

Note that int_array is copied on purpose, since it is modified while sorting, a copy is needed.

## ◆ estimateNoise() [1/3]

NoiseEstimator estimateNoise | ( | OpenMS::Interfaces::SpectrumPtr | spectrum | ) |

inline

Compute noise estimator for an m/z and intensity array using windows.

Will return a noise estimator object.

## ◆ estimateNoise() [2/3]

NoiseEstimator estimateNoise | ( | OpenMS::Interfaces::ChromatogramPtr | chrom | ) |

inline

Compute noise estimator for an m/z and intensity array using windows.

Will return a noise estimator object.

## ◆ estimateNoise() [3/3]

NoiseEstimator estimateNoise | ( | const std::vector< double > & | mz_array,
|  | const std::vector< double > & | int_array
| ) |  |

inline

Compute noise estimator for an m/z and intensity array using windows.

Will return a noise estimator object.

References SignalToNoiseEstimatorMedianRapid::NoiseEstimator::result_windows_even, and SignalToNoiseEstimatorMedianRapid::NoiseEstimator::result_windows_odd.

## Member Data Documentation

## ◆ window_length_

double window_length_

private

Window length parameter.