OpenMS
FeatureXMLHandler.h
Go to the documentation of this file.
1 // Copyright (c) 2002-2023, 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 
45  class OPENMS_DLLAPI FeatureXMLHandler :
46  public Internal::XMLHandler,
47  public ProgressLogger
48  {
49 
50 public:
51 
55  FeatureXMLHandler(FeatureMap& map, const String& filename);
56  FeatureXMLHandler(const FeatureMap& map, const String& filename);
58  ~FeatureXMLHandler() override;
60 
61 
63  void writeTo(std::ostream& os) override;
64 
67 
70 
73 
74  void setSizeOnly(const bool size_only)
75  {
76  size_only_ = size_only;
77  }
78 
79  Size getSize() const
80  {
81  return expected_size_;
82  }
83 
84 protected:
85 
86  // restore default state for next load/store operation
87  void resetMembers_();
88 
89  // Docu in base class
90  void endElement(const XMLCh* const /*uri*/, const XMLCh* const /*local_name*/, const XMLCh* const qname) override;
91 
92  // Docu in base class
93  void startElement(const XMLCh* const /*uri*/, const XMLCh* const /*local_name*/, const XMLCh* const qname, const xercesc::Attributes& attributes) override;
94 
95  // Docu in base class
96  void characters(const XMLCh* const chars, const XMLSize_t length) override;
97 
99  void writeFeature_(const String& filename, std::ostream& os, const Feature& feat, const String& identifier_prefix, UInt64 identifier, UInt indentation_level);
100 
102  void writePeptideIdentification_(const String& filename, std::ostream& os, const PeptideIdentification& id, const String& tag_name, UInt indentation_level);
103 
109  void updateCurrentFeature_(bool create);
110 
115 
128 
135 
138 
141 
144 
147 
157  std::map<String, String> proteinid_to_accession_;
159  std::map<String, Size> accession_to_id_;
161  std::map<String, String> identifier_id_;
163  std::map<String, String> id_identifier_;
166 
167  };
168 
169 } // namespace Internal
170 } // namespace OpenMS
171 
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:48
Int disable_parsing_
Definition: FeatureXMLHandler.h:114
DPosition< 2 > hull_position_
Definition: FeatureXMLHandler.h:133
std::map< String, String > proteinid_to_accession_
Map from protein id to accession.
Definition: FeatureXMLHandler.h:157
ProteinIdentification::SearchParameters search_param_
Temporary search parameters file.
Definition: FeatureXMLHandler.h:165
MetaInfoInterface * last_meta_
Pointer to last read object as a MetaInfoInterface, or null.
Definition: FeatureXMLHandler.h:146
Param param_
Definition: FeatureXMLHandler.h:131
Size getSize() const
Definition: FeatureXMLHandler.h:79
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:149
FeatureXMLHandler(const FeatureMap &map, const String &filename)
Feature * current_feature_
points to the last open <feature> tag (possibly a subordinate feature)
Definition: FeatureXMLHandler.h:117
void setSizeOnly(const bool size_only)
Definition: FeatureXMLHandler.h:74
void updateCurrentFeature_(bool create)
update the pointer to the current feature
ProteinHit prot_hit_
Temporary protein hit.
Definition: FeatureXMLHandler.h:153
Int subordinate_feature_level_
level in Feature stack during parsing
Definition: FeatureXMLHandler.h:143
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:155
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:161
FeatureFileOptions options_
Options that can be set.
Definition: FeatureXMLHandler.h:123
PeptideIdentification pep_id_
Temporary peptide ProteinIdentification.
Definition: FeatureXMLHandler.h:151
UInt dim_
current dimension of the feature position, quality, or convex hull point
Definition: FeatureXMLHandler.h:137
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:163
ConvexHull2D::PointArrayType current_chull_
Definition: FeatureXMLHandler.h:132
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:125
~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:159
FeatureMap * map_
Feature map pointer for writing.
Definition: FeatureXMLHandler.h:119
const FeatureMap * cmap_
Feature map pointer for reading.
Definition: FeatureXMLHandler.h:121
bool in_description_
for downward compatibility, all tags in the old description must be ignored
Definition: FeatureXMLHandler.h:140
Size expected_size_
holds the putative size given in count
Definition: FeatureXMLHandler.h:127
Base class for XML handlers.
Definition: XMLHandler.h:300
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
OPENMS_UINT64_TYPE UInt64
Unsigned integer type (64bit)
Definition: Types.h:51
int Int
Signed integer type.
Definition: Types.h:76
unsigned int UInt
Unsigned integer type.
Definition: Types.h:68
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:101
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:22
Search parameters of the DB search.
Definition: ProteinIdentification.h:247