35 #ifndef OPENMS_FORMAT_HANDLERS_MZMLHANDLER_H 36 #define OPENMS_FORMAT_HANDLERS_MZMLHANDLER_H 63 #include <boost/shared_ptr.hpp> 89 class ControlledVocabulary;
135 virtual void endElement(
const XMLCh*
const ,
const XMLCh*
const ,
const XMLCh*
const qname);
138 virtual void startElement(
const XMLCh*
const ,
const XMLCh*
const ,
const XMLCh*
const qname,
const xercesc::Attributes& attributes);
141 virtual void characters(
const XMLCh*
const chars,
const XMLSize_t length);
144 virtual void writeTo(std::ostream& os);
163 spectrum_data_.reserve(options_.getMaxDataPoolSize());
164 chromatogram_data_.reserve(options_.getMaxDataPoolSize());
178 spectra_counts = scan_count;
179 chromatogram_counts = chromatogram_count;
185 consumer_ = consumer;
201 void writeSpectrum_(std::ostream& os,
const SpectrumType& spec,
Size s,
203 std::vector<std::vector< ConstDataProcessingPtr > >& dps);
207 template <
typename ContainerT>
208 void writeContainerData(std::ostream& os,
const PeakFileOptions& pf_options_,
const ContainerT& container,
String array_type);
216 void populateSpectraWithData();
224 void populateChromatogramsWithData();
226 void addSpectrumMetaData_(
const std::vector<MzMLHandlerHelper::BinaryData>& input_data,
227 const Size n, SpectrumType& spectrum)
const;
239 void populateSpectraWithData_(std::vector<MzMLHandlerHelper::BinaryData>& input_data,
241 SpectrumType& spectrum);
250 void populateChromatogramsWithData_(std::vector<MzMLHandlerHelper::BinaryData>& input_data,
252 ChromatogramType& inp_chromatogram);
254 template <
typename DataType>
255 void writeBinaryDataArray(std::ostream& os,
const PeakFileOptions& pf_options_, std::vector<DataType> data_to_encode,
bool is32bit,
String array_type);
257 void writeHeader_(std::ostream& os,
const MapType& exp, std::vector<std::vector< ConstDataProcessingPtr > >& dps,
Internal::MzMLValidator& validator);
372 void fillChromatogramData_();
375 void handleCVParam_(
const String& parent_parent_tag,
const String& parent_tag,
const String& accession,
const String& name,
const String& value,
const String& unit_accession =
"");
393 void writeDataProcessing_(std::ostream& os,
const String&
id,
const std::vector< ConstDataProcessingPtr >& dps,
Internal::MzMLValidator& validator);
PeakFileOptions options_
Options that can be set for loading/storing.
Definition: MzMLHandler.h:265
Representation of a CV term.
Definition: ControlledVocabulary.h:61
std::vector< SpectrumData > spectrum_data_
Vector of spectrum data stored for later parallel processing.
Definition: MzMLHandler.h:312
A more convenient string class.
Definition: String.h:57
Precursor meta information.
Definition: Precursor.h:58
Class to encode and decode Base64.
Definition: Base64.h:64
ControlledVocabulary cv_
Controlled vocabulary (psi-ms from OpenMS/share/OpenMS/CV/psi-ms.obo)
Definition: MzMLHandler.h:359
Product meta information.
Definition: Product.h:49
The representation of a chromatogram.
Definition: MSChromatogram.h:55
bool rt_set_
Definition: MzMLHandler.h:356
Interfaces::IMSDataConsumer * consumer_
Consumer class to work on spectra.
Definition: MzMLHandler.h:345
Data necessary to generate a single spectrum.
Definition: MzMLHandler.h:303
Semantically validates MzXML files.
Definition: MzMLValidator.h:49
unsigned int UInt
Unsigned integer type.
Definition: Types.h:95
Map< String, std::vector< DataProcessingPtr > > processing_
The data processing list: id => Instrument.
Definition: MzMLHandler.h:292
std::vector< BinaryData > data
Definition: MzMLHandler.h:323
Base class for XML handlers.
Definition: XMLHandler.h:110
Description of a file location, used to store the origin of (meta) data.
Definition: SourceFile.h:47
Binary data representation.
Definition: MzMLHandlerHelper.h:58
Description of the software used for processing.
Definition: Software.h:49
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:47
MSChromatogram ChromatogramType
Definition: MzDataHandler.h:63
std::vector< std::pair< std::string, long > > spectra_offsets
Definition: MzMLHandler.h:334
ChromatogramType chromatogram_
The current chromatogram.
Definition: MzMLHandler.h:272
Map< String, SourceFile > source_files_
The source files: id => SourceFile.
Definition: MzMLHandler.h:284
const ProgressLogger & logger_
Progress logger.
Definition: MzMLHandler.h:342
Map< String, Software > software_
The software list: id => Software.
Definition: MzMLHandler.h:288
Class to hold strings, numeric values, lists of strings and lists of numeric values.
Definition: DataValue.h:57
Representation of a controlled vocabulary.
Definition: ControlledVocabulary.h:55
Size default_array_length
Definition: MzMLHandler.h:306
Size default_array_length_
The default number of peaks in the current spectrum.
Definition: MzMLHandler.h:276
Data necessary to generate a single chromatogram.
Definition: MzMLHandler.h:321
SpectrumType spectrum
Definition: MzMLHandler.h:307
Definition: MzMLHandler.h:114
The representation of a 1D spectrum.
Definition: MSSpectrum.h:67
MapType * exp_
map pointer for reading
Definition: MzMLHandler.h:260
bool skip_spectrum_
Definition: MzMLHandler.h:353
Base64 decoder_
Decoder/Encoder for Base64-data in MzML.
Definition: MzMLHandler.h:339
Map< String, Sample > samples_
The sample list: id => Sample.
Definition: MzMLHandler.h:286
MapType::ChromatogramPeakType ChromatogramPeakType
Chromatogram peak type.
Definition: MzMLHandler.h:193
String default_processing_
id of the default data processing (used when no processing is defined)
Definition: MzMLHandler.h:294
PeakFileOptions & getOptions()
Get the peak file options.
Definition: MzMLHandler.h:168
MSExperiment PeakMap
Two-dimensional map of raw data points or peaks.
Definition: StandardTypes.h:59
CVMappings mapping_
Definition: MzMLHandler.h:360
A 1-dimensional raw data point or peak.
Definition: Peak1D.h:55
void setMSDataConsumer(Interfaces::IMSDataConsumer *consumer)
Set the IMSDataConsumer consumer which will consume the read data.
Definition: MzMLHandler.h:183
std::vector< BinaryData > data_
The spectrum data (or chromatogram data)
Definition: MzMLHandler.h:274
bool in_spectrum_list_
Flag that indicates that we're inside a spectrum (in contrast to a chromatogram)
Definition: MzMLHandler.h:278
void getCounts(Size &spectra_counts, Size &chromatogram_counts)
Get the spectra and chromatogram counts of a file.
Definition: MzMLHandler.h:176
std::vector< ChromatogramData > chromatogram_data_
Vector of chromatogram data stored for later parallel processing.
Definition: MzMLHandler.h:329
PeakMap MapType
XML handler for MzDataFile.
Definition: MzDataHandler.h:61
UInt scan_count
Counting spectra and chromatograms.
Definition: MzMLHandler.h:348
bool skip_chromatogram_
Flag that indicates whether this spectrum should be skipped (due to options)
Definition: MzMLHandler.h:352
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:128
The interface of a consumer of spectra and chromatograms.
Definition: IMSDataConsumer.h:68
Base class for all classes that want to report their progress.
Definition: ProgressLogger.h:55
UInt selected_ion_count_
Count of selected ions.
Definition: MzMLHandler.h:364
MapType::PeakType PeakType
Peak type.
Definition: MzMLHandler.h:191
void setOptions(const PeakFileOptions &opt)
Set the peak file options.
Definition: MzMLHandler.h:160
A 1-dimensional raw data point or peak for chromatograms.
Definition: ChromatogramPeak.h:55
std::vector< std::pair< std::string, long > > chromatograms_offsets
Definition: MzMLHandler.h:335
MzMLHandlerHelper::BinaryData BinaryData
Definition: MzMLHandler.h:199
Map< String, Instrument > instruments_
The data processing list: id => Instrument.
Definition: MzMLHandler.h:290
String current_id_
Id of the current list. Used for referencing param group, source file, sample, software, ...
Definition: MzMLHandler.h:280
std::vector< BinaryData > data
Definition: MzMLHandler.h:305
Representation of controlled vocabulary mapping rules (for PSI formats)
Definition: CVMappings.h:57
Options for loading files containing peak data.
Definition: PeakFileOptions.h:48
Map< String, std::vector< SemanticValidator::CVTerm > > ref_param_
The referencing param groups: id => array (accession, value)
Definition: MzMLHandler.h:282
MSSpectrum SpectrumType
Spectrum type.
Definition: MzMLHandler.h:195
bool skip_data
Definition: MzMLHandler.h:308
Map class based on the STL map (containing several convenience functions)
Definition: Map.h:51
const MapType * cexp_
map pointer for writing
Definition: MzMLHandler.h:262
MSChromatogram ChromatogramType
Spectrum type.
Definition: MzMLHandler.h:197
ChromatogramType chromatogram
Definition: MzMLHandler.h:325
UInt chromatogram_count
Definition: MzMLHandler.h:349
Size default_array_length
Definition: MzMLHandler.h:324
MSSpectrum SpectrumType
Definition: MzDataHandler.h:62