| OpenMS 2.5.0

Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PeakPickerHiRes Class Reference
Analysis » PeakPicking

This class implements a fast peak-picking algorithm best suited for high resolution MS data (FT-ICR-MS, Orbitrap). In high resolution data, the signals of ions with similar mass-to-charge ratios (m/z) exhibit little or no overlapping and therefore allow for a clear separation. Furthermore, ion signals tend to show well-defined peak shapes with narrow peak width. More...

`#include <OpenMS/TRANSFORMATIONS/RAW2PEAK/PeakPickerHiRes.h>`

Inheritance diagram for PeakPickerHiRes:

## Classes

struct | PeakBoundary
| structure for peak boundaries More...

## Public Member Functions

| PeakPickerHiRes ()
| Constructor. More...
| ~PeakPickerHiRes () override
| Destructor. More...
void | pick (const MSSpectrum &input, MSSpectrum &output) const
| Applies the peak-picking algorithm to a single spectrum (MSSpectrum). The resulting picked peaks are written to the output spectrum. More...
void | pick (const MSChromatogram &input, MSChromatogram &output) const
| Applies the peak-picking algorithm to a single chromatogram (MSChromatogram). The resulting picked peaks are written to the output chromatogram. More...
void | pick (const MSSpectrum &input, MSSpectrum &output, std::vector< PeakBoundary > &boundaries, bool check_spacings=true) const
| Applies the peak-picking algorithm to a single spectrum (MSSpectrum). The resulting picked peaks are written to the output spectrum. Peak boundaries are written to a separate structure. More...
void | pick (const MSChromatogram &input, MSChromatogram &output, std::vector< PeakBoundary > &boundaries, bool check_spacings=false) const
| Applies the peak-picking algorithm to a single chromatogram (MSChromatogram). The resulting picked peaks are written to the output chromatogram. More...
void | pickExperiment (const PeakMap &input, PeakMap &output, const bool check_spectrum_type=true) const
| Applies the peak-picking algorithm to a map (MSExperiment). This method picks peaks for each scan in the map consecutively. The resulting picked peaks are written to the output map. More...
void | pickExperiment (const PeakMap &input, PeakMap &output, std::vector< std::vector< PeakBoundary > > &boundaries_spec, std::vector< std::vector< PeakBoundary > > &boundaries_chrom, const bool check_spectrum_type=true) const
| Applies the peak-picking algorithm to a map (MSExperiment). This method picks peaks for each scan in the map consecutively. The resulting picked peaks are written to the output map. More...
void | pickExperiment (OnDiscMSExperiment &input, PeakMap &output, const bool check_spectrum_type=true) const
| Applies the peak-picking algorithm to a map (MSExperiment). This method picks peaks for each scan in the map consecutively. The resulting picked peaks are written to the output map. More...
Public Member Functions inherited from DefaultParamHandler
| DefaultParamHandler (const String &name)
| Constructor with name that is displayed in error messages. More...
| DefaultParamHandler (const DefaultParamHandler &rhs)
| Copy constructor. More...
virtual | ~DefaultParamHandler ()
| Destructor. More...
virtual DefaultParamHandler & | operator= (const DefaultParamHandler &rhs)
| Assignment operator. More...
virtual bool | operator== (const DefaultParamHandler &rhs) const
| Equality operator. More...
void | setParameters (const Param &param)
| Sets the parameters. More...
const Param & | getParameters () const
| Non-mutable access to the parameters. More...
const Param & | getDefaults () const
| Non-mutable access to the default parameters. More...
const String & | getName () const
| Non-mutable access to the name. More...
void | setName (const String &name)
| Mutable access to the name. More...
const std::vector< String > & | getSubsections () const
| Non-mutable access to the registered subsections. More...
Public Member Functions inherited from ProgressLogger
| ProgressLogger ()
| Constructor. More...
| ~ProgressLogger ()
| Destructor. More...
| ProgressLogger (const ProgressLogger &other)
| Copy constructor. More...
ProgressLogger & | operator= (const ProgressLogger &other)
| Assignment Operator. More...
void | setLogType (LogType type) const
| Sets the progress log that should be used. The default type is NONE! More...
LogType | getLogType () const
| Returns the type of progress log being used. More...
void | startProgress (SignedSize begin, SignedSize end, const String &label) const
| Initializes the progress display. More...
void | setProgress (SignedSize value) const
| Sets the current progress. More...
void | endProgress () const
| Ends the progress display. More...
void | nextProgress () const
| increment progress by 1 (according to range begin-end) More...

## Protected Member Functions

template<typename ContainerType >
void | pick_ (const ContainerType &input, ContainerType &output, std::vector< PeakBoundary > &boundaries, bool check_spacings=true) const
void | updateMembers_ () override
| This method is used to update extra member variables at the end of the setParameters() method. More...
Protected Member Functions inherited from DefaultParamHandler
void | defaultsToParam_ ()
| Updates the parameters after the defaults have been set in the constructor. More...

## Protected Attributes

double | signal_to_noise_
double | spacing_difference_gap_
double | spacing_difference_
unsigned | missing_
std::vector< Int > | ms_levels_
bool | report_FWHM_
| add floatDataArray 'FWHM'/'FWHM_ppm' to spectra with peak FWHM More...
bool | report_FWHM_as_ppm_
| unit of 'FWHM' float data array (can be absolute or ppm). More...
Protected Attributes inherited from DefaultParamHandler
Param | param_
| Container for current parameters. More...
Param | defaults_
| Container for default parameters. This member should be filled in the constructor of derived classes! More...
std::vector< String > | subsections_
| Container for registered subsections. This member should be filled in the constructor of derived classes! More...
String | error_name_
| Name that is displayed in error messages during the parameter checking. More...
bool | check_defaults_
| If this member is set to false no checking if parameters in done;. More...
bool | warn_empty_defaults_
| If this member is set to false no warning is emitted when defaults are empty;. More...
Protected Attributes inherited from ProgressLogger
LogType | type_
time_t | last_invoke_
ProgressLoggerImpl * | current_logger_

## Additional Inherited Members

Public Types inherited from ProgressLogger
enum | LogType { CMD, GUI, NONE }
| Possible log types. More...
Static Protected Member Functions inherited from ProgressLogger
static String | logTypeToFactoryName_ (LogType type)
| Return the name of the factory product used for this log type. More...
Static Protected Attributes inherited from ProgressLogger
static int | recursion_depth_

## Detailed Description

This class implements a fast peak-picking algorithm best suited for high resolution MS data (FT-ICR-MS, Orbitrap). In high resolution data, the signals of ions with similar mass-to-charge ratios (m/z) exhibit little or no overlapping and therefore allow for a clear separation. Furthermore, ion signals tend to show well-defined peak shapes with narrow peak width.

This peak-picking algorithm detects ion signals in profile data and reconstructs the corresponding peak shape by cubic spline interpolation. Signal detection depends on the signal-to-noise ratio which is adjustable by the user (see parameter signal_to_noise). A picked peak's m/z and intensity value is given by the maximum of the underlying peak spline.

So far, this peak picker was mainly tested on high resolution data. With appropriate preprocessing steps (e.g. noise reduction and baseline subtraction), it might be also applied to low resolution data.

Parameters of this class are:

Name | Type | Default | Restrictions | Description
--- | --- | --- | --- | ---
signal_to_noise | float | 0.0 | min: 0.0 | Minimal signal-to-noise ratio for a peak to be picked (0.0 disables SNT estimation!)
spacing_difference_gap | float | 4.0 | min: 0.0 | The extension of a peak is stopped if the spacing between two subsequent data points exceeds 'spacing_difference_gap * min_spacing'. 'min_spacing' is the smaller of the two spacings from the peak apex to its two neighboring points. '0' to disable the constraint. Not applicable to chromatograms.
spacing_difference | float | 1.5 | min: 0.0 | Maximum allowed difference between points during peak extension, in multiples of the minimal difference between the peak apex and its two neighboring points. If this difference is exceeded a missing point is assumed (see parameter 'missing'). A higher value implies a less stringent peak definition, since individual signals within the peak are allowed to be further apart. '0' to disable the constraint. Not applicable to chromatograms.
missing | int | 1 | min: 0 | Maximum number of missing points allowed when extending a peak to the left or to the right. A missing data point occurs if the spacing between two subsequent data points exceeds 'spacing_difference * min_spacing'. 'min_spacing' is the smaller of the two spacings from the peak apex to its two neighboring points. Not applicable to chromatograms.
ms_levels | int list | [] | min: 1 | List of MS levels for which the peak picking is applied. If empty, auto mode is enabled, all peaks which aren't picked yet will get picked. Other scans are copied to the output without changes.
report_FWHM | string | false | true, false | Add metadata for FWHM (as floatDataArray named 'FWHM' or 'FWHM_ppm', depending on param 'report_FWHM_unit') for each picked peak.
report_FWHM_unit | string | relative | relative, absolute | Unit of FWHM. Either absolute in the unit of input, e.g. 'm/z' for spectra, or relative as ppm (only sensible for spectra, not chromatograms).
SignalToNoise:max_intensity | int | -1 | min: -1 | maximal intensity considered for histogram construction. By default, it will be calculated automatically (see auto_mode). Only provide this parameter if you know what you are doing (and change 'auto_mode' to '-1')! All intensities EQUAL/ABOVE 'max_intensity' will be added to the LAST histogram bin. If you choose 'max_intensity' too small, the noise estimate might be too small as well. If chosen too big, the bins become quite large (which you could counter by increasing 'bin_count', which increases runtime). In general, the Median-S/N estimator is more robust to a manual max_intensity than the MeanIterative-S/N.
SignalToNoise:auto_max_stdev_factor | float | 3.0 | min: 0.0 max: 999.0 | parameter for 'max_intensity' estimation (if 'auto_mode' == 0): mean + 'auto_max_stdev_factor' * stdev
SignalToNoise:auto_max_percentile | int | 95 | min: 0 max: 100 | parameter for 'max_intensity' estimation (if 'auto_mode' == 1): auto_max_percentile th percentile
SignalToNoise:auto_mode | int | 0 | min: -1 max: 1 | method to use to determine maximal intensity: -1 --> use 'max_intensity'; 0 --> 'auto_max_stdev_factor' method (default); 1 --> 'auto_max_percentile' method
SignalToNoise:win_len | float | 200.0 | min: 1.0 | window length in Thomson
SignalToNoise:bin_count | int | 30 | min: 3 | number of bins for intensity values
SignalToNoise:min_required_elements | int | 10 | min: 1 | minimum number of elements required in a window (otherwise it is considered sparse)
SignalToNoise:noise_for_empty_window | float | 1.0e20 |  | noise value used for sparse windows
SignalToNoise:write_log_messages | string | true | true, false | Write out log messages in case of sparse windows or median in rightmost histogram bin

Note:

- If a section name is documented, the documentation is displayed as tooltip.
- Advanced parameter names are italic.

Note
  The peaks must be sorted according to ascending m/z!

## Class Documentation

## ◆ OpenMS::PeakPickerHiRes::PeakBoundary

struct OpenMS::PeakPickerHiRes::PeakBoundary

structure for peak boundaries

Class Members
double | mz_max |
double | mz_min |

## Constructor & Destructor Documentation

## ◆ PeakPickerHiRes()

PeakPickerHiRes | ( |  | ) |

Constructor.

## ◆ ~PeakPickerHiRes()

~PeakPickerHiRes | ( |  | ) |

override

Destructor.

## Member Function Documentation

## ◆ pick() [1/4]

void pick | ( | const MSSpectrum & | input,
|  | MSSpectrum & | output
| ) |  | const

Applies the peak-picking algorithm to a single spectrum (MSSpectrum). The resulting picked peaks are written to the output spectrum.

Parameters

  input | input spectrum in profile mode
  output | output spectrum with picked peaks

Referenced by PeakPickerIterative::pick().

## ◆ pick() [2/4]

void pick | ( | const MSChromatogram & | input,
|  | MSChromatogram & | output
| ) |  | const

Applies the peak-picking algorithm to a single chromatogram (MSChromatogram). The resulting picked peaks are written to the output chromatogram.

Parameters

  input | input chromatogram in profile mode
  output | output chromatogram with picked peaks

## ◆ pick() [3/4]

void pick | ( | const MSSpectrum & | input,
|  | MSSpectrum & | output,
|  | std::vector< PeakBoundary > & | boundaries,
|  | bool | check_spacings = `true`
| ) |  | const

Applies the peak-picking algorithm to a single spectrum (MSSpectrum). The resulting picked peaks are written to the output spectrum. Peak boundaries are written to a separate structure.

Parameters

  input | input spectrum in profile mode
  output | output spectrum with picked peaks
  boundaries | boundaries of the picked peaks
  check_spacings | check spacing constraints? (yes for spectra, no for chromatograms)

## ◆ pick() [4/4]

void pick | ( | const MSChromatogram & | input,
|  | MSChromatogram & | output,
|  | std::vector< PeakBoundary > & | boundaries,
|  | bool | check_spacings = `false`
| ) |  | const

Applies the peak-picking algorithm to a single chromatogram (MSChromatogram). The resulting picked peaks are written to the output chromatogram.

Parameters

  input | input chromatogram in profile mode
  output | output chromatogram with picked peaks
  boundaries | boundaries of the picked peaks

## ◆ pick_()

void pick_ | ( | const ContainerType & | input,
|  | ContainerType & | output,
|  | std::vector< PeakBoundary > & | boundaries,
|  | bool | check_spacings = `true`
| ) |  | const

protected

## ◆ pickExperiment() [1/3]

void pickExperiment | ( | const PeakMap & | input,
|  | PeakMap & | output,
|  | const bool | check_spectrum_type = `true`
| ) |  | const

Applies the peak-picking algorithm to a map (MSExperiment). This method picks peaks for each scan in the map consecutively. The resulting picked peaks are written to the output map.

Parameters

  input | input map in profile mode
  output | output map with picked peaks
  check_spectrum_type | if set, checks spectrum type and throws an exception if a centroided spectrum is passed

Referenced by UTILProteomicsLFQ::centroidAndCorrectPrecursors_().

## ◆ pickExperiment() [2/3]

void pickExperiment | ( | const PeakMap & | input,
|  | PeakMap & | output,
|  | std::vector< std::vector< PeakBoundary > > & | boundaries_spec,
|  | std::vector< std::vector< PeakBoundary > > & | boundaries_chrom,
|  | const bool | check_spectrum_type = `true`
| ) |  | const

Applies the peak-picking algorithm to a map (MSExperiment). This method picks peaks for each scan in the map consecutively. The resulting picked peaks are written to the output map.

Parameters

  input | input map in profile mode
  output | output map with picked peaks
  boundaries_spec | boundaries of the picked peaks in spectra
  boundaries_chrom | boundaries of the picked peaks in chromatograms
  check_spectrum_type | if set, checks spectrum type and throws an exception if a centroided spectrum is passed

## ◆ pickExperiment() [3/3]

void pickExperiment | ( | OnDiscMSExperiment & | input,
|  | PeakMap & | output,
|  | const bool | check_spectrum_type = `true`
| ) |  | const

Applies the peak-picking algorithm to a map (MSExperiment). This method picks peaks for each scan in the map consecutively. The resulting picked peaks are written to the output map.

Currently we have to give up const-correctness but we know that everything on disc is constant

## ◆ updateMembers_()

void updateMembers_ | ( |  | ) |

override protected virtual

This method is used to update extra member variables at the end of the setParameters() method.

Also call it at the end of the derived classes' copy constructor and assignment operator.

The default implementation is empty.

Reimplemented from DefaultParamHandler.

## Member Data Documentation

## ◆ missing_

unsigned missing_

protected

## ◆ ms_levels_

std::vector<Int> ms_levels_

protected

## ◆ report_FWHM_

bool report_FWHM_

protected

add floatDataArray 'FWHM'/'FWHM_ppm' to spectra with peak FWHM

## ◆ report_FWHM_as_ppm_

bool report_FWHM_as_ppm_

protected

unit of 'FWHM' float data array (can be absolute or ppm).

## ◆ signal_to_noise_

double signal_to_noise_

protected

## ◆ spacing_difference_

double spacing_difference_

protected

## ◆ spacing_difference_gap_

double spacing_difference_gap_

protected