OpenMS
MSDataCachedConsumer Class Reference

Transforming and cached writing consumer of MS data. More...

#include <OpenMS/FORMAT/DATAACCESS/MSDataCachedConsumer.h>

Inheritance diagram for MSDataCachedConsumer:
[legend]
Collaboration diagram for MSDataCachedConsumer:
[legend]

Public Member Functions

 MSDataCachedConsumer (const String &filename, bool clearData=true)
 Constructor. More...
 
 ~MSDataCachedConsumer () override
 Destructor. More...
 
void consumeSpectrum (SpectrumType &s) override
 Write a spectrum to the output file. More...
 
void consumeChromatogram (ChromatogramType &c) override
 Write a chromatogram to the output file. More...
 
void setExpectedSize (Size, Size) override
 Set expected size of spectra and chromatograms to be consumed. More...
 
void setExperimentalSettings (const ExperimentalSettings &) override
 Set experimental settings (meta-data) of the data to be consumed. More...
 
- Public Member Functions inherited from CachedMzMLHandler
 CachedMzMLHandler ()
 Default constructor. More...
 
 ~CachedMzMLHandler () override
 Default destructor. More...
 
CachedMzMLHandleroperator= (const CachedMzMLHandler &rhs)
 Assignment operator. More...
 
void writeMemdump (const MapType &exp, const String &out) const
 Write complete spectra as a dump to the disk. More...
 
void writeMetadata (MapType exp, const String &out_meta, bool addCacheMetaValue=false)
 Write only the meta data of an MSExperiment. More...
 
void writeMetadata_x (const MapType &exp, const String &out_meta, bool addCacheMetaValue=false)
 Write only the meta data of an MSExperiment. More...
 
void readMemdump (MapType &exp_reading, const String &filename) const
 Read all spectra from a dump from the disk. More...
 
void createMemdumpIndex (const String &filename)
 Create an index on the location of all the spectra and chromatograms. More...
 
const std::vector< std::streampos > & getSpectraIndex () const
 Access to a constant copy of the binary spectra index. More...
 
const std::vector< std::streampos > & getChromatogramIndex () const
 Access to a constant copy of the binary chromatogram index. More...
 
- Public Member Functions inherited from ProgressLogger
 ProgressLogger ()
 Constructor. More...
 
virtual ~ProgressLogger ()
 Destructor. More...
 
 ProgressLogger (const ProgressLogger &other)
 Copy constructor. More...
 
ProgressLoggeroperator= (const ProgressLogger &other)
 Assignment Operator. More...
 
void setLogType (LogType type) const
 Sets the progress log that should be used. The default type is NONE! More...
 
LogType getLogType () const
 Returns the type of progress log being used. More...
 
void startProgress (SignedSize begin, SignedSize end, const String &label) const
 Initializes the progress display. More...
 
void setProgress (SignedSize value) const
 Sets the current progress. More...
 
void endProgress (UInt64 bytes_processed=0) const
 
void nextProgress () const
 increment progress by 1 (according to range begin-end) More...
 
- Public Member Functions inherited from IMSDataConsumer
virtual ~IMSDataConsumer ()
 

Protected Attributes

std::ofstream ofs_
 
bool clearData_
 
Size spectra_written_
 
Size chromatograms_written_
 
- Protected Attributes inherited from CachedMzMLHandler
std::vector< std::streampos > spectra_index_
 Members. More...
 
std::vector< std::streampos > chrom_index_
 
- Protected Attributes inherited from ProgressLogger
LogType type_
 
time_t last_invoke_
 
ProgressLoggerImplcurrent_logger_
 

Private Types

typedef MSSpectrum SpectrumType
 
typedef MSChromatogram ChromatogramType
 

Additional Inherited Members

- Public Types inherited from CachedMzMLHandler
typedef PeakMap MapType
 
typedef MSSpectrum SpectrumType
 
typedef MSChromatogram ChromatogramType
 
typedef double DatumSingleton
 
typedef std::vector< DatumSingletonDatavector
 
- Public Types inherited from ProgressLogger
enum  LogType { CMD , GUI , NONE }
 Possible log types. More...
 
- Public Types inherited from IMSDataConsumer
typedef MSSpectrum SpectrumType
 
typedef MSChromatogram ChromatogramType
 
- Static Public Member Functions inherited from CachedMzMLHandler
static void readSpectrumFast (OpenSwath::BinaryDataArrayPtr &data1, OpenSwath::BinaryDataArrayPtr &data2, std::ifstream &ifs, int &ms_level, double &rt)
 fast access to a spectrum (a direct copy of the data into the provided arrays) More...
 
static std::vector< OpenSwath::BinaryDataArrayPtrreadSpectrumFast (std::ifstream &ifs, int &ms_level, double &rt)
 Fast access to a spectrum. More...
 
static void readChromatogramFast (OpenSwath::BinaryDataArrayPtr &data1, OpenSwath::BinaryDataArrayPtr &data2, std::ifstream &ifs)
 Fast access to a chromatogram. More...
 
static std::vector< OpenSwath::BinaryDataArrayPtrreadChromatogramFast (std::ifstream &ifs)
 Fast access to a chromatogram. More...
 
static void readSpectrum (SpectrumType &spectrum, std::ifstream &ifs)
 Read a single spectrum directly into an OpenMS MSSpectrum (assuming file is already at the correct position) More...
 
static void readChromatogram (ChromatogramType &chromatogram, std::ifstream &ifs)
 Read a single chromatogram directly into an OpenMS MSChromatogram (assuming file is already at the correct position) More...
 
- Protected Member Functions inherited from CachedMzMLHandler
void writeSpectrum_ (const SpectrumType &spectrum, std::ofstream &ofs) const
 write a single spectrum to filestream More...
 
void writeChromatogram_ (const ChromatogramType &chromatogram, std::ofstream &ofs) const
 write a single chromatogram to filestream More...
 
- Static Protected Member Functions inherited from CachedMzMLHandler
static void readDataFast_ (std::ifstream &ifs, std::vector< OpenSwath::BinaryDataArrayPtr > &data, const Size &data_size, const Size &nr_float_arrays)
 helper method for fast reading of spectra and chromatograms More...
 
- Static Protected Member Functions inherited from ProgressLogger
static String logTypeToFactoryName_ (LogType type)
 Return the name of the factory product used for this log type. More...
 
- Static Protected Attributes inherited from ProgressLogger
static int recursion_depth_
 

Detailed Description

Transforming and cached writing consumer of MS data.

Is able to transform a spectrum on the fly while it is read using a function pointer that can be set on the object. The spectra is then cached to disk using the functions provided in CachedMzMLHandler.

Member Typedef Documentation

◆ ChromatogramType

◆ SpectrumType

typedef MSSpectrum SpectrumType
private

Constructor & Destructor Documentation

◆ MSDataCachedConsumer()

MSDataCachedConsumer ( const String filename,
bool  clearData = true 
)

Constructor.

Opens the output file and writes the header.

Parameters
filenameThe output file name to which data is written
clearDataWhether to clear the spectral and chromatogram data after writing (only keep meta-data)
Note
Clearing data from spectra and chromatograms also clears float and integer data arrays associated with the structure as these are written to disk as well.

◆ ~MSDataCachedConsumer()

~MSDataCachedConsumer ( )
override

Destructor.

Closes the output file and writes the footer.

Member Function Documentation

◆ consumeChromatogram()

void consumeChromatogram ( ChromatogramType c)
overridevirtual

Write a chromatogram to the output file.

Note
May delete data from chromatogram (if clearData is set)

Implements IMSDataConsumer.

◆ consumeSpectrum()

void consumeSpectrum ( SpectrumType s)
overridevirtual

Write a spectrum to the output file.

Note
May delete data from spectrum (if clearData is set)

Implements IMSDataConsumer.

◆ setExpectedSize()

void setExpectedSize ( Size  expectedSpectra,
Size  expectedChromatograms 
)
inlineoverridevirtual

Set expected size of spectra and chromatograms to be consumed.

Some implementations might care about the number of spectra and chromatograms to be consumed and need to be informed about this (usually before consuming starts).

Note
Calling this method is optional but good practice.
Parameters
expectedSpectraNumber of spectra expected
expectedChromatogramsNumber of chromatograms expected

Implements IMSDataConsumer.

Referenced by CachedSwathFileConsumer::addNewSwathMap_().

◆ setExperimentalSettings()

void setExperimentalSettings ( const ExperimentalSettings exp)
inlineoverridevirtual

Set experimental settings (meta-data) of the data to be consumed.

Some implementations might need to know about the meta-data (or the context) of the spectra and chromatograms to be consumed. This method allows them learn this.

Note
Calling this method is optional but good practice.
Parameters
expExperimental settings meta data for the data to be consumed

Implements IMSDataConsumer.

Member Data Documentation

◆ chromatograms_written_

Size chromatograms_written_
protected

◆ clearData_

bool clearData_
protected

◆ ofs_

std::ofstream ofs_
protected

◆ spectra_written_

Size spectra_written_
protected