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 <limits>
28
29#include <QString>
30
31#include "../exportinmportconfig.h"
32
33#include "../msrun/msrunid.h"
34
35
36namespace pappso
37{
38
40{
41 private:
42 MsRunIdCstSPtr mcsp_msRunId = nullptr;
43
44 // This is the native id string that is stored in the mzML file. Its structure
45 // is dependent on the vendor/format of the original data. In some cases, it
46 // is possible to ask libpwiz to extract from it the scan number of the
47 // spectrum. For water/mdsciex files, this is not possible. We thus need to
48 // rely on the index of the spectrum in the spectrum list for the ms run of
49 // interest. By combining the run id and the spectrum index, it is possible to
50 // unambiguously identify a mass spectrum from a given file.
51 QString m_nativeId;
52
53 // The index of the mass spectrum in the spectrum list of a given ms run is
54 // used when the scan number is not easily usable (see the native id comment
55 // above).
56 std::size_t m_spectrumIndex = std::numeric_limits<std::size_t>::max();
57
58 public:
60
61 MassSpectrumId(const MsRunIdCstSPtr &msrun_id);
62
63 MassSpectrumId(const MsRunIdCstSPtr &msrun_id, std::size_t spectrum_index);
64
65 MassSpectrumId(const MassSpectrumId &other);
67
68 MassSpectrumId &operator=(const MassSpectrumId &other);
69
70 void setMsRunId(MsRunIdCstSPtr other);
71 const MsRunIdCstSPtr &getMsRunIdCstSPtr() const;
72
73 void setNativeId(const QString &native_id);
74 const QString &getNativeId() const;
75
76 void setSpectrumIndex(std::size_t index);
77 std::size_t getSpectrumIndex() const;
78
79 bool operator==(const MassSpectrumId &other) const;
80
81 bool isValid() const;
82
83 QString toString() const;
84};
85
86
87} // namespace pappso
#define PMSPP_LIB_DECL
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition: aa.cpp:39
std::shared_ptr< const MsRunId > MsRunIdCstSPtr
Definition: msrunid.h:45
bool operator==(Aa const &l, Aa const &r)
Definition: aa.cpp:280