OpenMS
Loading...
Searching...
No Matches
PeakPickerMobilogram.h
Go to the documentation of this file.
1// Copyright (c) 2002-present, The OpenMS Team -- EKU Tuebingen, ETH Zurich, and FU Berlin
2// SPDX-License-Identifier: BSD-3-Clause
3//
4// --------------------------------------------------------------------------
5// $Maintainer: Justin Sing $
6// $Authors: Justin Sing $
7// --------------------------------------------------------------------------
8
9#pragma once
10
18
22
24#include <vector>
25
26namespace OpenMS
27{
40 class OPENMS_DLLAPI PeakPickerMobilogram :
42 {
43 public:
45
47
51
53 enum FLOATINDICES { IDX_FWHM = 0, IDX_ABUNDANCE = 1, IDX_LEFTBORDER = 2, IDX_RIGHTBORDER = 3, IDX_OF_LEFTBORDER_IDX = 4, IDX_OF_RIGHTBORDER_IDX = 5, SIZE_OF_FLOATINDICES };
54
57 size_t left; // Left position of the peak
58 size_t apex; // Apex (highest point) position of the peak
59 size_t right; // Right position of the peak
60 };
61
69 void pickMobilogram(const Mobilogram& mobilogram, Mobilogram& picked_mobilogram);
70
78 void pickMobilogram(Mobilogram mobilogram, Mobilogram& picked_mobilogram, Mobilogram& smoothed_mobilogram);
79
83 void filterTopPeak(Mobilogram& picked_mobilogram, std::vector<Mobilogram>& mobilograms, PeakPositions& peak_pos);
84
88 void filterTopPeak(Mobilogram& picked_mobilogram, Mobilogram& mobilogram, PeakPositions& peak_pos);
89
91 std::vector<double> integrated_intensities_;
92
94 std::vector<Size> left_width_;
95
97 std::vector<Size> right_width_;
98
99 protected:
100 void pickMobilogram_(const Mobilogram& mobilogram, Mobilogram& picked_mobilogram);
101
105 void integratePeaks_(const Mobilogram& mobilogram);
106
115 Size findClosestPeak_(const Mobilogram& mobilogram, double target_im, Size current_peak = 0);
116
132 static PeakPositions findHighestPeak_(const std::vector<double> intensities,
133 const std::vector<Size> left_widths,
134 const std::vector<Size> right_widths,
135 const size_t im_size);
136
149 size_t left_index,
150 size_t right_index);
151
163 void filterPeakIntensities_(std::vector<Mobilogram>& mobilograms,
164 size_t left_index,
165 size_t right_index);
166
173 static std::vector<double> extractFloatValues_(const OpenMS::DataArrays::FloatDataArray& floatDataArray);
174
181 static std::vector<std::size_t> extractIntValues_(const OpenMS::DataArrays::FloatDataArray& floatDataArray);
182
186 PeakPositions filterTopPeak_(Mobilogram& picked_mobilogram, std::vector<Mobilogram>& mobilograms);
187
191 PeakPositions filterTopPeak_(Mobilogram& picked_mobilogram, Mobilogram& mobilograms);
192
197 void removeOverlappingPeaks_(const Mobilogram& mobilogram, Mobilogram& picked_mobilogram);
198
200 void updateMembers_() override;
201
202 // Members
213
218
227
231 };
232}
Float data array class.
Definition DataArrays.h:25
A base class for all classes handling default parameters.
Definition DefaultParamHandler.h:66
This class represents a Gaussian lowpass-filter which works on uniform as well as on non-uniform prof...
Definition GaussFilter.h:47
The representation of a 1D ion mobilogram.
Definition Mobilogram.h:32
This class implements a fast peak-picking algorithm best suited for high resolution MS data (FT-ICR-M...
Definition PeakPickerHiRes.h:59
The PeakPickerMobilogram finds peaks a single mobilogram.
Definition PeakPickerMobilogram.h:42
static std::vector< std::size_t > extractIntValues_(const OpenMS::DataArrays::FloatDataArray &floatDataArray)
Helper function to convert OpenMS IntegerDataArray to a vector of std::size.
static std::vector< double > extractFloatValues_(const OpenMS::DataArrays::FloatDataArray &floatDataArray)
Helper function yo convert OpenMS FloatDataArray to a vector of doubles.
std::vector< Size > right_width_
Temporary vector to hold the peak right widths.
Definition PeakPickerMobilogram.h:97
std::vector< Size > left_width_
Temporary vector to hold the peak left widths.
Definition PeakPickerMobilogram.h:94
GaussFilter gauss_
Definition PeakPickerMobilogram.h:230
double sn_win_len_
Signal to noise window length.
Definition PeakPickerMobilogram.h:220
static PeakPositions findHighestPeak_(const std::vector< double > intensities, const std::vector< Size > left_widths, const std::vector< Size > right_widths, const size_t im_size)
Helper function to find the highest peak in a mobilogram.
UInt sgolay_frame_length_
Frame length for the SGolay smoothing.
Definition PeakPickerMobilogram.h:204
String method_
Peak picker method.
Definition PeakPickerMobilogram.h:226
double signal_to_noise_
Signal to noise threshold.
Definition PeakPickerMobilogram.h:217
Size findClosestPeak_(const Mobilogram &mobilogram, double target_im, Size current_peak=0)
Helper function to find the closest peak in a mobilogram to "target_im".
double gauss_width_
Width of the Gaussian smoothing.
Definition PeakPickerMobilogram.h:208
PeakPositions filterTopPeak_(Mobilogram &picked_mobilogram, Mobilogram &mobilograms)
Filter single mobilogram for the highest peak based on the picked mobilogram.
bool use_gauss_
Whether to use Gaussian smoothing.
Definition PeakPickerMobilogram.h:210
std::vector< double > integrated_intensities_
Temporary vector to hold the integrated intensities.
Definition PeakPickerMobilogram.h:91
bool write_sn_log_messages_
Whether to write out log messages of the SN estimator.
Definition PeakPickerMobilogram.h:224
void removeOverlappingPeaks_(const Mobilogram &mobilogram, Mobilogram &picked_mobilogram)
Helper function to remove overlapping peaks in a single Chromatogram.
void filterPeakIntensities_(Mobilogram &mobilogram, size_t left_index, size_t right_index)
Helper function to filter peak intensities in a mobilogram.
size_t left
Definition PeakPickerMobilogram.h:57
double peak_width_
Forced peak with.
Definition PeakPickerMobilogram.h:215
bool remove_overlapping_
Whether to resolve overlapping peaks.
Definition PeakPickerMobilogram.h:212
size_t right
Definition PeakPickerMobilogram.h:59
void pickMobilogram_(const Mobilogram &mobilogram, Mobilogram &picked_mobilogram)
~PeakPickerMobilogram() override
Destructor.
Definition PeakPickerMobilogram.h:49
FLOATINDICES
indices into FloatDataArrays of resulting picked mobilogram
Definition PeakPickerMobilogram.h:53
void filterTopPeak(Mobilogram &picked_mobilogram, Mobilogram &mobilogram, PeakPositions &peak_pos)
Filters a single mobilogram for the highest peak based on the picked mobilogram.
void updateMembers_() override
Synchronize members with param class.
void pickMobilogram(Mobilogram mobilogram, Mobilogram &picked_mobilogram, Mobilogram &smoothed_mobilogram)
Finds peaks in a single mobilogram and annotates left/right borders.
PeakPickerMobilogram()
Constructor.
UInt sgolay_polynomial_order_
Polynomial order for the SGolay smoothing.
Definition PeakPickerMobilogram.h:206
UInt sn_bin_count_
Signal to noise bin count.
Definition PeakPickerMobilogram.h:222
void pickMobilogram(const Mobilogram &mobilogram, Mobilogram &picked_mobilogram)
Finds peaks in a single mobilogram and annotates left/right borders.
PeakPickerHiRes pp_
Definition PeakPickerMobilogram.h:228
void filterTopPeak(Mobilogram &picked_mobilogram, std::vector< Mobilogram > &mobilograms, PeakPositions &peak_pos)
Filters a vector of mobilograms for the highest peak based on the picked mobilogram.
size_t apex
Definition PeakPickerMobilogram.h:58
void integratePeaks_(const Mobilogram &mobilogram)
Compute peak area (peak integration)
SavitzkyGolayFilter sgolay_
Definition PeakPickerMobilogram.h:229
void filterPeakIntensities_(std::vector< Mobilogram > &mobilograms, size_t left_index, size_t right_index)
Helper function to filter peak intensities for a vector of mobilograms.
PeakPositions filterTopPeak_(Mobilogram &picked_mobilogram, std::vector< Mobilogram > &mobilograms)
Filter vector of mobilograms for the highest peak based on the picked mobilogram.
Struct to hold peak positions.
Definition PeakPickerMobilogram.h:56
Computes the Savitzky-Golay filter coefficients using QR decomposition.
Definition SavitzkyGolayFilter.h:79
A more convenient string class.
Definition String.h:34
unsigned int UInt
Unsigned integer type.
Definition Types.h:64
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition Types.h:97
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19