OpenMS
ChromatogramExtractor.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: Hannes Roest $
6 // $Authors: Hannes Roest $
7 // --------------------------------------------------------------------------
8 
9 #pragma once
10 
12 
16 
19 
20 namespace OpenMS
21 {
22 
41  class OPENMS_DLLAPI ChromatogramExtractor :
42  public ProgressLogger
43  {
44 
45 public:
46 
48 
69  template <typename ExperimentT>
70  void extractChromatograms(const ExperimentT& input,
71  ExperimentT& output,
72  OpenMS::TargetedExperiment& transition_exp,
73  double mz_extraction_window,
74  bool ppm, TransformationDescription trafo,
75  double rt_extraction_window,
76  const String& filter)
77  {
78  // invert the trafo because we want to transform nRT values to "real" RT values
79  trafo.invert();
80 
81  Size input_size = input.size();
82  if (input_size < 1)
83  {
84  return;
85  }
86 
87  int used_filter = getFilterNr_(filter);
88  populatePeptideRTMap_(transition_exp, rt_extraction_window);
89 
90  // sort the transition experiment by product mass
91  // this is essential because the algorithm assumes sorted transitions!
92  transition_exp.sortTransitionsByProductMZ();
93 
94  // prepare all the spectra (but leave them empty)
95  SpectrumSettings settings = input[0];
96  std::vector<typename ExperimentT::ChromatogramType> chromatograms;
97  prepareSpectra_(settings, chromatograms, transition_exp);
98 
99  //go through all spectra
100  startProgress(0, input_size, "Extracting chromatograms");
101  for (Size scan_idx = 0; scan_idx < input_size; ++scan_idx)
102  {
103  setProgress(scan_idx);
104 
105  if (input[scan_idx].size() == 0)
106  continue;
107 
108  Size peak_idx = 0;
109 
110  double mz;
111  double integrated_intensity = 0;
112 
113  // go through all transitions / chromatograms which are sorted by
114  // ProductMZ. We can use this to step through the spectrum and at the
115  // same time step through the transitions. We increase the peak counter
116  // until we hit the next transition and then extract the signal.
117  for (Size k = 0; k < chromatograms.size(); ++k)
118  {
119 
120  double current_rt = input[scan_idx].getRT();
121  if (outsideExtractionWindow_(transition_exp.getTransitions()[k], current_rt, trafo, rt_extraction_window))
122  {
123  continue;
124  }
125 
127  mz = transition_exp.getTransitions()[k].getProductMZ();
128 
129  if (used_filter == 1)
130  {
131  extract_value_tophat(input[scan_idx], mz, peak_idx, integrated_intensity, mz_extraction_window, ppm);
132  }
133  else if (used_filter == 2)
134  {
135  extract_value_bartlett(input[scan_idx], mz, peak_idx, integrated_intensity, mz_extraction_window, ppm);
136  }
137 
138 
139  p.setRT(current_rt);
140  p.setIntensity(integrated_intensity);
141  chromatograms[k].push_back(p);
142  }
143  }
144  endProgress();
145 
146  // add all the chromatograms to the output
147  output.setChromatograms(chromatograms);
148  }
149 
168  std::vector< OpenSwath::ChromatogramPtr >& output,
169  const std::vector<ExtractionCoordinates>& extraction_coordinates,
170  double mz_extraction_window,
171  bool ppm,
172  const String& filter)
173  {
175  extraction_coordinates, mz_extraction_window, ppm, -1, filter);
176  }
177 
197  std::vector< OpenSwath::ChromatogramPtr >& output,
198  const std::vector<ExtractionCoordinates>& extraction_coordinates,
199  double mz_extraction_window,
200  bool ppm,
201  double im_extraction_window,
202  const String& filter)
203  {
205  extraction_coordinates, mz_extraction_window, ppm, im_extraction_window, filter);
206  }
207 
230  static void prepare_coordinates(std::vector< OpenSwath::ChromatogramPtr > & output_chromatograms,
231  std::vector< ExtractionCoordinates > & coordinates,
232  const OpenMS::TargetedExperiment & transition_exp,
233  const double rt_extraction_window,
234  const bool ms1 = false,
235  const int ms1_isotopes = 0);
236 
237  static void prepare_coordinates(std::vector< OpenSwath::ChromatogramPtr > & output_chromatograms,
238  std::vector< ExtractionCoordinates > & coordinates,
239  const OpenSwath::LightTargetedExperiment & transition_exp_used,
240  const double rt_extraction_window,
241  const bool ms1 = false,
242  const int ms1_isotopes = 0);
243 
258  template <typename TransitionExpT>
259  static void return_chromatogram(const std::vector< OpenSwath::ChromatogramPtr > & chromatograms,
260  const std::vector< ChromatogramExtractor::ExtractionCoordinates > & coordinates,
261  TransitionExpT& transition_exp_used,
262  SpectrumSettings settings,
263  std::vector<OpenMS::MSChromatogram > & output_chromatograms,
264  bool ms1,
265  double im_extraction_width = 0.0)
266  {
267  typedef std::map<String, const typename TransitionExpT::Transition* > TransitionMapType;
268  TransitionMapType trans_map;
269  for (Size i = 0; i < transition_exp_used.getTransitions().size(); i++)
270  {
271  trans_map[transition_exp_used.getTransitions()[i].getNativeID()] = &transition_exp_used.getTransitions()[i];
272  }
273 
274  for (Size i = 0; i < chromatograms.size(); i++)
275  {
276  const OpenSwath::ChromatogramPtr & chromptr = chromatograms[i];
277  const ChromatogramExtractor::ExtractionCoordinates & coord = coordinates[i];
278 
279  // copy data
282  chrom.setNativeID(coord.id);
283 
284  // Create precursor and set
285  // 1) the target m/z
286  // 2) the isolation window (upper/lower)
287  // 3) the peptide sequence
288  Precursor prec;
289  if (ms1)
290  {
291  prec.setMZ(coord.mz);
293 
294  // extract compound / peptide id from transition and store in
295  // more-or-less default field
296  String transition_group_id = OpenSwathHelper::computeTransitionGroupId(coord.id);
297  if (!transition_group_id.empty())
298  {
299  int prec_charge = 0;
300  String r = extract_id_(transition_exp_used, transition_group_id, prec_charge);
301  prec.setCharge(prec_charge);
302  prec.setMetaValue("peptide_sequence", r);
303  }
304  }
305  else
306  {
307  typename TransitionExpT::Transition transition = (*trans_map[coord.id]);
308 
309  prec.setMZ(transition.getPrecursorMZ());
310  if (!settings.getPrecursors().empty())
311  {
312  prec.setIsolationWindowLowerOffset(settings.getPrecursors()[0].getIsolationWindowLowerOffset());
313  prec.setIsolationWindowUpperOffset(settings.getPrecursors()[0].getIsolationWindowUpperOffset());
314  }
315 
316  // Create product and set its m/z
317  Product prod;
318  prod.setMZ(transition.getProductMZ());
319  chrom.setProduct(prod);
321 
322  // extract compound / peptide id from transition and store in
323  // more-or-less default field
324  if (!transition.getPeptideRef().empty())
325  {
326  int prec_charge = 0;
327  String r = extract_id_(transition_exp_used, transition.getPeptideRef(), prec_charge);
328  prec.setCharge(prec_charge);
329  prec.setMetaValue("peptide_sequence", r);
330  }
331  else
332  {
333  int prec_charge = 0;
334  String r = extract_id_(transition_exp_used, transition.getCompoundRef(), prec_charge);
335  prec.setCharge(prec_charge);
336  prec.setMetaValue("peptide_sequence", r);
337  }
338  }
339 
340  if (coord.ion_mobility >= 0 && im_extraction_width > 0.0)
341  {
342  prec.setDriftTime(coord.ion_mobility);
343  prec.setDriftTimeWindowLowerOffset(im_extraction_width / 2.0);
344  prec.setDriftTimeWindowUpperOffset(im_extraction_width / 2.0);
345  }
346  chrom.setPrecursor(prec);
347 
348  // Set the rest of the meta-data
350  chrom.setAcquisitionInfo(settings.getAcquisitionInfo());
351  chrom.setSourceFile(settings.getSourceFile());
352 
353  for (Size j = 0; j < settings.getDataProcessing().size(); ++j)
354  {
355  settings.getDataProcessing()[j]->setMetaValue("performed_on_spectra", "true");
356  chrom.getDataProcessing().push_back(settings.getDataProcessing()[j]);
357  }
358  output_chromatograms.push_back(chrom);
359  }
360  }
361 
363  template <typename SpectrumT>
364  void extract_value_tophat(const SpectrumT& input,
365  const double mz,
366  Size& peak_idx,
367  double& integrated_intensity,
368  const double extract_window,
369  const bool ppm)
370  {
371  integrated_intensity = 0;
372  if (input.size() == 0)
373  {
374  return;
375  }
376 
377  // calculate extraction window
378  double left, right;
379  if (ppm)
380  {
381  left = mz - mz * extract_window / 2.0 * 1.0e-6;
382  right = mz + mz * extract_window / 2.0 * 1.0e-6;
383  }
384  else
385  {
386  left = mz - extract_window / 2.0;
387  right = mz + extract_window / 2.0;
388  }
389 
390  Size walker;
391 
392  // advance the peak_idx until we hit the m/z value of the next transition
393  while (peak_idx < input.size() && input[peak_idx].getMZ() < mz)
394  {
395  peak_idx++;
396  }
397 
398  // walk right and left and add to our intensity
399  walker = peak_idx;
400  // if we moved past the end of the spectrum, we need to try the last peak
401  // of the spectrum (it could still be within the window)
402  if (peak_idx >= input.size())
403  {
404  walker = input.size() - 1;
405  }
406 
407  // add the current peak if it is between right and left
408  if (input[walker].getMZ() > left && input[walker].getMZ() < right)
409  {
410  integrated_intensity += input[walker].getIntensity();
411  }
412 
413  // (i) Walk to the left one step and then keep walking left until we go
414  // outside the window. Note for the first step to the left we have to
415  // check for the walker becoming zero.
416  walker = peak_idx;
417  if (walker > 0)
418  {
419  walker--;
420  // special case: walker is now zero
421  if (walker == 0 && input[walker].getMZ() > left && input[walker].getMZ() < right)
422  {
423  integrated_intensity += input[walker].getIntensity();
424  }
425  }
426  while (walker > 0 && input[walker].getMZ() > left && input[walker].getMZ() < right)
427  {
428  integrated_intensity += input[walker].getIntensity(); walker--;
429  }
430 
431  // (ii) Walk to the right one step and then keep walking right until we
432  // are outside the window
433  walker = peak_idx;
434  if (walker < input.size() )
435  {
436  walker++;
437  }
438  while (walker < input.size() && input[walker].getMZ() > left && input[walker].getMZ() < right)
439  {
440  integrated_intensity += input[walker].getIntensity(); walker++;
441  }
442  }
443 
445  template <typename SpectrumT>
446  void extract_value_bartlett(const SpectrumT& input,
447  const double mz,
448  Size& peak_idx,
449  double& integrated_intensity,
450  const double extract_window,
451  const bool ppm)
452  {
453  integrated_intensity = 0;
454  if (input.size() == 0)
455  {
456  return;
457  }
458 
459  // calculate extraction window
460  double left, right, half_window_size, weight;
461  if (ppm)
462  {
463  half_window_size = mz * extract_window / 2.0 * 1.0e-6;
464  left = mz - mz * extract_window / 2.0 * 1.0e-6;
465  right = mz + mz * extract_window / 2.0 * 1.0e-6;
466  }
467  else
468  {
469  half_window_size = extract_window / 2.0;
470  left = mz - extract_window / 2.0;
471  right = mz + extract_window / 2.0;
472  }
473 
474  Size walker;
475 
476  // advance the peak_idx until we hit the m/z value of the next transition
477  while (peak_idx < input.size() && input[peak_idx].getMZ() < mz)
478  {
479  peak_idx++;
480  }
481 
482  // walk right and left and add to our intensity
483  walker = peak_idx;
484  // if we moved past the end of the spectrum, we need to try the last peak
485  // of the spectrum (it could still be within the window)
486  if (peak_idx >= input.size())
487  {
488  walker = input.size() - 1;
489  }
490 
491  // add the current peak if it is between right and left
492  if (input[walker].getMZ() > left && input[walker].getMZ() < right)
493  {
494  weight = 1 - fabs(input[walker].getMZ() - mz) / half_window_size;
495  integrated_intensity += input[walker].getIntensity() * weight;
496  }
497 
498  // (i) Walk to the left one step and then keep walking left until we go
499  // outside the window. Note for the first step to the left we have to
500  // check for the walker becoming zero.
501  walker = peak_idx;
502  if (walker > 0)
503  {
504  walker--;
505  // special case: walker is now zero
506  if (walker == 0 && input[walker].getMZ() > left && input[walker].getMZ() < right)
507  {
508  integrated_intensity += input[walker].getIntensity();
509  }
510  }
511  while (walker > 0 && input[walker].getMZ() > left && input[walker].getMZ() < right)
512  {
513  weight = 1 - fabs(input[walker].getMZ() - mz) / half_window_size;
514  integrated_intensity += input[walker].getIntensity() * weight; walker--;
515  }
516 
517  // (ii) Walk to the right one step and then keep walking right until we
518  // are outside the window
519  walker = peak_idx;
520  if (walker < input.size() )
521  {
522  walker++;
523  }
524  while (walker<input.size() && input[walker].getMZ()> left && input[walker].getMZ() < right)
525  {
526  weight = 1 - fabs(input[walker].getMZ() - mz) / half_window_size;
527  integrated_intensity += input[walker].getIntensity() * weight; walker++;
528  }
529  }
530 
531 private:
540  template <typename TransitionExpT>
541  static String extract_id_(TransitionExpT& transition_exp_used, const String& id, int& prec_charge);
542 
557  template <class SpectrumSettingsT, class ChromatogramT>
558  void prepareSpectra_(SpectrumSettingsT& settings,
559  std::vector<ChromatogramT>& chromatograms,
560  OpenMS::TargetedExperiment& transition_exp)
561  {
562  // first prepare all the spectra (but leave them empty)
563  for (Size i = 0; i < transition_exp.getTransitions().size(); i++)
564  {
565  const ReactionMonitoringTransition* transition = &transition_exp.getTransitions()[i];
566 
567  // 1) and 2) Extract precursor m/z and isolation window
568  ChromatogramT chrom;
569  Precursor prec;
570  prec.setMZ(transition->getPrecursorMZ());
571  if (settings.getPrecursors().size() > 0)
572  {
573  prec.setIsolationWindowLowerOffset(settings.getPrecursors()[0].getIsolationWindowLowerOffset());
574  prec.setIsolationWindowUpperOffset(settings.getPrecursors()[0].getIsolationWindowUpperOffset());
575  }
576 
577  // 3) set precursor peptide sequence / compound id in more-or-less default field
578  String pepref = transition->getPeptideRef();
579  for (Size pep_idx = 0; pep_idx < transition_exp.getPeptides().size(); pep_idx++)
580  {
581  const OpenMS::TargetedExperiment::Peptide* pep = &transition_exp.getPeptides()[pep_idx];
582  if (pep->id == pepref)
583  {
584  prec.setMetaValue("peptide_sequence", pep->sequence);
585  break;
586  }
587  }
588  String compref = transition->getCompoundRef();
589  for (Size comp_idx = 0; comp_idx < transition_exp.getCompounds().size(); comp_idx++)
590  {
591  const OpenMS::TargetedExperiment::Compound* comp = &transition_exp.getCompounds()[comp_idx];
592  if (comp->id == compref)
593  {
594  prec.setMetaValue("peptide_sequence", String(comp->id) );
595  break;
596  }
597  }
598 
599  // add precursor to spectrum
600  chrom.setPrecursor(prec);
601 
602  // 4) Create product and set its m/z
603  Product prod;
604  prod.setMZ(transition->getProductMZ());
605  chrom.setProduct(prod);
606 
607  // 5) Set the rest of the meta-data
608  chrom.setInstrumentSettings(settings.getInstrumentSettings());
609  chrom.setAcquisitionInfo(settings.getAcquisitionInfo());
610  chrom.setSourceFile(settings.getSourceFile());
611 
612  for (Size j = 0; j < settings.getDataProcessing().size(); ++j)
613  {
614  settings.getDataProcessing()[j]->setMetaValue("performed_on_spectra", "true");
615  chrom.getDataProcessing().push_back(settings.getDataProcessing()[j]);
616  }
617 
618  // Set the id of the chromatogram, using the id of the transition (this gives directly the mapping of the two)
619  chrom.setNativeID(transition->getNativeID());
621  chromatograms.push_back(chrom);
622  }
623 
624  }
625 
628  double current_rt,
629  const TransformationDescription& trafo,
630  double rt_extraction_window);
631 
633  int getFilterNr_(const String& filter);
634 
637  double rt_extraction_window);
638 
639  std::map<OpenMS::String, double> PeptideRTMap_;
640 
641  };
642 
643  // Specialization for template (LightTargetedExperiment)
644  template<>
645  inline String ChromatogramExtractor::extract_id_<OpenSwath::LightTargetedExperiment>(OpenSwath::LightTargetedExperiment& transition_exp_used,
646  const String& id,
647  int & prec_charge)
648  {
649  const OpenSwath::LightCompound comp = transition_exp_used.getCompoundByRef(id);
650  prec_charge = comp.charge;
651  if (!comp.sequence.empty())
652  {
653  return comp.sequence;
654  }
655  else
656  {
657  return comp.compound_name;
658  }
659  }
660 
661 
662  // Specialization for template (TargetedExperiment)
663  template<>
664  inline String ChromatogramExtractor::extract_id_<OpenMS::TargetedExperiment>(OpenMS::TargetedExperiment& transition_exp_used,
665  const String& id,
666  int & prec_charge)
667  {
668  if (transition_exp_used.hasPeptide(id))
669  {
670  const TargetedExperiment::Peptide p = transition_exp_used.getPeptideByRef(id);
671  if (p.hasCharge()) {prec_charge = p.getChargeState();}
672  return p.sequence;
673  }
674  else if (transition_exp_used.hasCompound(id))
675  {
676  const TargetedExperiment::Compound c = transition_exp_used.getCompoundByRef(id);
677  if (c.hasCharge()) {prec_charge = c.getChargeState();}
678  return c.id;
679  }
680  else
681  {
682  return "";
683  }
684  }
685 }
686 
The ChromatogramExtractorAlgorithm extracts chromatograms from a MS data.
Definition: ChromatogramExtractorAlgorithm.h:34
void extractChromatograms(const OpenSwath::SpectrumAccessPtr &input, std::vector< OpenSwath::ChromatogramPtr > &output, const std::vector< ExtractionCoordinates > &extraction_coordinates, double mz_extraction_window, bool ppm, double im_extraction_window, const String &filter)
Extract chromatograms at the m/z and RT defined by the ExtractionCoordinates.
The ChromatogramExtractor extracts chromatograms from a spectra file.
Definition: ChromatogramExtractor.h:43
static void prepare_coordinates(std::vector< OpenSwath::ChromatogramPtr > &output_chromatograms, std::vector< ExtractionCoordinates > &coordinates, const OpenMS::TargetedExperiment &transition_exp, const double rt_extraction_window, const bool ms1=false, const int ms1_isotopes=0)
Prepare the extraction coordinates from a TargetedExperiment.
ChromatogramExtractorAlgorithm::ExtractionCoordinates ExtractionCoordinates
Definition: ChromatogramExtractor.h:47
void extract_value_tophat(const SpectrumT &input, const double mz, Size &peak_idx, double &integrated_intensity, const double extract_window, const bool ppm)
Definition: ChromatogramExtractor.h:364
int getFilterNr_(const String &filter)
static void prepare_coordinates(std::vector< OpenSwath::ChromatogramPtr > &output_chromatograms, std::vector< ExtractionCoordinates > &coordinates, const OpenSwath::LightTargetedExperiment &transition_exp_used, const double rt_extraction_window, const bool ms1=false, const int ms1_isotopes=0)
void extractChromatograms(const OpenSwath::SpectrumAccessPtr input, std::vector< OpenSwath::ChromatogramPtr > &output, const std::vector< ExtractionCoordinates > &extraction_coordinates, double mz_extraction_window, bool ppm, const String &filter)
Extract chromatograms at the m/z and RT defined by the ExtractionCoordinates.
Definition: ChromatogramExtractor.h:167
void extractChromatograms(const OpenSwath::SpectrumAccessPtr input, std::vector< OpenSwath::ChromatogramPtr > &output, const std::vector< ExtractionCoordinates > &extraction_coordinates, double mz_extraction_window, bool ppm, double im_extraction_window, const String &filter)
Extract chromatograms at the m/z and RT defined by the ExtractionCoordinates.
Definition: ChromatogramExtractor.h:196
void extractChromatograms(const ExperimentT &input, ExperimentT &output, OpenMS::TargetedExperiment &transition_exp, double mz_extraction_window, bool ppm, TransformationDescription trafo, double rt_extraction_window, const String &filter)
Extract chromatograms defined by the TargetedExperiment from the input map and write them to the outp...
Definition: ChromatogramExtractor.h:70
void prepareSpectra_(SpectrumSettingsT &settings, std::vector< ChromatogramT > &chromatograms, OpenMS::TargetedExperiment &transition_exp)
This populates the chromatograms vector with empty chromatograms (but sets their meta-information)
Definition: ChromatogramExtractor.h:558
bool outsideExtractionWindow_(const ReactionMonitoringTransition &transition, double current_rt, const TransformationDescription &trafo, double rt_extraction_window)
static void return_chromatogram(const std::vector< OpenSwath::ChromatogramPtr > &chromatograms, const std::vector< ChromatogramExtractor::ExtractionCoordinates > &coordinates, TransitionExpT &transition_exp_used, SpectrumSettings settings, std::vector< OpenMS::MSChromatogram > &output_chromatograms, bool ms1, double im_extraction_width=0.0)
This converts the ChromatogramPtr to MSChromatogram and adds meta-information.
Definition: ChromatogramExtractor.h:259
std::map< OpenMS::String, double > PeptideRTMap_
Definition: ChromatogramExtractor.h:639
void extract_value_bartlett(const SpectrumT &input, const double mz, Size &peak_idx, double &integrated_intensity, const double extract_window, const bool ppm)
Definition: ChromatogramExtractor.h:446
void populatePeptideRTMap_(OpenMS::TargetedExperiment &transition_exp, double rt_extraction_window)
static String extract_id_(TransitionExpT &transition_exp_used, const String &id, int &prec_charge)
Extracts id (peptide sequence or compound name) for a compound.
void setPrecursor(const Precursor &precursor)
sets the precursors
void setProduct(const Product &product)
sets the products
void setInstrumentSettings(const InstrumentSettings &instrument_settings)
sets the instrument settings of the current spectrum
@ BASEPEAK_CHROMATOGRAM
Definition: ChromatogramSettings.h:46
@ SELECTED_REACTION_MONITORING_CHROMATOGRAM
Definition: ChromatogramSettings.h:48
void setSourceFile(const SourceFile &source_file)
sets the source file
void setChromatogramType(ChromatogramType type)
sets the chromatogram type
std::vector< DataProcessingPtr > & getDataProcessing()
returns a mutable reference to the description of the applied processing
void setAcquisitionInfo(const AcquisitionInfo &acquisition_info)
sets the acquisition info
void setNativeID(const String &native_id)
sets the native identifier for the spectrum, used by the acquisition software.
The representation of a chromatogram.
Definition: MSChromatogram.h:30
void setMetaValue(const String &name, const DataValue &value)
Sets the DataValue corresponding to a name.
static void convertToOpenMSChromatogram(const OpenSwath::ChromatogramPtr &cptr, OpenMS::MSChromatogram &chromatogram)
Convert a ChromatogramPtr to an OpenMS Chromatogram.
static String computeTransitionGroupId(const String &precursor_id)
Compute transition group id.
Definition: OpenSwathHelper.h:56
void setMZ(CoordinateType mz)
Mutable access to m/z.
Definition: Peak1D.h:93
Precursor meta information.
Definition: Precursor.h:35
void setIsolationWindowUpperOffset(double bound)
sets the upper offset from the target m/z
void setDriftTime(double drift_time)
sets the ion mobility drift time in milliseconds
void setDriftTimeWindowUpperOffset(double drift_time)
sets the upper offset from the target ion mobility
void setDriftTimeWindowLowerOffset(double drift_time)
sets the lower offset from the target ion mobility
void setIsolationWindowLowerOffset(double bound)
sets the lower offset from the target m/z
void setCharge(Int charge)
Mutable access to the charge.
Product meta information.
Definition: Product.h:24
void setMZ(double mz)
sets the target m/z
Base class for all classes that want to report their progress.
Definition: ProgressLogger.h:27
This class stores a SRM/MRM transition.
Definition: ReactionMonitoringTransition.h:32
double getPrecursorMZ() const
get the precursor mz (Q1 value)
const String & getCompoundRef() const
const String & getPeptideRef() const
const String & getNativeID() const
Representation of 1D spectrum settings.
Definition: SpectrumSettings.h:39
const SourceFile & getSourceFile() const
returns a const reference to the source file
const AcquisitionInfo & getAcquisitionInfo() const
returns a const reference to the acquisition info
const InstrumentSettings & getInstrumentSettings() const
returns a const reference to the instrument settings of the current spectrum
std::vector< DataProcessingPtr > & getDataProcessing()
returns a mutable reference to the description of the applied processing
const std::vector< Precursor > & getPrecursors() const
returns a const reference to the precursors
A more convenient string class.
Definition: String.h:34
Represents a compound (small molecule)
Definition: TargetedExperimentHelper.h:296
String id
Definition: TargetedExperimentHelper.h:279
int getChargeState() const
Return the peptide or compound charge state.
Definition: TargetedExperimentHelper.h:216
bool hasCharge() const
Whether peptide or compound has set charge state.
Definition: TargetedExperimentHelper.h:210
Represents a peptide (amino acid sequence)
Definition: TargetedExperimentHelper.h:333
String sequence
Definition: TargetedExperimentHelper.h:393
A description of a targeted experiment containing precursor and production ions.
Definition: TargetedExperiment.h:39
const Peptide & getPeptideByRef(const String &ref) const
const std::vector< Peptide > & getPeptides() const
const Compound & getCompoundByRef(const String &ref) const
const std::vector< ReactionMonitoringTransition > & getTransitions() const
returns the transition list
void sortTransitionsByProductMZ()
Lexicographically sorts the transitions by their product m/z.
bool hasCompound(const String &ref) const
bool hasPeptide(const String &ref) const
const std::vector< Compound > & getCompounds() const
Generic description of a coordinate transformation.
Definition: TransformationDescription.h:37
void invert()
Computes an (approximate) inverse of the transformation.
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:97
const double c
Definition: Constants.h:188
const double k
Definition: Constants.h:132
Main OpenMS namespace.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
Peak2D PeakType
Definition: MassTrace.h:21
boost::shared_ptr< Chromatogram > ChromatogramPtr
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/DataStructures.h:146
boost::shared_ptr< ISpectrumAccess > SpectrumAccessPtr
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:131
Definition: ChromatogramExtractorAlgorithm.h:39
double mz
m/z value around which should be extracted
Definition: ChromatogramExtractorAlgorithm.h:40
double ion_mobility
ion mobility value around which should be extracted
Definition: ChromatogramExtractorAlgorithm.h:41
std::string id
identifier
Definition: ChromatogramExtractorAlgorithm.h:45
Definition: TransitionExperiment.h:127
std::string sequence
Definition: TransitionExperiment.h:138
std::string compound_name
Definition: TransitionExperiment.h:147
int charge
Definition: TransitionExperiment.h:137
Definition: TransitionExperiment.h:185
const LightCompound & getCompoundByRef(const std::string &ref)
Definition: TransitionExperiment.h:232