Home  · Classes  · Annotated Classes  · Modules  · Members  · Namespaces  · Related Pages
MzXMLHandler.h
Go to the documentation of this file.
1 // --------------------------------------------------------------------------
2 // OpenMS -- Open-Source Mass Spectrometry
3 // --------------------------------------------------------------------------
4 // Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
5 // ETH Zurich, and Freie Universitaet Berlin 2002-2017.
6 //
7 // This software is released under a three-clause BSD license:
8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright
11 // notice, this list of conditions and the following disclaimer in the
12 // documentation and/or other materials provided with the distribution.
13 // * Neither the name of any author or any participating institution
14 // may be used to endorse or promote products derived from this software
15 // without specific prior written permission.
16 // For a full list of authors, refer to the file AUTHORS.
17 // --------------------------------------------------------------------------
18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 // ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
22 // INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
27 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
28 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 //
30 // --------------------------------------------------------------------------
31 // $Maintainer: Timo Sachsenberg $
32 // $Authors: Marc Sturm, Chris Bielow $
33 // --------------------------------------------------------------------------
34 
35 #ifndef OPENMS_FORMAT_HANDLERS_MZXMLHANDLER_H
36 #define OPENMS_FORMAT_HANDLERS_MZXMLHANDLER_H
37 
40 #include <OpenMS/FORMAT/Base64.h>
46 
47 #include <stack>
48 
49 namespace OpenMS
50 {
51  class MetaInfoInterface;
52 
53  namespace Internal
54  {
55 
63  typedef PeakMap MapType;
64  typedef MSSpectrum SpectrumType;
65 
66  class OPENMS_DLLAPI MzXMLHandler :
67  public XMLHandler
68  {
69 public:
72  MzXMLHandler(MapType& exp, const String& filename, const String& version, ProgressLogger& logger);
74 
76  MzXMLHandler(const MapType& exp, const String& filename, const String& version, const ProgressLogger& logger);
77 
79  virtual ~MzXMLHandler() {}
81 
82  // Docu in base class
83  virtual void endElement(const XMLCh* const uri, const XMLCh* const local_name, const XMLCh* const qname);
84 
85  // Docu in base class
86  virtual void startElement(const XMLCh* const uri, const XMLCh* const local_name, const XMLCh* const qname, const xercesc::Attributes& attributes);
87 
88  // Docu in base class
89  virtual void characters(const XMLCh* const chars, const XMLSize_t length);
90 
92  void writeTo(std::ostream& os);
93 
95  void setOptions(const PeakFileOptions& options)
96  {
97  options_ = options;
98  }
99 
102  {
103  return scan_count_;
104  }
105 
108  {
109  consumer_ = consumer;
110  }
111 
112 protected:
113 
118 
120  MapType* exp_;
122  const MapType* cexp_;
123 
126 
131 
140  {
145  SpectrumType spectrum;
146  bool skip_data;
147  };
148 
150  std::vector< SpectrumData > spectrum_data_;
152 
155 
158 
161 
164 
167 
168 
170  inline std::ostream& writeAttributeIfExists_(std::ostream& os, const MetaInfoInterface& meta, const String& metakey, const String& attname);
171 
173  inline void writeUserParam_(std::ostream& os, const MetaInfoInterface& meta, int indent = 4, String tag = "nameValue");
174 
181  void doPopulateSpectraWithData_(SpectrumData & spectrum_data);
182 
189  void populateSpectraWithData_();
190 
192  std::vector< boost::shared_ptr< DataProcessing> > data_processing_;
193 
194 
195 private:
197  MzXMLHandler();
198 
200  void init_();
201 
202  // init all the static members, which is necessary because otherwise the undefined order will cause problems
203  void initStaticMembers_();
204 
205  static const XMLCh* s_value_;
206  static const XMLCh* s_count_;
207  static const XMLCh* s_type_;
208  static const XMLCh* s_name_;
209  static const XMLCh* s_version_;
210  static const XMLCh* s_filename_;
211  static const XMLCh* s_filetype_;
212  static const XMLCh* s_filesha1_;
213  static const XMLCh* s_completiontime_;
214  static const XMLCh* s_precision_;
215  static const XMLCh* s_byteorder_;
216  static const XMLCh* s_contentType_;
217  static const XMLCh* s_compressionType_;
218  static const XMLCh* s_precursorintensity_;
219  static const XMLCh* s_precursorcharge_;
220  static const XMLCh* s_windowwideness_;
221  static const XMLCh* s_mslevel_;
222  static const XMLCh* s_peakscount_;
223  static const XMLCh* s_polarity_;
224  static const XMLCh* s_scantype_;
225  static const XMLCh* s_filterline_;
226  static const XMLCh* s_retentiontime_;
227  static const XMLCh* s_startmz_;
228  static const XMLCh* s_endmz_;
229  static const XMLCh* s_first_;
230  static const XMLCh* s_last_;
231  static const XMLCh* s_phone_;
232  static const XMLCh* s_email_;
233  static const XMLCh* s_uri_;
234  static const XMLCh* s_num_;
235  static const XMLCh* s_intensitycutoff_;
236  static const XMLCh* s_centroided_;
237  static const XMLCh* s_deisotoped_;
238  static const XMLCh* s_chargedeconvoluted_;
239  };
240 
241  } // namespace Internal
242 
243 } // namespace OpenMS
244 
245 #endif
static const XMLCh * s_precursorintensity_
Definition: MzXMLHandler.h:218
static const XMLCh * s_uri_
Definition: MzXMLHandler.h:233
A more convenient string class.
Definition: String.h:57
Class to encode and decode Base64.
Definition: Base64.h:64
static const XMLCh * s_precision_
Definition: MzXMLHandler.h:214
static const XMLCh * s_peakscount_
Definition: MzXMLHandler.h:222
UInt spec_write_counter_
spectrum counter (spectra without peaks are not written)
Definition: MzXMLHandler.h:157
static const XMLCh * s_value_
Definition: MzXMLHandler.h:205
UInt peak_count_
Definition: MzXMLHandler.h:141
unsigned int UInt
Unsigned integer type.
Definition: Types.h:95
Definition: MzXMLHandler.h:66
Base class for XML handlers.
Definition: XMLHandler.h:110
std::vector< boost::shared_ptr< DataProcessing > > data_processing_
data processing auxiliary variable
Definition: MzXMLHandler.h:192
static const XMLCh * s_startmz_
Definition: MzXMLHandler.h:227
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:47
static const XMLCh * s_deisotoped_
Definition: MzXMLHandler.h:237
static const XMLCh * s_precursorcharge_
Definition: MzXMLHandler.h:219
static const XMLCh * s_retentiontime_
Definition: MzXMLHandler.h:226
const MapType * cexp_
map pointer for writing
Definition: MzXMLHandler.h:122
static const XMLCh * s_intensitycutoff_
Definition: MzXMLHandler.h:235
static const XMLCh * s_contentType_
Definition: MzXMLHandler.h:216
Interfaces::IMSDataConsumer * consumer_
Consumer class to work on spectra.
Definition: MzXMLHandler.h:160
static const XMLCh * s_chargedeconvoluted_
Definition: MzXMLHandler.h:238
static const XMLCh * s_completiontime_
Definition: MzXMLHandler.h:213
static const XMLCh * s_last_
Definition: MzXMLHandler.h:230
virtual ~MzXMLHandler()
Destructor.
Definition: MzXMLHandler.h:79
String precision_
Definition: MzXMLHandler.h:142
The representation of a 1D spectrum.
Definition: MSSpectrum.h:67
static const XMLCh * s_scantype_
Definition: MzXMLHandler.h:224
static const XMLCh * s_byteorder_
Definition: MzXMLHandler.h:215
static const XMLCh * s_polarity_
Definition: MzXMLHandler.h:223
static const XMLCh * s_first_
Definition: MzXMLHandler.h:229
UInt getScanCount()
Gets the scan count.
Definition: MzXMLHandler.h:101
MSExperiment PeakMap
Two-dimensional map of raw data points or peaks.
Definition: StandardTypes.h:59
PeakFileOptions options_
Options for loading and storing.
Definition: MzXMLHandler.h:125
A 1-dimensional raw data point or peak.
Definition: Peak1D.h:55
void setOptions(const PeakFileOptions &options)
Sets the options.
Definition: MzXMLHandler.h:95
static const XMLCh * s_filetype_
Definition: MzXMLHandler.h:211
static const XMLCh * s_filename_
Definition: MzXMLHandler.h:210
static const XMLCh * s_filterline_
Definition: MzXMLHandler.h:225
Int nesting_level_
Definition: MzXMLHandler.h:130
static const XMLCh * s_filesha1_
Definition: MzXMLHandler.h:212
static const XMLCh * s_email_
Definition: MzXMLHandler.h:232
Interface for classes that can store arbitrary meta information (Type-Name-Value tuples).
Definition: MetaInfoInterface.h:56
static const XMLCh * s_version_
Definition: MzXMLHandler.h:209
String compressionType_
Definition: MzXMLHandler.h:143
std::vector< SpectrumData > spectrum_data_
Vector of spectrum data stored for later parallel processing.
Definition: MzXMLHandler.h:150
void setMSDataConsumer(Interfaces::IMSDataConsumer *consumer)
Set the IMSDataConsumer consumer which will consume the read data.
Definition: MzXMLHandler.h:107
MapType::PeakType PeakType
Peak type.
Definition: MzXMLHandler.h:115
static const XMLCh * s_endmz_
Definition: MzXMLHandler.h:228
PeakMap MapType
XML handler for MzDataFile.
Definition: MzDataHandler.h:61
SpectrumType spectrum
Definition: MzXMLHandler.h:145
static const XMLCh * s_type_
Definition: MzXMLHandler.h:207
UInt scan_count_
Consumer class to work on spectra.
Definition: MzXMLHandler.h:163
static const XMLCh * s_compressionType_
Definition: MzXMLHandler.h:217
static const XMLCh * s_centroided_
Definition: MzXMLHandler.h:236
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
MSSpectrum SpectrumType
Spectrum type.
Definition: MzXMLHandler.h:117
String char_rest_
Definition: MzXMLHandler.h:144
bool skip_spectrum_
Flag that indicates whether this spectrum should be skipped (due to options)
Definition: MzXMLHandler.h:154
Data necessary to generate a single spectrum.
Definition: MzXMLHandler.h:139
Base64 decoder_
Definition: MzXMLHandler.h:129
static const XMLCh * s_mslevel_
Definition: MzXMLHandler.h:221
static const XMLCh * s_windowwideness_
Definition: MzXMLHandler.h:220
static const XMLCh * s_name_
Definition: MzXMLHandler.h:208
Options for loading files containing peak data.
Definition: PeakFileOptions.h:48
const ProgressLogger & logger_
Progress logging class.
Definition: MzXMLHandler.h:166
static const XMLCh * s_num_
Definition: MzXMLHandler.h:234
bool skip_data
Definition: MzXMLHandler.h:146
int Int
Signed integer type.
Definition: Types.h:103
MapType * exp_
map pointer for reading
Definition: MzXMLHandler.h:120
static const XMLCh * s_count_
Definition: MzXMLHandler.h:206
static const XMLCh * s_phone_
Definition: MzXMLHandler.h:231
MSSpectrum SpectrumType
Definition: MzDataHandler.h:62

OpenMS / TOPP release 2.3.0 Documentation generated on Tue Jan 9 2018 18:22:02 using doxygen 1.8.13