|
|
| 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...
|
|
|
|
void | endElement (const XMLCh *const, const XMLCh *const, const XMLCh *const qname) override |
| Docu in base class XMLHandler::endElement. More...
|
|
void | startElement (const XMLCh *const, const XMLCh *const, const XMLCh *const qname, const xercesc::Attributes &attributes) override |
| Docu in base class XMLHandler::startElelement. More...
|
|
void | characters (const XMLCh *const chars, const XMLSize_t length) override |
| Docu in base class XMLHandler::characters. More...
|
|
void | writeTo (std::ostream &os) override |
| Docu in base class XMLHandler::writeTo. More...
|
|
|
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...
|
|
void | getCounts (Size &spectra_counts, Size &chromatogram_counts) |
| Get the spectra and chromatogram counts of a file. More...
|
|
Public Member Functions inherited from XMLHandler |
| 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 (const xercesc::SAXParseException &exception) override |
|
void | error (const xercesc::SAXParseException &exception) override |
|
void | warning (const xercesc::SAXParseException &exception) override |
|
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 | checkUniqueIdentifiers_ (const std::vector< ProteinIdentification > &prot_ids) |
|
|
|
|
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 |
| Add extra data arrays to a spectrum. More...
|
|
void | populateSpectraWithData_ (std::vector< MzMLHandlerHelper::BinaryData > &input_data, Size &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 &length, const PeakFileOptions &peak_file_options, ChromatogramType &inp_chromatogram) |
| Fill a single chromatogram with data from input. More...
|
|
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, const String &unit_accession="") |
| Handles user terms. More...
|
|
Protected Member Functions inherited from XMLHandler |
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...
|
|
bool | equal_ (const XMLCh *a, const XMLCh *b) const |
| Returns if two Xerces strings are equal. More...
|
|
SignedSize | cvStringToEnum_ (const Size section, const String &term, const char *message, const SignedSize result_on_error=0) |
|
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...
|
|
|
|
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...
|
|
UInt | selected_ion_count_ { 0 } |
| Count of selected ions. 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...
|
|
|
These data structures are used to store binary offsets required by the indexedMzML format, specifically the start of each <spectrum> and <chromatogram> tag is stored and will then be stored at the end of the file.
|
std::vector< std::pair< std::string, Int64 > > | spectra_offsets_ |
| Stores binary offsets for each <spectrum> tag. More...
|
|
std::vector< std::pair< std::string, Int64 > > | chromatograms_offsets_ |
| Stores binary offsets for each <chromatogram> tag. More...
|
|
const ProgressLogger & | logger_ |
| Progress logger. More...
|
|
Interfaces::IMSDataConsumer * | consumer_ { nullptr } |
| Consumer class to work on spectra. More...
|
|
|
UInt | scan_count_ { 0 } |
| number of scans which pass the options-filter More...
|
|
UInt | chromatogram_count_ { 0 } |
| number of chromatograms which pass the options-filter More...
|
|
Int | scan_count_total_ { -1 } |
| total number of scans in mzML file (according to 'count' attribute) More...
|
|
Int | chrom_count_total_ { -1 } |
| total number of chromatograms in mzML file (according to 'count' attribute) More...
|
|
ControlledVocabulary | cv_ |
| Controlled vocabulary (psi-ms from OpenMS/share/OpenMS/CV/psi-ms.obo) More...
|
|
CVMappings | mapping_ |
|
Protected Attributes inherited from XMLHandler |
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...
|
|
|
|
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...
|
|
void | writeHeader_ (std::ostream &os, const MapType &exp, std::vector< std::vector< ConstDataProcessingPtr > > &dps, const Internal::MzMLValidator &validator) |
| Write out XML header including (everything up to spectrumList / chromatogramList. More...
|
|
void | writeSpectrum_ (std::ostream &os, const SpectrumType &spec, Size spec_idx, const Internal::MzMLValidator &validator, bool renew_native_ids, std::vector< std::vector< ConstDataProcessingPtr > > &dps) |
| Write out a single spectrum. More...
|
|
void | writeChromatogram_ (std::ostream &os, const ChromatogramType &chromatogram, Size chrom_idx, const Internal::MzMLValidator &validator) |
| Write out a single chromatogram. More...
|
|
template<typename ContainerT > |
void | writeContainerData_ (std::ostream &os, const PeakFileOptions &pf_options_, const ContainerT &container, String array_type) |
|
template<typename DataType > |
void | writeBinaryDataArray_ (std::ostream &os, const PeakFileOptions &options, std::vector< DataType > &data, bool is32bit, String array_type) |
| Write a single <binaryDataArray> element to the output. More...
|
|
void | writeBinaryFloatDataArray_ (std::ostream &os, const PeakFileOptions &pf_options_, const OpenMS::DataArrays::FloatDataArray &array, const Size spec_chrom_idx, const Size array_idx, bool isSpectrum, const Internal::MzMLValidator &validator) |
| Write a single <binaryDataArray> element for a float data array to the output. More...
|
|
void | writeUserParam_ (std::ostream &os, const MetaInfoInterface &meta, UInt indent, const String &path, const Internal::MzMLValidator &validator, const std::set< String > &exclude={}) const |
| Writes user terms. More...
|
|
void | writeSoftware_ (std::ostream &os, const String &id, const Software &software, const Internal::MzMLValidator &validator) |
| Helper method that writes a software. More...
|
|
void | writeSourceFile_ (std::ostream &os, const String &id, const SourceFile &software, const Internal::MzMLValidator &validator) |
| Helper method that writes a source file. More...
|
|
void | writeDataProcessing_ (std::ostream &os, const String &id, const std::vector< ConstDataProcessingPtr > &dps, const Internal::MzMLValidator &validator) |
| Helper method that writes a data processing list. More...
|
|
void | writePrecursor_ (std::ostream &os, const Precursor &precursor, const Internal::MzMLValidator &validator) |
| Helper method that write precursor information from spectra and chromatograms. More...
|
|
void | writeProduct_ (std::ostream &os, const Product &product, const 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...
|
|
ControlledVocabulary::CVTerm | getChildWithName_ (const String &parent_accession, const String &name) const |
| Helper method to look up a child CV term of parent_accession with the name name . If no such term is found, an empty term is returned. More...
|
|
Handler for mzML file format.
This class handles parsing and writing of the mzML file format. It supports reading data directly into memory or parsing on-the-fly using a consumer (see Setting a consumer). In read-mode, this class will parse an MzML XML file and append the input spectra to the provided MSExperiment object or to the provided Interfaces::IMSDataConsumer (needs to be provided separately through setMSDataConsumer()).
Functions constituting the XML reading/writing interface can be found under XML Handling functions, helper functions specifically used for writing out to XML are organized under Writing functions and helper functions used for reading in XML from disk are organized under Readingfunctions".
See the MzMLHandlerHelper for additional helper functions that are independent of state.
- Note
- Do not use this class directly. It is only needed in MzMLFile.
-
Only upon destruction of this class it can be guaranteed that all data has been appended to the appropriate consumer of the data. Do not try to access the data before that.
- Todo:
- replace hardcoded cv stuff with more flexible handling via obo r/w.