1
// -*- mode: C++; tab-width: 2; -*-
4
// --------------------------------------------------------------------------
5
// OpenMS Mass Spectrometry Framework
6
// --------------------------------------------------------------------------
7
// Copyright (C) 2003-2011 -- Oliver Kohlbacher, Knut Reinert
9
// This library is free software; you can redistribute it and/or
10
// modify it under the terms of the GNU Lesser General Public
11
// License as published by the Free Software Foundation; either
12
// version 2.1 of the License, or (at your option) any later version.
14
// This library is distributed in the hope that it will be useful,
15
// but WITHOUT ANY WARRANTY; without even the implied warranty of
16
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
// Lesser General Public License for more details.
19
// You should have received a copy of the GNU Lesser General Public
20
// License along with this library; if not, write to the Free Software
21
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
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-2013.
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.
23
30
// --------------------------------------------------------------------------
24
31
// $Maintainer: Andreas Bertsch $
44
class ModificationsDB;
51
class ModificationsDB;
47
54
@brief Used to load OMSSAXML files
49
This class is used to load documents that implement
56
This class is used to load documents that implement
50
57
the schema of OMSSAXML files.
54
class OPENMS_DLLAPI OMSSAXMLFile
55
: protected Internal::XMLHandler,
56
public Internal::XMLFile
61
class OPENMS_DLLAPI OMSSAXMLFile :
62
protected Internal::XMLHandler,
63
public Internal::XMLFile
60
/// Default constructor
64
virtual ~OMSSAXMLFile();
66
@brief loads data from a OMSSAXML file
68
@param filename the file to be loaded
69
@param protein_identification protein identifications belonging to the whole experiment
70
@param id_data the identifications with m/z and RT
71
@param load_proteins if this flag is set to false, the protein identifications are not loaded
73
This class serves to read in a OMSSAXML file. The information can be
74
retrieved via the load function.
76
@exception FileNotFound
81
void load(const String& filename, ProteinIdentification& protein_identification, std::vector<PeptideIdentification>& id_data, bool load_proteins = true);
83
/// sets the valid modifications
84
void setModificationDefinitionsSet(const ModificationDefinitionsSet& rhs);
88
void endElement(const XMLCh* const /*uri*/, const XMLCh* const /*local_name*/, const XMLCh* const qname);
91
void startElement(const XMLCh* const /*uri*/, const XMLCh* const /*local_name*/, const XMLCh* const qname, const xercesc::Attributes& attributes);
94
void characters(const XMLCh* const chars, const XMLSize_t /*length*/);
98
OMSSAXMLFile(const OMSSAXMLFile& rhs);
100
OMSSAXMLFile& operator = (const OMSSAXMLFile& rhs);
102
/// reads the mapping file needed for modifications
103
void readMappingFile_();
105
/// the identifications (storing the peptide hits)
106
std::vector<PeptideIdentification>* peptide_identifications_;
108
ProteinHit actual_protein_hit_;
110
PeptideHit actual_peptide_hit_;
112
PeptideIdentification actual_peptide_id_;
114
ProteinIdentification actual_protein_id_;
118
/// site of the actual modification (simple position in the peptide)
119
UInt actual_mod_site_;
121
/// type of the modification
122
String actual_mod_type_;
124
/// modifications of the peptide defined by site and type
125
std::vector<std::pair<UInt, String> > modifications_;
127
/// should protein hits be read from the file?
130
/// modifications mapping file from OMSSA mod num to UniMod accession
131
Map<UInt, std::vector<ResidueModification> > mods_map_;
133
/// modification mapping reverse, from the modification to the mod_num
134
Map<String, UInt> mods_to_num_;
136
/// modification definitions set of the search, needed to annotate fixed modifications
137
ModificationDefinitionsSet mod_def_set_;
67
/// Default constructor
71
virtual ~OMSSAXMLFile();
73
@brief loads data from a OMSSAXML file
75
@param filename the file to be loaded
76
@param protein_identification protein identifications belonging to the whole experiment
77
@param id_data the identifications with m/z and RT
78
@param load_proteins if this flag is set to false, the protein identifications are not loaded
80
This class serves to read in a OMSSAXML file. The information can be
81
retrieved via the load function.
83
@exception FileNotFound
88
void load(const String & filename, ProteinIdentification & protein_identification, std::vector<PeptideIdentification> & id_data, bool load_proteins = true);
90
/// sets the valid modifications
91
void setModificationDefinitionsSet(const ModificationDefinitionsSet & rhs);
95
void endElement(const XMLCh * const /*uri*/, const XMLCh * const /*local_name*/, const XMLCh * const qname);
98
void startElement(const XMLCh * const /*uri*/, const XMLCh * const /*local_name*/, const XMLCh * const qname, const xercesc::Attributes & attributes);
100
// Docu in base class
101
void characters(const XMLCh * const chars, const XMLSize_t /*length*/);
105
OMSSAXMLFile(const OMSSAXMLFile & rhs);
107
OMSSAXMLFile & operator=(const OMSSAXMLFile & rhs);
109
/// reads the mapping file needed for modifications
110
void readMappingFile_();
112
/// the identifications (storing the peptide hits)
113
std::vector<PeptideIdentification> * peptide_identifications_;
115
ProteinHit actual_protein_hit_;
117
PeptideHit actual_peptide_hit_;
119
PeptideIdentification actual_peptide_id_;
121
ProteinIdentification actual_protein_id_;
125
/// site of the actual modification (simple position in the peptide)
126
UInt actual_mod_site_;
128
/// type of the modification
129
String actual_mod_type_;
131
/// modifications of the peptide defined by site and type
132
std::vector<std::pair<UInt, String> > modifications_;
134
/// should protein hits be read from the file?
137
/// modifications mapping file from OMSSA mod num to UniMod accession
138
Map<UInt, std::vector<ResidueModification> > mods_map_;
140
/// modification mapping reverse, from the modification to the mod_num
141
Map<String, UInt> mods_to_num_;
143
/// modification definitions set of the search, needed to annotate fixed modifications
144
ModificationDefinitionsSet mod_def_set_;
140
147
} // namespace OpenMS
142
149
#endif // OPENMS_FORMAT_OMSSAXMLFILE_H