OpenMS
OnDiscMSExperiment Class Reference

Representation of a mass spectrometry experiment on disk. More...

#include <OpenMS/KERNEL/OnDiscMSExperiment.h>

Collaboration diagram for OnDiscMSExperiment:
[legend]

Public Member Functions

 OnDiscMSExperiment ()=default
 Constructor. More...
 
bool openFile (const String &filename, bool skipMetaData=false)
 Open a specific file on disk. More...
 
 OnDiscMSExperiment (const OnDiscMSExperiment &source)
 Copy constructor. More...
 
bool operator== (const OnDiscMSExperiment &rhs) const
 Equality operator. More...
 
bool operator!= (const OnDiscMSExperiment &rhs) const
 Inequality operator. More...
 
bool isSortedByRT () const
 Checks if all spectra are sorted with respect to ascending RT. More...
 
Size size () const
 alias for getNrSpectra More...
 
bool empty () const
 returns whether spectra are empty More...
 
Size getNrSpectra () const
 get the total number of spectra available More...
 
Size getNrChromatograms () const
 get the total number of chromatograms available More...
 
boost::shared_ptr< const ExperimentalSettingsgetExperimentalSettings () const
 returns the meta information of this experiment (const access) More...
 
boost::shared_ptr< PeakMapgetMetaData () const
 
MSSpectrum operator[] (Size n)
 alias for getSpectrum More...
 
MSSpectrum getSpectrum (Size id)
 returns a single spectrum More...
 
OpenMS::Interfaces::SpectrumPtr getSpectrumById (Size id)
 returns a single spectrum More...
 
MSChromatogram getChromatogram (Size id)
 returns a single chromatogram More...
 
MSChromatogram getChromatogramByNativeId (const std::string &id)
 returns a single chromatogram More...
 
MSSpectrum getSpectrumByNativeId (const std::string &id)
 returns a single spectrum More...
 
OpenMS::Interfaces::ChromatogramPtr getChromatogramById (Size id)
 returns a single chromatogram More...
 
void setSkipXMLChecks (bool skip)
 sets whether to skip some XML checks and be fast instead More...
 

Protected Attributes

String filename_
 The filename of the underlying data file. More...
 
Internal::IndexedMzMLHandler indexed_mzml_file_
 The index of the underlying data file. More...
 
boost::shared_ptr< PeakMapmeta_ms_experiment_
 The meta-data. More...
 
std::unordered_map< std::string, Sizechromatograms_native_ids_
 Mapping of chromatogram native ids to offsets. More...
 
std::unordered_map< std::string, Sizespectra_native_ids_
 Mapping of spectra native ids to offsets. More...
 

Private Types

typedef ChromatogramPeak ChromatogramPeakT
 
typedef Peak1D PeakT
 

Private Member Functions

OnDiscMSExperimentoperator= (const OnDiscMSExperiment &)
 Private Assignment operator -> we cannot copy file streams in IndexedMzMLHandler. More...
 
void loadMetaData_ (const String &filename)
 
MSChromatogram getMetaChromatogramById_ (const std::string &id)
 
MSSpectrum getMetaSpectrumById_ (const std::string &id)
 

Detailed Description

Representation of a mass spectrometry experiment on disk.

Note
This implementation is not thread-safe since it keeps internally a single file access pointer which it moves when accessing a specific data item. Please provide a separate copy to each thread, e.g.
#pragma omp parallel for firstprivate(ondisc_map)

Member Typedef Documentation

◆ ChromatogramPeakT

◆ PeakT

typedef Peak1D PeakT
private

Constructor & Destructor Documentation

◆ OnDiscMSExperiment() [1/2]

OnDiscMSExperiment ( )
default

Constructor.

This initializes the object, use openFile to open a file.

◆ OnDiscMSExperiment() [2/2]

OnDiscMSExperiment ( const OnDiscMSExperiment source)
inline

Copy constructor.

Member Function Documentation

◆ empty()

bool empty ( ) const
inline

returns whether spectra are empty

◆ getChromatogram()

MSChromatogram getChromatogram ( Size  id)
inline

returns a single chromatogram

Parameters
idThe index of the chromatogram

◆ getChromatogramById()

OpenMS::Interfaces::ChromatogramPtr getChromatogramById ( Size  id)

returns a single chromatogram

◆ getChromatogramByNativeId()

MSChromatogram getChromatogramByNativeId ( const std::string &  id)

returns a single chromatogram

Parameters
idThe native identifier of the chromatogram

◆ getExperimentalSettings()

boost::shared_ptr<const ExperimentalSettings> getExperimentalSettings ( ) const
inline

returns the meta information of this experiment (const access)

◆ getMetaChromatogramById_()

MSChromatogram getMetaChromatogramById_ ( const std::string &  id)
private

◆ getMetaData()

boost::shared_ptr<PeakMap> getMetaData ( ) const
inline

◆ getMetaSpectrumById_()

MSSpectrum getMetaSpectrumById_ ( const std::string &  id)
private

◆ getNrChromatograms()

Size getNrChromatograms ( ) const
inline

get the total number of chromatograms available

◆ getNrSpectra()

Size getNrSpectra ( ) const
inline

get the total number of spectra available

◆ getSpectrum()

MSSpectrum getSpectrum ( Size  id)
inline

returns a single spectrum

Parameters
idThe index of the spectrum

◆ getSpectrumById()

OpenMS::Interfaces::SpectrumPtr getSpectrumById ( Size  id)
inline

returns a single spectrum

◆ getSpectrumByNativeId()

MSSpectrum getSpectrumByNativeId ( const std::string &  id)

returns a single spectrum

Parameters
idThe native identifier of the spectrum

◆ isSortedByRT()

bool isSortedByRT ( ) const
inline

Checks if all spectra are sorted with respect to ascending RT.

Note that we cannot check whether all spectra are sorted (except if we were to load them all and check).

◆ loadMetaData_()

void loadMetaData_ ( const String filename)
private

◆ openFile()

bool openFile ( const String filename,
bool  skipMetaData = false 
)

Open a specific file on disk.

This tries to read the indexed mzML by parsing the index and then reading the meta information into memory.

Returns
Whether the parsing of the file was successful (if false, the file most likely was not an indexed mzML file)

◆ operator!=()

bool operator!= ( const OnDiscMSExperiment rhs) const
inline

Inequality operator.

References OpenMS::Internal::operator==().

◆ operator=()

OnDiscMSExperiment& operator= ( const OnDiscMSExperiment )
private

Private Assignment operator -> we cannot copy file streams in IndexedMzMLHandler.

◆ operator==()

bool operator== ( const OnDiscMSExperiment rhs) const
inline

Equality operator.

This only checks whether the underlying file is the same and the parsed meta-information is the same. Note that the file reader (e.g. the std::ifstream of the file) might be in a different state.

References OnDiscMSExperiment::filename_, and OnDiscMSExperiment::meta_ms_experiment_.

◆ operator[]()

MSSpectrum operator[] ( Size  n)
inline

alias for getSpectrum

◆ setSkipXMLChecks()

void setSkipXMLChecks ( bool  skip)

sets whether to skip some XML checks and be fast instead

◆ size()

Size size ( ) const
inline

alias for getNrSpectra

Member Data Documentation

◆ chromatograms_native_ids_

std::unordered_map< std::string, Size > chromatograms_native_ids_
protected

Mapping of chromatogram native ids to offsets.

◆ filename_

String filename_
protected

The filename of the underlying data file.

Referenced by OnDiscMSExperiment::operator==().

◆ indexed_mzml_file_

Internal::IndexedMzMLHandler indexed_mzml_file_
protected

The index of the underlying data file.

◆ meta_ms_experiment_

boost::shared_ptr<PeakMap> meta_ms_experiment_
protected

The meta-data.

Referenced by OnDiscMSExperiment::operator==().

◆ spectra_native_ids_

std::unordered_map< std::string, Size > spectra_native_ids_
protected

Mapping of spectra native ids to offsets.