OpenMS
Loading...
Searching...
No Matches
MSDataWritingConsumer.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: Hannes Roest $
7// --------------------------------------------------------------------------
8
9#pragma once
10
12
15
16#include <vector>
17#include <string>
18#include <fstream>
19#include <memory>
20
21namespace OpenMS
22{
61 class OPENMS_DLLAPI MSDataWritingConsumer :
64 {
65
66 public:
70
80 explicit MSDataWritingConsumer(const std::string& filename);
81
84
86
87
95
106 void setExpectedSize(Size expectedSpectra, Size expectedChromatograms) override;
107
116 void consumeSpectrum(SpectrumType & s) override;
117
128
138
143
148
149 private:
150
152
153
158 virtual void processSpectrum_(SpectrumType & s) = 0;
159
167
173 virtual void doCleanup_();
174
175 protected:
176
178 std::ofstream ofs_;
179
196
199
203 std::vector<std::vector< ConstDataProcessingPtr > > dps_;
206 };
207
217 class OPENMS_DLLAPI PlainMSDataWritingConsumer :
219 {
220 void processSpectrum_(MapType::SpectrumType & /* s */) override {}
222
223 public:
224
225 explicit PlainMSDataWritingConsumer(std::string filename) : MSDataWritingConsumer(filename) {}
226 };
227
235 class OPENMS_DLLAPI NoopMSDataWritingConsumer :
237 {
238 public:
239
240 explicit NoopMSDataWritingConsumer(std::string filename) : MSDataWritingConsumer(filename) {}
241 void setExperimentalSettings(const ExperimentalSettings& /* exp */) override {}
242 void consumeSpectrum(SpectrumType & /* s */) override {}
243 void consumeChromatogram(ChromatogramType & /* c */) override {}
244
245 private:
246
247 void doCleanup_() override {}
248 void processSpectrum_(MapType::SpectrumType & /* s */) override {}
250 };
251
252
253} //end namespace OpenMS
254
255
Description of the applied preprocessing steps.
Definition DataProcessing.h:28
Description of the experimental settings.
Definition ExperimentalSettings.h:37
The interface of a consumer of spectra and chromatograms.
Definition IMSDataConsumer.h:46
Handler for mzML file format.
Definition MzMLHandler.h:93
Semantic validator for mzML files.
Definition MzMLValidator.h:41
The representation of a chromatogram.
Definition MSChromatogram.h:33
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:178
virtual Size getNrChromatogramsWritten()
Return the number of chromatograms written.
Size spectra_expected_
Number of spectra expected.
Definition MSDataWritingConsumer.h:191
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:183
Size spectra_written_
Number of spectra written.
Definition MSDataWritingConsumer.h:187
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:203
bool add_dataprocessing_
Whether to add dataprocessing term to the data before writing.
Definition MSDataWritingConsumer.h:195
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:205
MSDataWritingConsumer(const std::string &filename)
Constructor.
virtual void doCleanup_()
Cleanup function called by the destructor.
Size chromatograms_expected_
Number of chromatograms expected.
Definition MSDataWritingConsumer.h:193
bool writing_chromatograms_
Stores whether we are currently writing chromatograms.
Definition MSDataWritingConsumer.h:185
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:181
ExperimentalSettings settings_
Experimental settings to use for the whole file.
Definition MSDataWritingConsumer.h:201
Size chromatograms_written_
Number of chromatograms written.
Definition MSDataWritingConsumer.h:189
Internal::MzMLValidator * validator_
Validator that knows about CV terms.
Definition MSDataWritingConsumer.h:198
In-Memory representation of a mass spectrometry run.
Definition MSExperiment.h:49
The representation of a 1D spectrum.
Definition MSSpectrum.h:44
Consumer class that perform no operation.
Definition MSDataWritingConsumer.h:237
void consumeChromatogram(ChromatogramType &) override
Consume a chromatogram.
Definition MSDataWritingConsumer.h:243
void processChromatogram_(MapType::ChromatogramType &) override
Process a chromatogram before storing to disk.
Definition MSDataWritingConsumer.h:249
NoopMSDataWritingConsumer(std::string filename)
Definition MSDataWritingConsumer.h:240
void doCleanup_() override
Cleanup function called by the destructor.
Definition MSDataWritingConsumer.h:247
void setExperimentalSettings(const ExperimentalSettings &) override
Set experimental settings for the whole file.
Definition MSDataWritingConsumer.h:241
void processSpectrum_(MapType::SpectrumType &) override
Process a spectrum before storing to disk.
Definition MSDataWritingConsumer.h:248
void consumeSpectrum(SpectrumType &) override
Consume a spectrum.
Definition MSDataWritingConsumer.h:242
Consumer class that writes MS data to disk using the mzML format.
Definition MSDataWritingConsumer.h:219
void processChromatogram_(MapType::ChromatogramType &) override
Process a chromatogram before storing to disk.
Definition MSDataWritingConsumer.h:221
void processSpectrum_(MapType::SpectrumType &) override
Process a spectrum before storing to disk.
Definition MSDataWritingConsumer.h:220
PlainMSDataWritingConsumer(std::string filename)
Definition MSDataWritingConsumer.h:225
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition Types.h:97
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
std::shared_ptr< DataProcessing > DataProcessingPtr
Definition DataProcessing.h:123