OpenMS
FeatureFinderAlgorithmPicked.h
Go to the documentation of this file.
1 // Copyright (c) 2002-2023, The OpenMS Team -- EKU Tuebingen, ETH Zurich, and FU Berlin
2 // SPDX-License-Identifier: BSD-3-Clause
3 //
4 // --------------------------------------------------------------------------
5 // $Maintainer: Timo Sachsenberg $
6 // $Authors: Marc Sturm $
7 // --------------------------------------------------------------------------
8 
9 #pragma once
10 
14 
15 #include <fstream>
16 
17 namespace OpenMS
18 {
32  class OPENMS_DLLAPI FeatureFinderAlgorithmPicked :
34  public FeatureFinderDefs
35  {
36 public:
38 
43 
48 
49 protected:
50  typedef Peak1D PeakType;
56 
57 public:
60 
61  // docu in base class
62  void setSeeds(const FeatureMap& seeds) override;
63 
65  void run() override;
66 
68 
69  static const String getProductName();
70 
71 protected:
75  mutable std::ofstream log_;
77  bool debug_;
79  std::map<String, UInt> aborts_;
81  std::map<Seed, String> abort_reasons_;
84 
86 
91  double slope_bound_;
99  double min_rt_span_;
100  double max_rt_span_;
104 
106 
107  double intensity_rt_step_;
112  std::vector<std::vector<std::vector<double> > > intensity_thresholds_;
114 
116  std::vector<TheoreticalIsotopePattern> isotope_distributions_;
117 
118  // Docu in base class
119  void updateMembers_() override;
120 
122  void abort_(const Seed& seed, const String& reason);
123 
128  double intersection_(const Feature& f1, const Feature& f2) const;
129 
132 
140  double findBestIsotopeFit_(const Seed& center, UInt charge, IsotopePattern& best_pattern) const;
141 
149  void extendMassTraces_(const IsotopePattern& pattern, MassTraces& traces, Size meta_index_overall) const;
150 
169  void extendMassTrace_(MassTrace& trace, SignedSize spectrum_index, double mz, bool increase_rt, Size meta_index_overall, double min_rt = 0.0, double max_rt = 0.0) const;
170 
172  Size nearest_(double pos, const MSSpectrum& spec, Size start) const;
173 
183  void findIsotope_(double pos, Size spectrum_index, IsotopePattern& pattern, Size pattern_index, Size& peak_index) const;
184 
186  double positionScore_(double pos1, double pos2, double allowed_deviation) const;
187 
189  double isotopeScore_(const TheoreticalIsotopePattern& isotopes, IsotopePattern& pattern, bool consider_mz_distances) const;
190 
201  double intensityScore_(Size spectrum, Size peak) const;
202 
209  std::unique_ptr<TraceFitter> chooseTraceFitter_(double& tau);
210 
211  double intensityScore_(Size rt_bin, Size mz_bin, double intensity) const;
212 
219 
228  void cropFeature_(const std::shared_ptr<TraceFitter>& fitter,
229  const MassTraces& traces,
230  MassTraces& new_traces);
231 
255  bool checkFeatureQuality_(const std::shared_ptr<TraceFitter>& fitter,
256  MassTraces& feature_traces,
257  const double& seed_mz, const double& min_feature_score,
258  String& error_msg, double& fit_score, double& correlation, double& final_score);
259 
273  void writeFeatureDebugInfo_(const std::shared_ptr<TraceFitter>& fitter,
274  const MassTraces& traces,
275  const MassTraces& new_traces,
276  bool feature_ok, const String& error_msg, const double final_score, const Int plot_nr, const PeakType& peak,
277  const String& path = "debug/features/");
278 
280 private:
281 
286  };
287 
288 } // namespace OpenMS
289 
Param param_
Container for current parameters.
Definition: DefaultParamHandler.h:139
Param defaults_
Container for default parameters. This member should be filled in the constructor of derived classes!
Definition: DefaultParamHandler.h:146
FeatureFinderAlgorithm for picked peaks.
Definition: FeatureFinderAlgorithmPicked.h:35
void setSeeds(const FeatureMap &seeds) override
Sets a reference to the calling FeatureFinder.
double positionScore_(double pos1, double pos2, double allowed_deviation) const
Calculates a score between 0 and 1 for the m/z deviation of two peaks.
double slope_bound_
Max slope of mass trace intensities.
Definition: FeatureFinderAlgorithmPicked.h:91
FeatureFinderAlgorithmPickedHelperStructs::MassTraces MassTraces
Definition: FeatureFinderAlgorithmPicked.h:53
MapType map_
editable copy of the map
Definition: FeatureFinderAlgorithmPicked.h:73
void findIsotope_(double pos, Size spectrum_index, IsotopePattern &pattern, Size pattern_index, Size &peak_index) const
Searches for an isotopic peak in the current spectrum and the adjacent spectra.
double min_isotope_fit_
Minimum isotope pattern fit for a feature.
Definition: FeatureFinderAlgorithmPicked.h:97
double intensityScore_(Size rt_bin, Size mz_bin, double intensity) const
double findBestIsotopeFit_(const Seed &center, UInt charge, IsotopePattern &best_pattern) const
Finds the best fitting position of the isotopic pattern estimate defined by center.
UInt intensity_bins_
Number of bins (in RT and MZ) for intensity significance estimation.
Definition: FeatureFinderAlgorithmPicked.h:96
double max_feature_intersection_
Maximum allowed feature intersection (if larger, that one of the feature is removed)
Definition: FeatureFinderAlgorithmPicked.h:101
std::ofstream log_
Output stream for log/debug info.
Definition: FeatureFinderAlgorithmPicked.h:75
void extendMassTrace_(MassTrace &trace, SignedSize spectrum_index, double mz, bool increase_rt, Size meta_index_overall, double min_rt=0.0, double max_rt=0.0) const
Extends a single mass trace in one RT direction.
std::map< Seed, String > abort_reasons_
Array of abort reasons.
Definition: FeatureFinderAlgorithmPicked.h:81
std::unique_ptr< TraceFitter > chooseTraceFitter_(double &tau)
Choose a the best trace fitter for the current mass traces based on the user parameter (symmetric,...
FeatureMap seeds_
User-specified seed list.
Definition: FeatureFinderAlgorithmPicked.h:83
void extendMassTraces_(const IsotopePattern &pattern, MassTraces &traces, Size meta_index_overall) const
double mass_window_width_
Width of the isotope pattern mass bins.
Definition: FeatureFinderAlgorithmPicked.h:95
const TheoreticalIsotopePattern & getIsotopeDistribution_(double mass) const
Returns the isotope distribution for a certain mass window.
double intensity_mz_step_
m/z bin width
Definition: FeatureFinderAlgorithmPicked.h:110
FeatureFinderAlgorithmPickedHelperStructs::IsotopePattern IsotopePattern
Definition: FeatureFinderAlgorithmPicked.h:55
SpectrumType::FloatDataArrays FloatDataArrays
Definition: FeatureFinderAlgorithmPicked.h:41
std::vector< std::vector< std::vector< double > > > intensity_thresholds_
Precalculated intensity 20-quantiles (binned)
Definition: FeatureFinderAlgorithmPicked.h:112
UInt max_missing_trace_peaks_
Stores mass_trace:max_missing.
Definition: FeatureFinderAlgorithmPicked.h:90
static FeatureFinderAlgorithm * create()
FeatureFinderAlgorithm::MapType MapType
Definition: FeatureFinderAlgorithmPicked.h:39
double min_rt_span_
Minimum RT range that has to be left after the fit.
Definition: FeatureFinderAlgorithmPicked.h:99
void abort_(const Seed &seed, const String &reason)
Writes the abort reason to the log file and counts occurrences for each reason.
UInt min_spectra_
Number of spectra that have to show the same mass (for finding a mass trace)
Definition: FeatureFinderAlgorithmPicked.h:89
double intensity_percentage_
Isotope pattern intensity contribution of required peaks.
Definition: FeatureFinderAlgorithmPicked.h:92
double trace_tolerance_
Stores isotopic_pattern:mz_tolerance.
Definition: FeatureFinderAlgorithmPicked.h:88
double intensityScore_(Size spectrum, Size peak) const
Compute the intensity score for the peak peak in spectrum spectrum.
double intersection_(const Feature &f1, const Feature &f2) const
bool checkFeatureQuality_(const std::shared_ptr< TraceFitter > &fitter, MassTraces &feature_traces, const double &seed_mz, const double &min_feature_score, String &error_msg, double &fit_score, double &correlation, double &final_score)
Checks the feature based on different score thresholds and model constraints.
double isotopeScore_(const TheoreticalIsotopePattern &isotopes, IsotopePattern &pattern, bool consider_mz_distances) const
Calculates a score between 0 and 1 for the correlation between theoretical and found isotope pattern.
FeatureFinderAlgorithmPickedHelperStructs::MassTrace MassTrace
Definition: FeatureFinderAlgorithmPicked.h:52
double min_trace_score_
Minimum quality of a traces.
Definition: FeatureFinderAlgorithmPicked.h:98
double optional_fit_improvement_
Minimal improvement for leaving out optional isotope.
Definition: FeatureFinderAlgorithmPicked.h:94
FeatureFinderAlgorithmPicked & operator=(const FeatureFinderAlgorithmPicked &)
Not implemented.
double intensity_percentage_optional_
Isotope pattern intensity contribution of optional peaks.
Definition: FeatureFinderAlgorithmPicked.h:93
void cropFeature_(const std::shared_ptr< TraceFitter > &fitter, const MassTraces &traces, MassTraces &new_traces)
Creates new mass traces new_traces based on the fitting result and the original traces traces.
void updateMembers_() override
This method is used to update extra member variables at the end of the setParameters() method.
FeatureFinderAlgorithmPickedHelperStructs::Seed Seed
Definition: FeatureFinderAlgorithmPicked.h:51
double max_rt_span_
Maximum RT range the model is allowed to span.
Definition: FeatureFinderAlgorithmPicked.h:100
double pattern_tolerance_
Stores mass_trace:mz_tolerance.
Definition: FeatureFinderAlgorithmPicked.h:87
void writeFeatureDebugInfo_(const std::shared_ptr< TraceFitter > &fitter, const MassTraces &traces, const MassTraces &new_traces, bool feature_ok, const String &error_msg, const double final_score, const Int plot_nr, const PeakType &peak, const String &path="debug/features/")
Creates several files containing plots and viewable data of the fitted mass trace.
Peak1D PeakType
Definition: FeatureFinderAlgorithmPicked.h:50
void run() override
Main method for actual FeatureFinder.
FeatureFinderAlgorithmPickedHelperStructs::TheoreticalIsotopePattern TheoreticalIsotopePattern
Definition: FeatureFinderAlgorithmPicked.h:54
FeatureFinderAlgorithmPicked(const FeatureFinderAlgorithmPicked &)
Not implemented.
String reported_mz_
The mass type that is reported for features. 'maximum' returns the m/z value of the highest mass trac...
Definition: FeatureFinderAlgorithmPicked.h:102
MapType::SpectrumType SpectrumType
Definition: FeatureFinderAlgorithmPicked.h:40
FeatureFinderAlgorithmPicked()
default constructor
Size nearest_(double pos, const MSSpectrum &spec, Size start) const
Returns the index of the peak nearest to m/z pos in spectrum spec (linear search starting from index ...
static const String getProductName()
bool debug_
debug flag
Definition: FeatureFinderAlgorithmPicked.h:77
std::vector< TheoreticalIsotopePattern > isotope_distributions_
Vector of precalculated isotope distributions for several mass windows.
Definition: FeatureFinderAlgorithmPicked.h:116
std::map< String, UInt > aborts_
Array of abort reasons.
Definition: FeatureFinderAlgorithmPicked.h:79
Abstract base class for FeatureFinder algorithms.
Definition: FeatureFinderAlgorithm.h:50
FeatureMap * features_
Output data pointer.
Definition: FeatureFinderAlgorithm.h:116
FeatureFinder * ff_
Pointer to the calling FeatureFinder that is used to access the feature flags.
Definition: FeatureFinderAlgorithm.h:119
A container for features.
Definition: FeatureMap.h:80
An LC-MS feature.
Definition: Feature.h:46
In-Memory representation of a mass spectrometry run.
Definition: MSExperiment.h:46
The representation of a 1D spectrum.
Definition: MSSpectrum.h:44
std::vector< FloatDataArray > FloatDataArrays
Definition: MSSpectrum.h:96
A 1-dimensional raw data point or peak.
Definition: Peak1D.h:28
A more convenient string class.
Definition: String.h:34
int Int
Signed integer type.
Definition: Types.h:76
unsigned int UInt
Unsigned integer type.
Definition: Types.h:68
ptrdiff_t SignedSize
Signed Size type e.g. used as pointer difference.
Definition: Types.h:108
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:101
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:22
Helper structure for a found isotope pattern used in FeatureFinderAlgorithmPicked.
Definition: FeatureFinderAlgorithmPickedHelperStructs.h:168
Helper struct for mass traces used in FeatureFinderAlgorithmPicked.
Definition: FeatureFinderAlgorithmPickedHelperStructs.h:54
Helper struct for a collection of mass traces used in FeatureFinderAlgorithmPicked.
Definition: FeatureFinderAlgorithmPickedHelperStructs.h:85
Helper structure for seeds used in FeatureFinderAlgorithmPicked.
Definition: FeatureFinderAlgorithmPickedHelperStructs.h:37
Helper structure for a theoretical isotope pattern used in FeatureFinderAlgorithmPicked.
Definition: FeatureFinderAlgorithmPickedHelperStructs.h:148
The purpose of this struct is to provide definitions of classes and typedefs which are used throughou...
Definition: FeatureFinderDefs.h:25