~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: 2013-12-20 11:30:16 UTC
  • mfrom: (5.1.2 sid)
  • Revision ID: package-import@ubuntu.com-20131220113016-wre5g9bteeheq6he
Tags: 1.11.1-3
* remove version number from libbost development package names;
* ensure that AUTHORS is correctly shipped in all packages.

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