![]() |
OpenMS
2.4.0
|
#include <OpenMS/FORMAT/HANDLERS/MzMLHandler.h>
Classes | |
struct | ChromatogramData |
Data necessary to generate a single chromatogram. More... | |
struct | SpectrumData |
Data necessary to generate a single spectrum. More... | |
Public Member Functions | |
void | getCounts (Size &spectra_counts, Size &chromatogram_counts) |
Get the spectra and chromatogram counts of a file. More... | |
void | setMSDataConsumer (Interfaces::IMSDataConsumer *consumer) |
Set the IMSDataConsumer consumer which will consume the read data. More... | |
virtual LOADDETAIL | getLoadDetail () const override |
handler which support partial loading, implement this method More... | |
virtual void | setLoadDetail (const LOADDETAIL d) override |
handler which support partial loading, implement this method More... | |
Constructors and destructor | |
MzMLHandler (MapType &exp, const String &filename, const String &version, const ProgressLogger &logger) | |
Constructor for a read-only handler. More... | |
MzMLHandler (const MapType &exp, const String &filename, const String &version, const ProgressLogger &logger) | |
Constructor for a write-only handler. More... | |
~MzMLHandler () override | |
Destructor. More... | |
XML Handling functions and output writing | |
void | endElement (const XMLCh *const, const XMLCh *const, const XMLCh *const qname) override |
void | startElement (const XMLCh *const, const XMLCh *const, const XMLCh *const qname, const xercesc::Attributes &attributes) override |
void | characters (const XMLCh *const chars, const XMLSize_t length) override |
void | writeTo (std::ostream &os) override |
Writes the contents to a stream. More... | |
PeakFileOptions setters/getters | |
The PeakFileOptions object determine the reading and writing of the MzML file. In read-mode the lazy-loading options determine whether meta-data only or the full raw data is read into memory and how this data should be handled. The MS-level, m/z, RT and Intensity range options determine which part of the MzML file is read into memory. | |
void | setOptions (const PeakFileOptions &opt) |
Set the peak file options. More... | |
PeakFileOptions & | getOptions () |
Get the peak file options. More... | |
![]() | |
XMLHandler (const String &filename, const String &version) | |
Default constructor. More... | |
~XMLHandler () override | |
Destructor. More... | |
void | reset () |
Release internal memory used for parsing (call. More... | |
void | fatalError (ActionMode mode, const String &msg, UInt line=0, UInt column=0) const |
Fatal error handler. Throws a ParseError exception. More... | |
void | error (ActionMode mode, const String &msg, UInt line=0, UInt column=0) const |
Error handler for recoverable errors. More... | |
void | warning (ActionMode mode, const String &msg, UInt line=0, UInt column=0) const |
Warning handler. More... | |
void | characters (const XMLCh *const chars, const XMLSize_t length) override |
Parsing method for character data. More... | |
void | startElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname, const xercesc::Attributes &attrs) override |
Parsing method for opening tags. More... | |
void | endElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname) override |
Parsing method for closing tags. More... | |
String | errorString () |
Returns the last error description. More... | |
void | fatalError (const xercesc::SAXParseException &exception) override |
void | error (const xercesc::SAXParseException &exception) override |
void | warning (const xercesc::SAXParseException &exception) override |
Protected Types | |
typedef MapType::PeakType | PeakType |
Peak type. More... | |
typedef MapType::ChromatogramPeakType | ChromatogramPeakType |
Chromatogram peak type. More... | |
typedef MSSpectrum | SpectrumType |
Spectrum type. More... | |
typedef MSChromatogram | ChromatogramType |
Spectrum type. More... | |
typedef MzMLHandlerHelper::BinaryData | BinaryData |
Protected Member Functions | |
MzMLHandler (const String &filename, const String &version, const ProgressLogger &logger) | |
delegated constructor for the two public versions More... | |
void | writeSpectrum_ (std::ostream &os, const SpectrumType &spec, Size s, Internal::MzMLValidator &validator, bool renew_native_ids, std::vector< std::vector< ConstDataProcessingPtr > > &dps) |
void | writeChromatogram_ (std::ostream &os, const ChromatogramType &chromatogram, Size c, Internal::MzMLValidator &validator) |
template<typename ContainerT > | |
void | writeContainerData_ (std::ostream &os, const PeakFileOptions &pf_options_, const ContainerT &container, String array_type) |
void | populateSpectraWithData_ () |
Populate all spectra on the stack with data from input. More... | |
void | populateChromatogramsWithData_ () |
Populate all chromatograms on the stack with data from input. More... | |
void | addSpectrumMetaData_ (const std::vector< MzMLHandlerHelper::BinaryData > &input_data, const Size n, SpectrumType &spectrum) const |
void | populateSpectraWithData_ (std::vector< MzMLHandlerHelper::BinaryData > &input_data, Size &default_arr_length, const PeakFileOptions &peak_file_options, SpectrumType &spectrum) |
Fill a single spectrum with data from input. More... | |
void | populateChromatogramsWithData_ (std::vector< MzMLHandlerHelper::BinaryData > &input_data, Size &default_arr_length, const PeakFileOptions &peak_file_options, ChromatogramType &inp_chromatogram) |
Fill a single chromatogram with data from input. More... | |
template<typename DataType > | |
void | writeBinaryDataArray_ (std::ostream &os, const PeakFileOptions &pf_options_, std::vector< DataType > data_to_encode, bool is32bit, String array_type) |
void | writeHeader_ (std::ostream &os, const MapType &exp, std::vector< std::vector< ConstDataProcessingPtr > > &dps, Internal::MzMLValidator &validator) |
void | fillChromatogramData_ () |
Fills the current chromatogram with data points and meta data. More... | |
void | handleCVParam_ (const String &parent_parent_tag, const String &parent_tag, const String &accession, const String &name, const String &value, const String &unit_accession="") |
Handles CV terms. More... | |
void | handleUserParam_ (const String &parent_parent_tag, const String &parent_tag, const String &name, const String &type, const String &value) |
Handles user terms. More... | |
void | writeUserParam_ (std::ostream &os, const MetaInfoInterface &meta, UInt indent, String path, Internal::MzMLValidator &validator) const |
Writes user terms. More... | |
ControlledVocabulary::CVTerm | getChildWithName_ (const String &parent_accession, const String &name) const |
Looks up a child CV term of parent_accession with the name name . If no such term is found, an empty term is returned. More... | |
void | writeSoftware_ (std::ostream &os, const String &id, const Software &software, Internal::MzMLValidator &validator) |
Helper method that writes a software. More... | |
void | writeSourceFile_ (std::ostream &os, const String &id, const SourceFile &software, Internal::MzMLValidator &validator) |
Helper method that writes a source file. More... | |
void | writeDataProcessing_ (std::ostream &os, const String &id, const std::vector< ConstDataProcessingPtr > &dps, Internal::MzMLValidator &validator) |
Helper method that writes a data processing list. More... | |
void | writePrecursor_ (std::ostream &os, const Precursor &precursor, Internal::MzMLValidator &validator) |
Helper method that write precursor information from spectra and chromatograms. More... | |
void | writeProduct_ (std::ostream &os, const Product &product, Internal::MzMLValidator &validator) |
Helper method that write precursor information from spectra and chromatograms. More... | |
String | writeCV_ (const ControlledVocabulary::CVTerm &c, const DataValue &metaValue) const |
Helper method to write an CV based on a meta value. More... | |
bool | validateCV_ (const ControlledVocabulary::CVTerm &c, const String &path, const Internal::MzMLValidator &validator) const |
Helper method to validate if the given CV is allowed in the current location (path) More... | |
![]() | |
bool | equal_ (const XMLCh *a, const XMLCh *b) const |
Returns if two Xerces strings are equal. More... | |
void | writeUserParam_ (const String &tag_name, std::ostream &os, const MetaInfoInterface &meta, UInt indent) const |
Writes the content of MetaInfoInterface to the file. More... | |
Int | asInt_ (const String &in) |
Conversion of a String to an integer value. More... | |
Int | asInt_ (const XMLCh *in) |
Conversion of a Xerces string to an integer value. More... | |
UInt | asUInt_ (const String &in) |
Conversion of a String to an unsigned integer value. More... | |
double | asDouble_ (const String &in) |
Conversion of a String to a double value. More... | |
float | asFloat_ (const String &in) |
Conversion of a String to a float value. More... | |
bool | asBool_ (const String &in) |
Conversion of a string to a boolean value. More... | |
DateTime | asDateTime_ (String date_string) |
Conversion of a xs:datetime string to a DateTime value. More... | |
String | attributeAsString_ (const xercesc::Attributes &a, const char *name) const |
Converts an attribute to a String. More... | |
Int | attributeAsInt_ (const xercesc::Attributes &a, const char *name) const |
Converts an attribute to a Int. More... | |
double | attributeAsDouble_ (const xercesc::Attributes &a, const char *name) const |
Converts an attribute to a double. More... | |
DoubleList | attributeAsDoubleList_ (const xercesc::Attributes &a, const char *name) const |
Converts an attribute to a DoubleList. More... | |
IntList | attributeAsIntList_ (const xercesc::Attributes &a, const char *name) const |
Converts an attribute to an IntList. More... | |
StringList | attributeAsStringList_ (const xercesc::Attributes &a, const char *name) const |
Converts an attribute to an StringList. More... | |
bool | optionalAttributeAsString_ (String &value, const xercesc::Attributes &a, const char *name) const |
Assigns the attribute content to the String value if the attribute is present. More... | |
bool | optionalAttributeAsInt_ (Int &value, const xercesc::Attributes &a, const char *name) const |
Assigns the attribute content to the Int value if the attribute is present. More... | |
bool | optionalAttributeAsUInt_ (UInt &value, const xercesc::Attributes &a, const char *name) const |
Assigns the attribute content to the UInt value if the attribute is present. More... | |
bool | optionalAttributeAsDouble_ (double &value, const xercesc::Attributes &a, const char *name) const |
Assigns the attribute content to the double value if the attribute is present. More... | |
bool | optionalAttributeAsDoubleList_ (DoubleList &value, const xercesc::Attributes &a, const char *name) const |
Assigns the attribute content to the DoubleList value if the attribute is present. More... | |
bool | optionalAttributeAsStringList_ (StringList &value, const xercesc::Attributes &a, const char *name) const |
Assigns the attribute content to the StringList value if the attribute is present. More... | |
bool | optionalAttributeAsIntList_ (IntList &value, const xercesc::Attributes &a, const char *name) const |
Assigns the attribute content to the IntList value if the attribute is present. More... | |
String | attributeAsString_ (const xercesc::Attributes &a, const XMLCh *name) const |
Converts an attribute to a String. More... | |
Int | attributeAsInt_ (const xercesc::Attributes &a, const XMLCh *name) const |
Converts an attribute to a Int. More... | |
double | attributeAsDouble_ (const xercesc::Attributes &a, const XMLCh *name) const |
Converts an attribute to a double. More... | |
DoubleList | attributeAsDoubleList_ (const xercesc::Attributes &a, const XMLCh *name) const |
Converts an attribute to a DoubleList. More... | |
IntList | attributeAsIntList_ (const xercesc::Attributes &a, const XMLCh *name) const |
Converts an attribute to a IntList. More... | |
StringList | attributeAsStringList_ (const xercesc::Attributes &a, const XMLCh *name) const |
Converts an attribute to a StringList. More... | |
bool | optionalAttributeAsString_ (String &value, const xercesc::Attributes &a, const XMLCh *name) const |
Assigns the attribute content to the String value if the attribute is present. More... | |
bool | optionalAttributeAsInt_ (Int &value, const xercesc::Attributes &a, const XMLCh *name) const |
Assigns the attribute content to the Int value if the attribute is present. More... | |
bool | optionalAttributeAsUInt_ (UInt &value, const xercesc::Attributes &a, const XMLCh *name) const |
Assigns the attribute content to the UInt value if the attribute is present. More... | |
bool | optionalAttributeAsDouble_ (double &value, const xercesc::Attributes &a, const XMLCh *name) const |
Assigns the attribute content to the double value if the attribute is present. More... | |
bool | optionalAttributeAsDoubleList_ (DoubleList &value, const xercesc::Attributes &a, const XMLCh *name) const |
Assigns the attribute content to the DoubleList value if the attribute is present. More... | |
bool | optionalAttributeAsIntList_ (IntList &value, const xercesc::Attributes &a, const XMLCh *name) const |
Assigns the attribute content to the IntList value if the attribute is present. More... | |
bool | optionalAttributeAsStringList_ (StringList &value, const xercesc::Attributes &a, const XMLCh *name) const |
Assigns the attribute content to the StringList value if the attribute is present. More... | |
SignedSize | cvStringToEnum_ (const Size section, const String &term, const char *message, const SignedSize result_on_error=0) |
Protected Attributes | |
MapType * | exp_ { nullptr } |
map pointer for reading More... | |
const MapType * | cexp_ { nullptr } |
map pointer for writing More... | |
PeakFileOptions | options_ |
Options that can be set for loading/storing. More... | |
const ProgressLogger & | logger_ |
Progress logger. More... | |
Interfaces::IMSDataConsumer * | consumer_ { nullptr } |
Consumer class to work on spectra. More... | |
UInt | scan_count_ { 0 } |
Counting spectra and chromatograms. More... | |
UInt | chromatogram_count_ { 0 } |
Int | scan_count_total_ { -1 } |
Int | chrom_count_total_ { -1 } |
ControlledVocabulary | cv_ |
Controlled vocabulary (psi-ms from OpenMS/share/OpenMS/CV/psi-ms.obo) More... | |
CVMappings | mapping_ |
UInt | selected_ion_count_ { 0 } |
Count of selected ions. More... | |
temporary data structures to hold parsed data | |
SpectrumType | spec_ |
The current spectrum. More... | |
ChromatogramType | chromatogram_ |
The current chromatogram. More... | |
std::vector< BinaryData > | bin_data_ |
The spectrum data (or chromatogram data) More... | |
Size | default_array_length_ |
The default number of peaks in the current spectrum. More... | |
bool | in_spectrum_list_ { false } |
Flag that indicates that we're inside a spectrum (in contrast to a chromatogram) More... | |
bool | skip_spectrum_ { false } |
Flag that indicates whether this spectrum should be skipped (e.g. due to options) More... | |
bool | skip_chromatogram_ { false } |
Flag that indicates whether this chromatogram should be skipped (e.g. due to options) More... | |
bool | rt_set_ { false } |
Remember whether the RT of the spectrum was set or not. More... | |
String | current_id_ |
Id of the current list. Used for referencing param group, source file, sample, software, ... More... | |
Map< String, std::vector< SemanticValidator::CVTerm > > | ref_param_ |
The referencing param groups: id => array (accession, value) More... | |
Map< String, SourceFile > | source_files_ |
The source files: id => SourceFile. More... | |
Map< String, Sample > | samples_ |
The sample list: id => Sample. More... | |
Map< String, Software > | software_ |
The software list: id => Software. More... | |
Map< String, Instrument > | instruments_ |
The data processing list: id => Instrument. More... | |
Map< String, std::vector< DataProcessingPtr > > | processing_ |
The data processing list: id => Instrument. More... | |
String | default_processing_ |
id of the default data processing (used when no processing is defined) More... | |
std::vector< SpectrumData > | spectrum_data_ |
Vector of spectrum data stored for later parallel processing. More... | |
std::vector< ChromatogramData > | chromatogram_data_ |
Vector of chromatogram data stored for later parallel processing. More... | |
temporary data structures to hold written data | |
std::vector< std::pair< std::string, long > > | spectra_offsets_ |
std::vector< std::pair< std::string, long > > | chromatograms_offsets_ |
![]() | |
String | error_message_ |
Error message of the last error. More... | |
String | file_ |
File name. More... | |
String | version_ |
Schema version. More... | |
StringManager | sm_ |
Helper class for string conversion. More... | |
std::vector< String > | open_tags_ |
Stack of open XML tags. More... | |
LOADDETAIL | load_detail_ |
parse only until total number of scans and chroms have been determined from attributes More... | |
std::vector< std::vector< String > > | cv_terms_ |
Array of CV term lists (one sublist denotes one term and it's children) More... | |
Additional Inherited Members | |
![]() | |
enum | ActionMode { LOAD, STORE } |
Action to set the current mode (for error messages) More... | |
enum | LOADDETAIL { LD_ALLDATA, LD_RAWCOUNTS, LD_COUNTS_WITHOPTIONS } |
![]() | |
static String | writeXMLEscape (const String &to_escape) |
Escapes a string and returns the escaped string. More... | |
|
protected |
|
protected |
Chromatogram peak type.
|
protected |
Spectrum type.
|
protected |
Peak type.
|
protected |
Spectrum type.
MzMLHandler | ( | MapType & | exp, |
const String & | filename, | ||
const String & | version, | ||
const ProgressLogger & | logger | ||
) |
Constructor for a read-only handler.
MzMLHandler | ( | const MapType & | exp, |
const String & | filename, | ||
const String & | version, | ||
const ProgressLogger & | logger | ||
) |
Constructor for a write-only handler.
|
override |
Destructor.
|
protected |
delegated constructor for the two public versions
|
protected |
|
override |
|
override |
|
protected |
Fills the current chromatogram with data points and meta data.
|
protected |
Looks up a child CV term of parent_accession
with the name name
. If no such term is found, an empty term is returned.
Get the spectra and chromatogram counts of a file.
|
overridevirtual |
handler which support partial loading, implement this method
Reimplemented from XMLHandler.
PeakFileOptions& getOptions | ( | ) |
Get the peak file options.
|
protected |
Handles CV terms.
|
protected |
Handles user terms.
|
protected |
Populate all chromatograms on the stack with data from input.
Will populate all chromatograms on the current work stack with data (using multiple threads if available) and append them to the result.
|
protected |
Fill a single chromatogram with data from input.
|
protected |
Populate all spectra on the stack with data from input.
Will populate all spectra on the current work stack with data (using multiple threads if available) and append them to the result.
|
protected |
Fill a single spectrum with data from input.
Speed: this function takes about 50 % of total load time with a single thread and parallelizes linearly up to at least 10 threads.
|
overridevirtual |
handler which support partial loading, implement this method
Reimplemented from XMLHandler.
void setMSDataConsumer | ( | Interfaces::IMSDataConsumer * | consumer | ) |
Set the IMSDataConsumer consumer which will consume the read data.
void setOptions | ( | const PeakFileOptions & | opt | ) |
Set the peak file options.
Referenced by IndexedMzMLFileLoader::store().
|
override |
|
protected |
Helper method to validate if the given CV is allowed in the current location (path)
|
protected |
|
protected |
|
protected |
|
protected |
Helper method to write an CV based on a meta value.
|
protected |
Helper method that writes a data processing list.
|
protected |
|
protected |
Helper method that write precursor information from spectra and chromatograms.
|
protected |
Helper method that write precursor information from spectra and chromatograms.
|
protected |
Helper method that writes a software.
|
protected |
Helper method that writes a source file.
|
protected |
|
overridevirtual |
Writes the contents to a stream.
Reimplemented from XMLHandler.
|
protected |
Writes user terms.
|
protected |
The spectrum data (or chromatogram data)
|
protected |
map pointer for writing
|
protected |
|
protected |
The current chromatogram.
|
protected |
|
protected |
Vector of chromatogram data stored for later parallel processing.
|
protected |
|
protected |
Consumer class to work on spectra.
|
protected |
Id of the current list. Used for referencing param group, source file, sample, software, ...
|
protected |
Controlled vocabulary (psi-ms from OpenMS/share/OpenMS/CV/psi-ms.obo)
|
protected |
The default number of peaks in the current spectrum.
|
protected |
id of the default data processing (used when no processing is defined)
|
protected |
map pointer for reading
|
protected |
Flag that indicates that we're inside a spectrum (in contrast to a chromatogram)
|
protected |
The data processing list: id => Instrument.
|
protected |
Progress logger.
|
protected |
|
protected |
Options that can be set for loading/storing.
|
protected |
The data processing list: id => Instrument.
|
protected |
The referencing param groups: id => array (accession, value)
|
protected |
Remember whether the RT of the spectrum was set or not.
|
protected |
Counting spectra and chromatograms.
|
protected |
|
protected |
Count of selected ions.
|
protected |
Flag that indicates whether this chromatogram should be skipped (e.g. due to options)
|
protected |
Flag that indicates whether this spectrum should be skipped (e.g. due to options)
|
protected |
The source files: id => SourceFile.
|
protected |
The current spectrum.
|
protected |
|
protected |
Vector of spectrum data stored for later parallel processing.