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
23
// --------------------------------------------------------------------------
24
// $Maintainer: Andreas Bertsch $
25
// $Authors: Andreas Bertsch $
26
// --------------------------------------------------------------------------
28
#ifndef OPENMS_FORMAT_OMSSAXMLFILE_H
29
#define OPENMS_FORMAT_OMSSAXMLFILE_H
31
#include <OpenMS/FORMAT/HANDLERS/XMLHandler.h>
32
#include <OpenMS/FORMAT/XMLFile.h>
33
#include <OpenMS/METADATA/ProteinIdentification.h>
34
#include <OpenMS/METADATA/PeptideIdentification.h>
35
#include <OpenMS/DATASTRUCTURES/Map.h>
36
#include <OpenMS/CHEMISTRY/ResidueModification.h>
37
#include <OpenMS/CHEMISTRY/ModificationDefinitionsSet.h>
44
class ModificationsDB;
47
@brief Used to load OMSSAXML files
49
This class is used to load documents that implement
50
the schema of OMSSAXML files.
54
class OPENMS_DLLAPI OMSSAXMLFile
55
: protected Internal::XMLHandler,
56
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_;
140
} // namespace OpenMS
142
#endif // OPENMS_FORMAT_OMSSAXMLFILE_H