OpenMS
XQuestResultXMLFile.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-2023.
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: Eugen Netz $
32 // $Authors: Lukas Zimmermann, Eugen Netz $
33 // --------------------------------------------------------------------------
34 #pragma once
35 
36 #include <OpenMS/FORMAT/XMLFile.h>
41 
42 namespace OpenMS
43 {
44 
55  class OPENMS_DLLAPI XQuestResultXMLFile :
56  public Internal::XMLFile,
57  public ProgressLogger
58  {
59 public:
62 
69  void load(const String & filename,
70  std::vector< PeptideIdentification > & pep_ids,
71  std::vector< ProteinIdentification > & prot_ids
72  );
73 
79  void store(const String& filename,
80  const std::vector<ProteinIdentification>& poid,
81  const std::vector<PeptideIdentification>& peid) const;
82 
87  int getNumberOfHits() const;
88 
93  double getMinScore() const;
94 
99  double getMaxScore() const;
100 
110  static void writeXQuestXMLSpec(const String& out_file, const String& base_name,
111  const OPXLDataStructs::PreprocessedPairSpectra& preprocessed_pair_spectra,
112  const std::vector< std::pair<Size, Size> >& spectrum_pairs,
113  const std::vector< std::vector< OPXLDataStructs::CrossLinkSpectrumMatch > >& all_top_csms,
114  const PeakMap& spectra, const bool& test_mode = false);
115 
123  static void writeXQuestXMLSpec(const String& out_file, const String& base_name,
124  const std::vector< std::vector< OPXLDataStructs::CrossLinkSpectrumMatch > >& all_top_csms,
125  const PeakMap& spectra, const bool& test_mode = false);
126 
127 
128 
129 private:
130 
136  static String getxQuestBase64EncodedSpectrum_(const PeakSpectrum& spec, const String& header, const bool& test_mode = false);
137 
144  static void wrap_(const String& input, Size width, String& output);
145 
146  int n_hits_;
147  double min_score_;
148  double max_score_;
149  };
150 } // namespace OpenMS
Base class for loading/storing XML files that have a handler derived from XMLHandler.
Definition: XMLFile.h:49
In-Memory representation of a mass spectrometry run.
Definition: MSExperiment.h:72
The representation of a 1D spectrum.
Definition: MSSpectrum.h:70
Base class for all classes that want to report their progress.
Definition: ProgressLogger.h:53
A more convenient string class.
Definition: String.h:60
Used to load and store xQuest result files.
Definition: XQuestResultXMLFile.h:58
int n_hits_
Total number of hits within the result file.
Definition: XQuestResultXMLFile.h:146
double getMinScore() const
Returns minimum score among the hits in the file.
static void wrap_(const String &input, Size width, String &output)
A helper function, that takes one string containing one line and wraps it into several lines of a giv...
double max_score_
Maximum score encountered in file.
Definition: XQuestResultXMLFile.h:148
void load(const String &filename, std::vector< PeptideIdentification > &pep_ids, std::vector< ProteinIdentification > &prot_ids)
Load the content of the xquest.xml file into the provided data structures.
static String getxQuestBase64EncodedSpectrum_(const PeakSpectrum &spec, const String &header, const bool &test_mode=false)
Transforms a PeakSpectrum into a base64 encoded string, which is the format used in spec....
static void writeXQuestXMLSpec(const String &out_file, const String &base_name, const OPXLDataStructs::PreprocessedPairSpectra &preprocessed_pair_spectra, const std::vector< std::pair< Size, Size > > &spectrum_pairs, const std::vector< std::vector< OPXLDataStructs::CrossLinkSpectrumMatch > > &all_top_csms, const PeakMap &spectra, const bool &test_mode=false)
Writes spec.xml output containing matching peaks between heavy and light spectra after comparing and ...
double min_score_
Minimum score encountered in file.
Definition: XQuestResultXMLFile.h:147
void store(const String &filename, const std::vector< ProteinIdentification > &poid, const std::vector< PeptideIdentification > &peid) const
Stores the identifications in a xQuest XML file.
static void writeXQuestXMLSpec(const String &out_file, const String &base_name, const std::vector< std::vector< OPXLDataStructs::CrossLinkSpectrumMatch > > &all_top_csms, const PeakMap &spectra, const bool &test_mode=false)
Writes spec.xml output containing spectra for visualization. This version of the function is meant to...
int getNumberOfHits() const
Returns the total number of hits in the file.
double getMaxScore() const
Returns maximum score among the hits in the file.
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:127
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:48
The PreprocessedPairSpectra struct represents the result of comparing a light and a heavy labeled spe...
Definition: OPXLDataStructs.h:304