libpappsomspp
Library for mass spectrometry
massspectrumid.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright (c) 2015 Olivier Langella <Olivier.Langella@moulon.inra.fr>.
3  *
4  * This file is part of the PAPPSOms++ library.
5  *
6  * PAPPSOms++ is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * PAPPSOms++ is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with PAPPSOms++. If not, see <http://www.gnu.org/licenses/>.
18  *
19  * Contributors:
20  * Olivier Langella <Olivier.Langella@moulon.inra.fr> - initial API and
21  *implementation
22  ******************************************************************************/
23 
24 
25 #pragma once
26 
27 #include <QString>
28 
29 #include "../exportinmportconfig.h"
30 
31 #include "../msrun/msrunid.h"
32 
33 
34 namespace pappso
35 {
36 
37 class PMSPP_LIB_DECL MassSpectrumId
38 {
39  private:
40  MsRunIdCstSPtr mcsp_msRunId = nullptr;
41 
42  // This is the native id string that is stored in the mzML file. Its structure
43  // is dependent on the vendor/format of the original data. In some cases, it
44  // is possible to ask libpwiz to extract from it the scan number of the
45  // spectrum. For water/mdsciex files, this is not possible. We thus need to
46  // rely on the index of the spectrum in the spectrum list for the ms run of
47  // interest. By combining the run id and the spectrum index, it is possible to
48  // unambiguously identify a mass spectrum from a given file.
49  QString m_nativeId;
50 
51  // The index of the mass spectrum in the spectrum list of a given ms run is
52  // used when the scan number is not easily usable (see the native id comment
53  // above).
54  std::size_t m_spectrumIndex = std::numeric_limits<std::size_t>::max();
55 
56  public:
57  MassSpectrumId();
58 
59  MassSpectrumId(const MsRunIdCstSPtr &msrun_id);
60 
61  MassSpectrumId(const MsRunIdCstSPtr &msrun_id, std::size_t spectrum_index);
62 
63  MassSpectrumId(const MassSpectrumId &other);
64  ~MassSpectrumId();
65 
66  MassSpectrumId &operator=(const MassSpectrumId &other);
67 
68  void setMsRunId(MsRunIdCstSPtr other);
69  const MsRunIdCstSPtr &getMsRunIdCstSPtr() const;
70 
71  void setNativeId(const QString &native_id);
72  const QString &getNativeId() const;
73 
74  void setSpectrumIndex(std::size_t index);
75  std::size_t getSpectrumIndex() const;
76 
77  bool operator==(const MassSpectrumId &other) const;
78 
79  bool isValid() const;
80 
81  QString toString() const;
82 };
83 
84 
85 } // namespace pappso
PMSPP_LIB_DECL
#define PMSPP_LIB_DECL
Definition: exportinmportconfig.h:14
pappso
tries to keep as much as possible monoisotopes, removing any possible C13 peaks
Definition: aa.cpp:39
pappso::MsRunIdCstSPtr
std::shared_ptr< const MsRunId > MsRunIdCstSPtr
Definition: msrunid.h:65
pappso::operator==
bool operator==(Aa const &l, Aa const &r)
Definition: aa.cpp:300
pappso::MassSpectrumId
Definition: massspectrumid.h:59