OpenMS
MSDataWritingConsumer.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 
15 
16 #include <vector>
17 #include <string>
18 #include <fstream>
19 #include <boost/shared_ptr.hpp>
20 
21 namespace OpenMS
22 {
61  class OPENMS_DLLAPI MSDataWritingConsumer :
62  public Internal::MzMLHandler,
64  {
65 
66  public:
67  typedef PeakMap MapType;
70 
76  explicit MSDataWritingConsumer(const String& filename);
77 
80 
82 
83 
90  void setExperimentalSettings(const ExperimentalSettings& exp) override;
91 
102  void setExpectedSize(Size expectedSpectra, Size expectedChromatograms) override;
103 
112  void consumeSpectrum(SpectrumType & s) override;
113 
124 
134 
139 
144 
145  private:
146 
148 
149 
154  virtual void processSpectrum_(SpectrumType & s) = 0;
155 
163 
169  virtual void doCleanup_();
170 
171  protected:
172 
174  std::ofstream ofs_;
175 
192 
195 
199  std::vector<std::vector< ConstDataProcessingPtr > > dps_;
202  };
203 
213  class OPENMS_DLLAPI PlainMSDataWritingConsumer :
214  public MSDataWritingConsumer
215  {
216  void processSpectrum_(MapType::SpectrumType & /* s */) override {}
218 
219  public:
220 
221  explicit PlainMSDataWritingConsumer(String filename) : MSDataWritingConsumer(filename) {}
222  };
223 
231  class OPENMS_DLLAPI NoopMSDataWritingConsumer :
232  public MSDataWritingConsumer
233  {
234  public:
235 
236  explicit NoopMSDataWritingConsumer(String filename) : MSDataWritingConsumer(filename) {}
237  void setExperimentalSettings(const ExperimentalSettings& /* exp */) override {}
238  void consumeSpectrum(SpectrumType & /* s */) override {}
239  void consumeChromatogram(ChromatogramType & /* c */) override {}
240 
241  private:
242 
243  void doCleanup_() override {}
244  void processSpectrum_(MapType::SpectrumType & /* s */) override {}
246  };
247 
248 
249 } //end namespace OpenMS
250 
251 
Description of the applied preprocessing steps.
Definition: DataProcessing.h:27
Description of the experimental settings.
Definition: ExperimentalSettings.h:36
The interface of a consumer of spectra and chromatograms.
Definition: IMSDataConsumer.h:46
Handler for mzML file format.
Definition: MzMLHandler.h:94
Semantically validates MzXML files.
Definition: MzMLValidator.h:25
The representation of a chromatogram.
Definition: MSChromatogram.h:30
Consumer class that writes MS data to disk using the mzML format.
Definition: MSDataWritingConsumer.h:64
virtual void processChromatogram_(ChromatogramType &c)=0
Process a chromatogram before storing to disk.
~MSDataWritingConsumer() override
Destructor.
std::ofstream ofs_
File stream (to write mzML)
Definition: MSDataWritingConsumer.h:174
virtual Size getNrChromatogramsWritten()
Return the number of chromatograms written.
Size spectra_expected_
Number of spectra expected.
Definition: MSDataWritingConsumer.h:187
void setExpectedSize(Size expectedSpectra, Size expectedChromatograms) override
Set expected size of spectra and chromatograms to be written.
bool writing_spectra_
Stores whether we are currently writing spectra.
Definition: MSDataWritingConsumer.h:179
Size spectra_written_
Number of spectra written.
Definition: MSDataWritingConsumer.h:183
virtual void addDataProcessing(DataProcessing d)
Optionally add a data processing method to each chromatogram and spectrum.
std::vector< std::vector< ConstDataProcessingPtr > > dps_
Vector of data processing objects -> will be filled by writeHeader_.
Definition: MSDataWritingConsumer.h:199
bool add_dataprocessing_
Whether to add dataprocessing term to the data before writing.
Definition: MSDataWritingConsumer.h:191
MSDataWritingConsumer(const String &filename)
Constructor.
MapType::ChromatogramType ChromatogramType
Definition: MSDataWritingConsumer.h:69
virtual void processSpectrum_(SpectrumType &s)=0
Process a spectrum before storing to disk.
void consumeChromatogram(ChromatogramType &c) override
Consume a chromatogram.
DataProcessingPtr additional_dataprocessing_
The dataprocessing to be added to each spectrum/chromatogram.
Definition: MSDataWritingConsumer.h:201
virtual void doCleanup_()
Cleanup function called by the destructor.
Size chromatograms_expected_
Number of chromatograms expected.
Definition: MSDataWritingConsumer.h:189
bool writing_chromatograms_
Stores whether we are currently writing chromatograms.
Definition: MSDataWritingConsumer.h:181
PeakMap MapType
Definition: MSDataWritingConsumer.h:67
void setExperimentalSettings(const ExperimentalSettings &exp) override
Set experimental settings for the whole file.
void consumeSpectrum(SpectrumType &s) override
Consume a spectrum.
MapType::SpectrumType SpectrumType
Definition: MSDataWritingConsumer.h:68
virtual Size getNrSpectraWritten()
Return the number of spectra written.
bool started_writing_
Stores whether we have already started writing any data.
Definition: MSDataWritingConsumer.h:177
ExperimentalSettings settings_
Experimental settings to use for the whole file.
Definition: MSDataWritingConsumer.h:197
Size chromatograms_written_
Number of chromatograms written.
Definition: MSDataWritingConsumer.h:185
Internal::MzMLValidator * validator_
Validator that knows about CV terms.
Definition: MSDataWritingConsumer.h:194
In-Memory representation of a mass spectrometry run.
Definition: MSExperiment.h:46
The representation of a 1D spectrum.
Definition: MSSpectrum.h:44
Consumer class that perform no operation.
Definition: MSDataWritingConsumer.h:233
void consumeChromatogram(ChromatogramType &) override
Consume a chromatogram.
Definition: MSDataWritingConsumer.h:239
void processChromatogram_(MapType::ChromatogramType &) override
Process a chromatogram before storing to disk.
Definition: MSDataWritingConsumer.h:245
NoopMSDataWritingConsumer(String filename)
Definition: MSDataWritingConsumer.h:236
void doCleanup_() override
Cleanup function called by the destructor.
Definition: MSDataWritingConsumer.h:243
void setExperimentalSettings(const ExperimentalSettings &) override
Set experimental settings for the whole file.
Definition: MSDataWritingConsumer.h:237
void processSpectrum_(MapType::SpectrumType &) override
Process a spectrum before storing to disk.
Definition: MSDataWritingConsumer.h:244
void consumeSpectrum(SpectrumType &) override
Consume a spectrum.
Definition: MSDataWritingConsumer.h:238
Consumer class that writes MS data to disk using the mzML format.
Definition: MSDataWritingConsumer.h:215
void processChromatogram_(MapType::ChromatogramType &) override
Process a chromatogram before storing to disk.
Definition: MSDataWritingConsumer.h:217
void processSpectrum_(MapType::SpectrumType &) override
Process a spectrum before storing to disk.
Definition: MSDataWritingConsumer.h:216
PlainMSDataWritingConsumer(String filename)
Definition: MSDataWritingConsumer.h:221
A more convenient string class.
Definition: String.h:34
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
Main OpenMS namespace.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
boost::shared_ptr< DataProcessing > DataProcessingPtr
Definition: DataProcessing.h:111