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...
|
| PeakPickerMaxima (double signal_to_noise, double spacing_difference=1.5, double spacing_difference_gap=4.0, double sn_window_length=200, unsigned missing=2) |
| Constructor. More...
|
|
virtual | ~PeakPickerMaxima () |
| Destructor. More...
|
|
void | findMaxima (const std::vector< double > &mz_array, const std::vector< double > &int_array, std::vector< PeakCandidate > &pc, bool check_spacings=true) const |
| Will find local maxima in raw data. More...
|
|
void | pick (std::vector< double > &mz_array, std::vector< double > &int_array, std::vector< PeakCandidate > &pc, bool check_spacings=true) |
| Will pick peaks in a spectrum. More...
|
|
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 raw 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!