OpenMS
FLASHDeconvAlgorithm.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: Kyowon Jeong, Jihyung Kim $
6 // $Authors: Kyowon Jeong, Jihyung Kim $
7 // --------------------------------------------------------------------------
8 
9 #pragma once
10 
19 #include <boost/dynamic_bitset.hpp>
20 #include <iostream>
21 
22 namespace OpenMS
23 {
34  class OPENMS_DLLAPI FLASHDeconvAlgorithm : public DefaultParamHandler, public ProgressLogger
35  {
36  public:
39 
42 
45 
48 
51 
53  ~FLASHDeconvAlgorithm() = default;
54 
55  std::vector<double> getTolerances() const;
56 
63  void run(MSExperiment& map, std::vector<DeconvolvedSpectrum>& deconvolved_spectra, std::vector<FLASHHelperClasses::MassFeature>& deconvolved_feature);
64 
67 
70 
71 
74  {
75  return noise_decoy_weight_;
76  }
78  static int getScanNumber(const MSExperiment& map, Size index);
79 
80  protected:
81  void updateMembers_() override;
82 
83  private:
85  SpectralDeconvolution sd_, sd_charge_decoy_, sd_noise_decoy_, sd_isotope_decoy_;
86 
88  int merge_spec_ = 0;
89 
91  int forced_ms_level_ = 0;
92 
94  UInt max_ms_level_ = 4;
95 
97  UInt current_max_ms_level_ = 0;
98 
100  UInt current_min_ms_level_ = 0;
101 
103  int precursor_MS1_window_ = 0;
104 
107 
110 
112  bool use_RNA_averagine_ = false;
113 
115  bool report_decoy_ = false;
116 
119 
121  double noise_decoy_weight_ = 1;
123  std::map<int, std::vector<std::vector<float>>> precursor_map_for_ida_;
125  std::map<String, PeakGroup> native_id_precursor_peak_group_map_;
126 
129 
131  void mergeSpectra_(MSExperiment& map, uint ms_level);
132 
134  void runSpectralDeconvolution_(MSExperiment& map, std::vector<DeconvolvedSpectrum>& deconvolved_spectra);
135 
137  void runFeatureFinding_(std::vector<DeconvolvedSpectrum>& deconvolved_spectra, std::vector<FLASHHelperClasses::MassFeature>& deconvolved_features);
138 
140  static void updatePrecursorQScores_(std::vector<DeconvolvedSpectrum>& deconvolved_spectra, int ms_level);
141 
143  void findPrecursorPeakGroupsFormIdaLog_(const MSExperiment& map, Size index, double start_mz, double end_mz);
144 
146  void findPrecursorPeakGroupsForMSnSpectra_(const MSExperiment& map, const std::vector<DeconvolvedSpectrum>& deconvolved_spectra, uint ms_level);
147 
149  void determineTolerance_(const MSExperiment& map, const Param& sd_param, const FLASHHelperClasses::PrecalculatedAveragine& avg, int ms_level);
150 
152  static std::vector<int> getHistogram_(const std::vector<double>& data, double min_range, double max_range, double bin_size);
153 
155  static void filterLowPeaks_(MSExperiment& map);
156 
157 
158  };
159 } // namespace OpenMS
A base class for all classes handling default parameters.
Definition: DefaultParamHandler.h:66
FLASHDeconv algorithm: ultrafast mass deconvolution algorithm for top down mass spectrometry dataset ...
Definition: FLASHDeconvAlgorithm.h:35
FLASHDeconvAlgorithm()
default constructor
void updateMSLevels_(MSExperiment &map)
read dataset to update ms level information
~FLASHDeconvAlgorithm()=default
destructor
static std::vector< int > getHistogram_(const std::vector< double > &data, double min_range, double max_range, double bin_size)
get histogram
std::vector< double > getTolerances() const
void determineTolerance_(const MSExperiment &map, const Param &sd_param, const FLASHHelperClasses::PrecalculatedAveragine &avg, int ms_level)
determine tolerance
DoubleList min_cos_
Definition: FLASHDeconvAlgorithm.h:109
FLASHDeconvAlgorithm(FLASHDeconvAlgorithm &&other)=default
move constructor
static void filterLowPeaks_(MSExperiment &map)
filter low intensity peaks
void findPrecursorPeakGroupsFormIdaLog_(const MSExperiment &map, Size index, double start_mz, double end_mz)
find precursor peak groups from FLASHIda log file
void mergeSpectra_(MSExperiment &map, uint ms_level)
merge spectra
std::map< String, PeakGroup > native_id_precursor_peak_group_map_
a map from native ID to precursor peak group
Definition: FLASHDeconvAlgorithm.h:125
void runFeatureFinding_(std::vector< DeconvolvedSpectrum > &deconvolved_spectra, std::vector< FLASHHelperClasses::MassFeature > &deconvolved_features)
run feature finding to get deconvolved features
void runSpectralDeconvolution_(MSExperiment &map, std::vector< DeconvolvedSpectrum > &deconvolved_spectra)
run spectral deconvolution
static void updatePrecursorQScores_(std::vector< DeconvolvedSpectrum > &deconvolved_spectra, int ms_level)
with found deconvolved features, update QScores for masses that are contained in features.
const FLASHHelperClasses::PrecalculatedAveragine & getAveragine()
get calculated averagine. Call after calculateAveragine is called.
FLASHDeconvAlgorithm(const FLASHDeconvAlgorithm &)=default
copy constructor
FLASHDeconvAlgorithm & operator=(const FLASHDeconvAlgorithm &fd)=default
assignment operator
double isolation_window_size_
default precursor isolation window size.
Definition: FLASHDeconvAlgorithm.h:118
String ida_log_file_
FLASHIda log file name.
Definition: FLASHDeconvAlgorithm.h:106
SpectralDeconvolution sd_
SpectralDeconvolution instances for spectral deconvolution for target and decoys.
Definition: FLASHDeconvAlgorithm.h:85
static int getScanNumber(const MSExperiment &map, Size index)
get scan number of the spectrum in index -th in map
void findPrecursorPeakGroupsForMSnSpectra_(const MSExperiment &map, const std::vector< DeconvolvedSpectrum > &deconvolved_spectra, uint ms_level)
register the precursor peak group (or mass) if possible for MSn (n>1) spectrum.
void updateMembers_() override
This method is used to update extra member variables at the end of the setParameters() method.
void run(MSExperiment &map, std::vector< DeconvolvedSpectrum > &deconvolved_spectra, std::vector< FLASHHelperClasses::MassFeature > &deconvolved_feature)
Run FLASHDeconv algorithm for map and store deconvolved_spectra and deconvolved_feature.
double getNoiseDecoyWeight()
get noise decoy weight
Definition: FLASHDeconvAlgorithm.h:73
FLASHDeconvAlgorithm & operator=(FLASHDeconvAlgorithm &&fd)=default
move assignment operator
std::map< int, std::vector< std::vector< float > > > precursor_map_for_ida_
FLASHIda parsing information is stored here: MS1 scan - information.
Definition: FLASHDeconvAlgorithm.h:123
const FLASHHelperClasses::PrecalculatedAveragine & getDecoyAveragine()
get calculated decoy averagine. Call after calculateAveragine is called.
Averagine patterns pre-calculated for speed up. Other variables are also calculated for fast cosine c...
Definition: FLASHHelperClasses.h:35
In-Memory representation of a mass spectrometry run.
Definition: MSExperiment.h:46
Management and storage of parameters / INI files.
Definition: Param.h:44
Base class for all classes that want to report their progress.
Definition: ProgressLogger.h:27
FLASHDeconv algorithm: ultrafast mass deconvolution algorithm for top down mass spectrometry dataset ...
Definition: SpectralDeconvolution.h:34
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
std::vector< double > DoubleList
Vector of double precision real types.
Definition: ListUtils.h:36
FLASHIda C++ to C# (or vice versa) bridge functions The functions here are called in C# to invoke fun...
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
static FLASHHelperClasses::PrecalculatedAveragine avg
keeps the precalculated averagine to calculate average masses from monoisotopic masses
Definition: FLASHIdaBridgeFunctions.h:92