~ubuntu-branches/ubuntu/wily/openms/wily

« back to all changes in this revision

Viewing changes to include/OpenMS/FORMAT/OMSSAXMLFile.h

  • Committer: Package Import Robot
  • Author(s): Filippo Rusconi
  • Date: 2012-11-12 15:58:12 UTC
  • Revision ID: package-import@ubuntu.com-20121112155812-vr15wtg9b50cuesg
Tags: upstream-1.9.0
ImportĀ upstreamĀ versionĀ 1.9.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// -*- mode: C++; tab-width: 2; -*-
 
2
// vi: set ts=2:
 
3
//
 
4
// --------------------------------------------------------------------------
 
5
//                   OpenMS Mass Spectrometry Framework
 
6
// --------------------------------------------------------------------------
 
7
//  Copyright (C) 2003-2011 -- Oliver Kohlbacher, Knut Reinert
 
8
//
 
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.
 
13
// 
 
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.
 
18
//
 
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
 
22
//
 
23
// --------------------------------------------------------------------------
 
24
// $Maintainer: Andreas Bertsch $
 
25
// $Authors: Andreas Bertsch $
 
26
// --------------------------------------------------------------------------
 
27
 
 
28
#ifndef OPENMS_FORMAT_OMSSAXMLFILE_H
 
29
#define OPENMS_FORMAT_OMSSAXMLFILE_H
 
30
 
 
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>
 
38
 
 
39
#include <vector>
 
40
 
 
41
namespace OpenMS 
 
42
{
 
43
        class String;
 
44
        class ModificationsDB;
 
45
        
 
46
  /**
 
47
    @brief Used to load OMSSAXML files
 
48
    
 
49
    This class is used to load documents that implement 
 
50
    the schema of OMSSAXML files.
 
51
 
 
52
        @ingroup FileIO
 
53
  */
 
54
  class OPENMS_DLLAPI OMSSAXMLFile 
 
55
                : protected Internal::XMLHandler, 
 
56
                        public Internal::XMLFile
 
57
  {
 
58
    public:
 
59
                                                
 
60
      /// Default constructor
 
61
      OMSSAXMLFile();
 
62
                        
 
63
                        /// Destructor
 
64
                        virtual ~OMSSAXMLFile();
 
65
                  /**
 
66
                    @brief loads data from a OMSSAXML file
 
67
                    
 
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
 
72
 
 
73
                    This class serves to read in a OMSSAXML file. The information can be 
 
74
                    retrieved via the load function.      
 
75
                        
 
76
                                @exception FileNotFound
 
77
                                @exception ParseError
 
78
                                
 
79
                        @ingroup FileIO
 
80
                  */
 
81
            void load(const String& filename, ProteinIdentification& protein_identification, std::vector<PeptideIdentification>& id_data, bool load_proteins = true);
 
82
 
 
83
                        /// sets the valid modifications
 
84
                        void setModificationDefinitionsSet(const ModificationDefinitionsSet& rhs);
 
85
 
 
86
                protected:
 
87
                        // Docu in base class
 
88
      void endElement(const XMLCh* const /*uri*/, const XMLCh* const /*local_name*/, const XMLCh* const qname);
 
89
                        
 
90
                        // Docu in base class
 
91
      void startElement(const XMLCh* const /*uri*/, const XMLCh* const /*local_name*/, const XMLCh* const qname, const xercesc::Attributes& attributes);
 
92
                
 
93
                        // Docu in base class
 
94
                void characters(const XMLCh* const chars, const XMLSize_t /*length*/);
 
95
 
 
96
                private:
 
97
 
 
98
                        OMSSAXMLFile(const OMSSAXMLFile& rhs);
 
99
 
 
100
                        OMSSAXMLFile& operator = (const OMSSAXMLFile& rhs);
 
101
        
 
102
                        /// reads the mapping file needed for modifications
 
103
                        void readMappingFile_();
 
104
                        
 
105
                        /// the identifications (storing the peptide hits)
 
106
      std::vector<PeptideIdentification>* peptide_identifications_;
 
107
 
 
108
      ProteinHit actual_protein_hit_;
 
109
 
 
110
      PeptideHit actual_peptide_hit_;
 
111
 
 
112
                        PeptideIdentification actual_peptide_id_;
 
113
 
 
114
                        ProteinIdentification actual_protein_id_;
 
115
 
 
116
                        String tag_;
 
117
 
 
118
                        /// site of the actual modification (simple position in the peptide)
 
119
                        UInt actual_mod_site_;
 
120
 
 
121
                        /// type of the modification
 
122
                        String actual_mod_type_;
 
123
 
 
124
                        /// modifications of the peptide defined by site and type
 
125
                        std::vector<std::pair<UInt, String> > modifications_;
 
126
 
 
127
                        /// should protein hits be read from the file?
 
128
                        bool load_proteins_;
 
129
 
 
130
                        /// modifications mapping file from OMSSA mod num to UniMod accession
 
131
                        Map<UInt, std::vector<ResidueModification> > mods_map_;
 
132
 
 
133
                        /// modification mapping reverse, from the modification to the mod_num
 
134
                        Map<String, UInt> mods_to_num_;
 
135
 
 
136
                        /// modification definitions set of the search, needed to annotate fixed modifications
 
137
                        ModificationDefinitionsSet mod_def_set_;
 
138
  };
 
139
 
 
140
} // namespace OpenMS
 
141
 
 
142
#endif // OPENMS_FORMAT_OMSSAXMLFILE_H