OpenMS
DIAHelper.h
Go to the documentation of this file.
1 // Copyright (c) 2002-present, OpenMS Inc. -- EKU Tuebingen, ETH Zurich, and FU Berlin
2 // SPDX-License-Identifier: BSD-3-Clause
3 //
4 // --------------------------------------------------------------------------
5 // $Maintainer: Hannes Roest $
6 // $Authors: Witold Wolski, Hannes Roest $
7 // --------------------------------------------------------------------------
8 
9 #pragma once
10 
14 #include <vector>
15 namespace OpenMS
16 {
17  struct RangeMZ;
18  struct RangeMobility;
19  class TheoreticalSpectrumGenerator;
20  namespace DIAHelpers
21  {
26 
35  OPENMS_DLLAPI bool integrateWindow(const OpenSwath::SpectrumPtr& spectrum,
36  double& mz, double& im, double& intensity, const RangeMZ& mz_range, const RangeMobility& im_range, bool centroided = false);
37 
45  OPENMS_DLLAPI bool integrateWindow(const SpectrumSequence& spectrum,
46  double& mz, double& im, double& intensity, const RangeMZ& mz_range, const RangeMobility& im_range, bool centroided = false);
47 
60  OPENMS_DLLAPI void integrateWindows(const OpenSwath::SpectrumPtr& spectrum,
61  const std::vector<double>& windows_center,
62  double width,
63  std::vector<double>& integrated_windows_intensity,
64  std::vector<double>& integrated_windows_mz,
65  std::vector<double>& integrated_windows_im,
66  const RangeMobility& im_range,
67  bool remove_zero = false);
68 
69 
82  OPENMS_DLLAPI void integrateWindows(const SpectrumSequence& spectrum,
83  const std::vector<double>& windows_center,
84  double width,
85  std::vector<double>& integrated_windows_intensity,
86  std::vector<double>& integrated_windows_mz,
87  std::vector<double>& integrated_windows_im,
88  const RangeMobility& im_range,
89  bool remove_zero = false);
93  OPENMS_DLLAPI void adjustExtractionWindow(double& right, double& left, const double& mz_extract_window, const bool& mz_extraction_ppm);
94 
96  OPENMS_DLLAPI void getBYSeries(const AASequence& a,
97  std::vector<double>& bseries,
98  std::vector<double>& yseries,
100  int charge = 1);
101 
103  OPENMS_DLLAPI void getTheorMasses(const AASequence& a,
104  std::vector<double>& masses,
106  int charge = 1);
107 
109  OPENMS_DLLAPI void getAveragineIsotopeDistribution(const double product_mz,
110  std::vector<std::pair<double, double> >& isotopes_spec,
111  const int charge = 1,
112  const int nr_isotopes = 4,
113  const double mannmass = 1.00048);
114 
116  OPENMS_DLLAPI void simulateSpectrumFromAASequence(const AASequence& aa,
117  std::vector<double>& first_isotope_masses, //[out]
118  std::vector<std::pair<double, double> >& isotope_masses, //[out]
120  int charge = 1);
121 
123  OPENMS_DLLAPI void addPreisotopeWeights(const std::vector<double>& first_isotope_masses,
124  std::vector<std::pair<double, double> >& isotope_spec, // output
125  UInt nr_peaks = 2, //nr of pre-isotope peaks
126  double pre_isotope_peaks_weight = -0.5, // weight of pre-isotope peaks
127  double mannmass = 1.000482, //
128  int charge = 1);
129 
131  OPENMS_DLLAPI void addPreisotopeWeights(double mz,
132  std::vector<std::pair<double, double> >& isotope_spec, // output
133  UInt nr_peaks = 2, //nr of pre-isotope peaks
134  double pre_isotope_peaks_weight = -0.5, // weight of pre-isotope peaks
135  double mannmass = 1.000482, //
136  int charge = 1);
137 
140  OPENMS_DLLAPI void addIsotopes2Spec(const std::vector<std::pair<double, double> >& spec,
141  std::vector<std::pair<double, double> >& isotope_masses, //[out]
142  Size nr_isotopes, int charge = 1);
143 
146  OPENMS_DLLAPI void addSinglePeakIsotopes2Spec(double mz, double ity,
147  std::vector<std::pair<double, double> >& isotope_masses, //[out]
148  Size nr_isotopes, int charge);
149 
151  OPENMS_DLLAPI void sortByFirst(std::vector<std::pair<double, double> >& tmp);
153  OPENMS_DLLAPI void extractFirst(const std::vector<std::pair<double, double> >& peaks, std::vector<double>& mass);
155  OPENMS_DLLAPI void extractSecond(const std::vector<std::pair<double, double> >& peaks, std::vector<double>& mass);
156 
163  OPENMS_DLLAPI RangeMZ createMZRangePPM(double mz_ref, double dia_extraction_window, const bool ppm);
164 
165 
169  OPENMS_DLLAPI void integrateWindow_(const OpenSwath::SpectrumPtr& spectrum,
170  double & mz,
171  double & im,
172  double & intensity,
173  const RangeMZ & mz_range,
174  const RangeMobility & im_range,
175  bool centroided);
176  }
177 
179 } //namespace OpenMS
180 
Representation of a peptide/protein sequence.
Definition: AASequence.h:86
Generates theoretical spectra for peptides with various options.
Definition: TheoreticalSpectrumGenerator.h:45
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
void integrateWindows(const OpenSwath::SpectrumPtr &spectrum, const std::vector< double > &windows_center, double width, std::vector< double > &integrated_windows_intensity, std::vector< double > &integrated_windows_mz, std::vector< double > &integrated_windows_im, const RangeMobility &im_range, bool remove_zero=false)
Integrate intensities in a spectrum in range im_range (if defined) for multiple windows.
void integrateWindow_(const OpenSwath::SpectrumPtr &spectrum, double &mz, double &im, double &intensity, const RangeMZ &mz_range, const RangeMobility &im_range, bool centroided)
Helper function for integrating a spectrum.
void extractSecond(const std::vector< std::pair< double, double > > &peaks, std::vector< double > &mass)
extract second from vector of pairs
bool integrateWindow(const OpenSwath::SpectrumPtr &spectrum, double &mz, double &im, double &intensity, const RangeMZ &mz_range, const RangeMobility &im_range, bool centroided=false)
Helper functions for the DIA scoring of OpenSWATH.
void addPreisotopeWeights(const std::vector< double > &first_isotope_masses, std::vector< std::pair< double, double > > &isotope_spec, UInt nr_peaks=2, double pre_isotope_peaks_weight=-0.5, double mannmass=1.000482, int charge=1)
add (potentially negative) pre-isotope weights to spectrum
void sortByFirst(std::vector< std::pair< double, double > > &tmp)
sorts vector of pairs by first
void getTheorMasses(const AASequence &a, std::vector< double > &masses, TheoreticalSpectrumGenerator const *g, int charge=1)
for SWATH – get the theoretical b and y series masses for a sequence
void getBYSeries(const AASequence &a, std::vector< double > &bseries, std::vector< double > &yseries, TheoreticalSpectrumGenerator const *g, int charge=1)
compute the b and y series masses for a given AASequence
void adjustExtractionWindow(double &right, double &left, const double &mz_extract_window, const bool &mz_extraction_ppm)
Adjust left/right window based on window and whether its ppm or not.
void extractFirst(const std::vector< std::pair< double, double > > &peaks, std::vector< double > &mass)
extract first from vector of pairs
RangeMZ createMZRangePPM(double mz_ref, double dia_extraction_window, const bool ppm)
optionally convert a DIA extraction window from ppm to m/z
void simulateSpectrumFromAASequence(const AASequence &aa, std::vector< double > &first_isotope_masses, std::vector< std::pair< double, double > > &isotope_masses, TheoreticalSpectrumGenerator const *g, int charge=1)
simulate spectrum from AASequence
void addSinglePeakIsotopes2Spec(double mz, double ity, std::vector< std::pair< double, double > > &isotope_masses, Size nr_isotopes, int charge)
void addIsotopes2Spec(const std::vector< std::pair< double, double > > &spec, std::vector< std::pair< double, double > > &isotope_masses, Size nr_isotopes, int charge=1)
void getAveragineIsotopeDistribution(const double product_mz, std::vector< std::pair< double, double > > &isotopes_spec, const int charge=1, const int nr_isotopes=4, const double mannmass=1.00048)
get averagine distribution given mass
Main OpenMS namespace.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
std::vector< OpenSwath::SpectrumPtr > SpectrumSequence
a vector of spectrum pointers that DIA scores can operate on, allows for clever integration of only t...
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:20
boost::shared_ptr< Spectrum > SpectrumPtr
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:276
Definition: RangeManager.h:346
Definition: RangeManager.h:466