OpenMS
FeatureXMLHandler.h
Go to the documentation of this file.
1 // Copyright (c) 2002-present, The OpenMS Team -- EKU Tuebingen, ETH Zurich, and FU Berlin
2 // SPDX-License-Identifier: BSD-3-Clause
3 //
4 // --------------------------------------------------------------------------
5 // $Maintainer: Chris Bielow $
6 // $Authors: Marc Sturm, Chris Bielow, Clemens Groepl $
7 // --------------------------------------------------------------------------
8 
9 #pragma once
10 
12 #include <OpenMS/FORMAT/XMLFile.h>
19 
20 #include <iosfwd>
21 #include <map>
22 
23 namespace OpenMS
24 {
25  class Feature;
26  class FeatureMap;
27 
28  namespace Internal
29  {
30 
42  class OPENMS_DLLAPI FeatureXMLHandler :
43  public Internal::XMLHandler,
44  public ProgressLogger
45  {
46 
47 public:
48 
52  FeatureXMLHandler(FeatureMap& map, const String& filename);
53  FeatureXMLHandler(const FeatureMap& map, const String& filename);
55  ~FeatureXMLHandler() override;
57 
58 
60  void writeTo(std::ostream& os) override;
61 
64 
67 
70 
71  void setSizeOnly(const bool size_only)
72  {
73  size_only_ = size_only;
74  }
75 
76  Size getSize() const
77  {
78  return expected_size_;
79  }
80 
81 protected:
82 
83  // restore default state for next load/store operation
84  void resetMembers_();
85 
86  // Docu in base class
87  void endElement(const XMLCh* const /*uri*/, const XMLCh* const /*local_name*/, const XMLCh* const qname) override;
88 
89  // Docu in base class
90  void startElement(const XMLCh* const /*uri*/, const XMLCh* const /*local_name*/, const XMLCh* const qname, const xercesc::Attributes& attributes) override;
91 
92  // Docu in base class
93  void characters(const XMLCh* const chars, const XMLSize_t length) override;
94 
96  void writeFeature_(const String& filename, std::ostream& os, const Feature& feat, const String& identifier_prefix, UInt64 identifier, UInt indentation_level);
97 
99  void writePeptideIdentification_(const String& filename, std::ostream& os, const PeptideIdentification& id, const String& tag_name, UInt indentation_level);
100 
106  void updateCurrentFeature_(bool create);
107 
112 
125 
132 
135 
138 
141 
144 
154  std::map<String, String> proteinid_to_accession_;
156  std::map<String, Size> accession_to_id_;
158  std::map<String, String> identifier_id_;
160  std::map<String, String> id_identifier_;
163 
164  };
165 
166 } // namespace Internal
167 } // namespace OpenMS
168 
std::vector< PointType > PointArrayType
Definition: ConvexHull2D.h:50
Options for loading files containing features.
Definition: FeatureFileOptions.h:21
A container for features.
Definition: FeatureMap.h:80
An LC-MS feature.
Definition: Feature.h:46
This class provides Input/Output functionality for feature maps.
Definition: FeatureXMLHandler.h:45
Int disable_parsing_
Definition: FeatureXMLHandler.h:111
DPosition< 2 > hull_position_
Definition: FeatureXMLHandler.h:130
std::map< String, String > proteinid_to_accession_
Map from protein id to accession.
Definition: FeatureXMLHandler.h:154
ProteinIdentification::SearchParameters search_param_
Temporary search parameters file.
Definition: FeatureXMLHandler.h:162
MetaInfoInterface * last_meta_
Pointer to last read object as a MetaInfoInterface, or null.
Definition: FeatureXMLHandler.h:143
Param param_
Definition: FeatureXMLHandler.h:128
Size getSize() const
Definition: FeatureXMLHandler.h:76
void writeTo(std::ostream &os) override
Docu in base class XMLHandler::writeTo.
const FeatureFileOptions & getOptions() const
Non-mutable access to the options for loading/storing.
ProteinIdentification prot_id_
Temporary protein ProteinIdentification.
Definition: FeatureXMLHandler.h:146
FeatureXMLHandler(const FeatureMap &map, const String &filename)
Feature * current_feature_
points to the last open <feature> tag (possibly a subordinate feature)
Definition: FeatureXMLHandler.h:114
void setSizeOnly(const bool size_only)
Definition: FeatureXMLHandler.h:71
void updateCurrentFeature_(bool create)
update the pointer to the current feature
ProteinHit prot_hit_
Temporary protein hit.
Definition: FeatureXMLHandler.h:150
Int subordinate_feature_level_
level in Feature stack during parsing
Definition: FeatureXMLHandler.h:140
void writePeptideIdentification_(const String &filename, std::ostream &os, const PeptideIdentification &id, const String &tag_name, UInt indentation_level)
Writes a peptide identification to a stream (for assigned/unassigned peptide identifications)
PeptideHit pep_hit_
Temporary peptide hit.
Definition: FeatureXMLHandler.h:152
void startElement(const XMLCh *const, const XMLCh *const, const XMLCh *const qname, const xercesc::Attributes &attributes) override
std::map< String, String > identifier_id_
Map from identification run identifier to file xs:id (for linking peptide identifications to the corr...
Definition: FeatureXMLHandler.h:158
FeatureFileOptions options_
Options that can be set.
Definition: FeatureXMLHandler.h:120
PeptideIdentification pep_id_
Temporary peptide ProteinIdentification.
Definition: FeatureXMLHandler.h:148
UInt dim_
current dimension of the feature position, quality, or convex hull point
Definition: FeatureXMLHandler.h:134
std::map< String, String > id_identifier_
Map from file xs:id to identification run identifier (for linking peptide identifications to the corr...
Definition: FeatureXMLHandler.h:160
ConvexHull2D::PointArrayType current_chull_
Definition: FeatureXMLHandler.h:129
FeatureFileOptions & getOptions()
Mutable access to the options for loading/storing.
bool size_only_
only parse until "count" tag is reached (used in loadSize())
Definition: FeatureXMLHandler.h:122
~FeatureXMLHandler() override
Destructor.
void setOptions(const FeatureFileOptions &)
setter for options for loading/storing
void writeFeature_(const String &filename, std::ostream &os, const Feature &feat, const String &identifier_prefix, UInt64 identifier, UInt indentation_level)
Writes a feature to a stream.
void characters(const XMLCh *const chars, const XMLSize_t length) override
void endElement(const XMLCh *const, const XMLCh *const, const XMLCh *const qname) override
FeatureXMLHandler(FeatureMap &map, const String &filename)
Default constructor.
std::map< String, Size > accession_to_id_
Map from search identifier concatenated with protein accession to id.
Definition: FeatureXMLHandler.h:156
FeatureMap * map_
Feature map pointer for writing.
Definition: FeatureXMLHandler.h:116
const FeatureMap * cmap_
Feature map pointer for reading.
Definition: FeatureXMLHandler.h:118
bool in_description_
for downward compatibility, all tags in the old description must be ignored
Definition: FeatureXMLHandler.h:137
Size expected_size_
holds the putative size given in count
Definition: FeatureXMLHandler.h:124
Base class for XML handlers.
Definition: XMLHandler.h:302
Interface for classes that can store arbitrary meta information (Type-Name-Value tuples).
Definition: MetaInfoInterface.h:35
Management and storage of parameters / INI files.
Definition: Param.h:44
Representation of a peptide hit.
Definition: PeptideHit.h:31
Represents the peptide hits for a spectrum.
Definition: PeptideIdentification.h:39
Base class for all classes that want to report their progress.
Definition: ProgressLogger.h:27
Representation of a protein hit.
Definition: ProteinHit.h:34
Representation of a protein identification run.
Definition: ProteinIdentification.h:50
A more convenient string class.
Definition: String.h:34
int Int
Signed integer type.
Definition: Types.h:72
uint64_t UInt64
Unsigned integer type (64bit)
Definition: Types.h:47
unsigned int UInt
Unsigned integer type.
Definition: Types.h:64
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:97
Main OpenMS namespace.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
Search parameters of the DB search.
Definition: ProteinIdentification.h:247