libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
qualifiedmassspectrum.h
Go to the documentation of this file.
1/*******************************************************************************
2 * Copyright (c) 2015 Olivier Langella <olivier.langella@u-psud.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 ******************************************************************************/
20
21#pragma once
22
23/////////////////////// StdLib includes
24#include <memory>
25
26
27/////////////////////// Qt includes
28
29
30/////////////////////// Local includes
33#include "massspectrum.h"
34#include "massspectrumid.h"
35
36
37namespace pappso
38{
39
40// Forward declaration.
42
43typedef std::shared_ptr<QualifiedMassSpectrum> QualifiedMassSpectrumSPtr;
44typedef std::shared_ptr<const QualifiedMassSpectrum> QualifiedMassSpectrumCstSPtr;
45
47{
48
49 IonMobOneOverK0, ///< 1/kO value
50 IonMobOneOverK0Begin, ///< 1/K0 range's begin value
51 IonMobOneOverK0End, ///< 1/K0 range's end value
52
56
57 IsolationWindowTargetMz, ///< Isolation m/z value isolation window target m/z (thomson)
58 IsolationWindowLowerOffset, ///< isolation window lower offset (thomson)
59 IsolationWindowUpperOffset, ///< isolation window upper offset (thomson)
60 // IsolationMzWidth, ///< m/z isolation window width (left + right)
61
62 CollisionEnergy, ///< Bruker's timsTOF collision energy
63 BrukerPrecursorIndex, ///< Bruker's timsTOF precursor index
64 TimsFrameScansCount, ///< Bruker's timsTOF frame's total ion mobility slots
65
66 TimsFrameMzIndexBegin, ///< Bruker's timsTOF mz index frame start range
67 TimsFrameMzIndexEnd, ///< Bruker's timsTOF mz index frame end range
68
69 ScanNumber, ///< Scan number: Ordinal number of the scan indicating its order
70 ///< of acquisition within a mass spectrometry acquisition run.
71 ///< MS_scan_number = 1003057,
73};
74
76{
77 double mz = 0;
78 int charge = 0;
79 double intensity = 0;
80
81 // Constructor
82 PrecursorIonData(double mz_value = 0, int charge_value = 0, double intensity_value = 0)
83 {
84 mz = mz_value;
85 charge = charge_value;
86 intensity = intensity_value;
87 };
88};
89
90
91//! Class representing a fully specified mass spectrum.
92/*!
93 * The member data that qualify the MassSpectrum \c msp_massSpectrum member
94 * allow to unambiguously characterize the mass spectrum.
95 * \sa MassSpectrum
96 */
98{
99 public:
102 QualifiedMassSpectrum(MassSpectrumSPtr mass_spectrum_SPtr);
105
107
108 /** @brief clone the mass spectrum contained in Qualified Mass Spectrum
109 */
111
114
115 void setMassSpectrumSPtr(MassSpectrumSPtr massSpectrum);
118
119 void setMassSpectrumId(const MassSpectrumId &iD);
120 const MassSpectrumId &getMassSpectrumId() const;
122
123 void setEmptyMassSpectrum(bool is_empty_mass_spectrum);
124 bool isEmptyMassSpectrum() const;
125
126 void setMsLevel(uint ms_level);
127 uint getMsLevel() const;
128
132
135
136 /** @brief get precursor mz
137 * @param ok pointer on boolean, false if precursor mz is not defined
138 * @return precursor mz
139 */
140 pappso_double getPrecursorMz(bool *ok = nullptr) const;
141
142 /** @brief get precursor mass given the charge stats and precursor mz
143 * @param ok pointer on boolean, false if precursor mz is not defined
144 * @return precursor mass (neutral mass without H+)
145 */
146 double getPrecursorMass(bool *ok_p = nullptr) const;
147
148 QString
149 getPrecursorDataMzValuesAsString(const std::vector<PrecursorIonData> &precursor_ion_data_vector,
150 const QString &separator = "\n") const;
151 QString getPrecursorDataMzValuesAsString(const QString &separator = "\n") const;
152 QString getMzSortedPrecursorDataMzValuesAsString(const QString &separator = "\n") const;
153
154 /** @brief get precursor charge
155 * @param ok pointer on boolean, false if precursor charge is not defined
156 * @return precursor charge
157 */
158 uint getPrecursorCharge(bool *ok = nullptr) const;
160 const std::vector<PrecursorIonData> &precursor_ion_data_vector,
161 const QString &separator = "\n") const;
162 QString getPrecursorDataChargeValuesAsString(const QString &separator = "\n") const;
163 QString getMzSortedPrecursorDataChargeValuesAsString(const QString &separator = "\n") const;
164
165
166 /** @brief get precursor intensity
167 * @param ok pointer on boolean, false if precursor intensity is not defined
168 * @return precursor intensity
169 */
170 pappso_double getPrecursorIntensity(bool *ok = nullptr) const;
171
172 void setPrecursorSpectrumIndex(std::size_t precursor_scan_num);
173 std::size_t getPrecursorSpectrumIndex() const;
174
175 void setPrecursorNativeId(const QString &native_id);
176 const QString &getPrecursorNativeId() const;
177
178 void appendPrecursorIonData(const PrecursorIonData &precursor_ion_data);
179 const std::vector<PrecursorIonData> &getPrecursorIonData() const;
180 std::vector<PrecursorIonData> &getPrecursorIonData();
181 std::vector<PrecursorIonData> getPrecursorIonDataSortedWithMz() const;
182
183 void setParameterValue(QualifiedMassSpectrumParameter parameter, const QVariant &value);
184 const QVariant getParameterValue(QualifiedMassSpectrumParameter parameter) const;
185
186 std::size_t size() const;
187
188 QString toString(bool with_data = false) const;
189
190 protected:
191 //! Shared pointer to the mass spectrum.
193
194 //! Id of the mass spectrum.
196
198
199 //! Mass spectrometry level of this mass spectrum.
200 unsigned int m_msLevel = 0;
201
202 //! Retention time (in seconds) at which this mass spectrum was acquired.
204
205 //! Drift time (in milliseconds) at which this mass spectrum was acquired.
207
208 //! Index of the spectrum of the precusor ion that was fragmented to yield
209 // this mass spectrum.
210 std::size_t m_precursorSpectrumIndex = std::numeric_limits<std::size_t>::max();
211
212 //! Native XML id of the spectrum relative to the mz data native file
214
215 //! vector of precursor ion data of the precursors that were fragmented to
216 //! yield this mass spectrum.
217 std::vector<PrecursorIonData> m_precursorIonData;
218
219 //! map containing any parameter value for this spectrum
220 std::map<QualifiedMassSpectrumParameter, QVariant> m_paramsMap;
221};
222
223
224} // namespace pappso
Class representing a fully specified mass spectrum.
uint getMsLevel() const
Get the mass spectrum level.
QualifiedMassSpectrum & operator=(const QualifiedMassSpectrum &other)
MassSpectrumCstSPtr getMassSpectrumCstSPtr() const
Get the MassSpectrumCstSPtr.
std::vector< PrecursorIonData > m_precursorIonData
vector of precursor ion data of the precursors that were fragmented to yield this mass spectrum.
std::vector< PrecursorIonData > getPrecursorIonDataSortedWithMz() const
void setPrecursorNativeId(const QString &native_id)
Set the scan native id of the precursor ion.
std::size_t m_precursorSpectrumIndex
Index of the spectrum of the precusor ion that was fragmented to yield.
pappso_double getDtInMilliSeconds() const
Get the drift time in milliseconds.
const std::vector< PrecursorIonData > & getPrecursorIonData() const
uint getPrecursorCharge(bool *ok=nullptr) const
get precursor charge
pappso_double getRtInMinutes() const
Get the retention time in minutes.
unsigned int m_msLevel
Mass spectrometry level of this mass spectrum.
void setDtInMilliSeconds(pappso_double rt)
Set the drift time in milliseconds.
const QString & getPrecursorNativeId() const
pappso_double m_rt
Retention time (in seconds) at which this mass spectrum was acquired.
pappso_double m_dt
Drift time (in milliseconds) at which this mass spectrum was acquired.
pappso_double getPrecursorIntensity(bool *ok=nullptr) const
get precursor intensity
double getPrecursorMass(bool *ok_p=nullptr) const
get precursor mass given the charge stats and precursor mz
QString toString(bool with_data=false) const
void appendPrecursorIonData(const PrecursorIonData &precursor_ion_data)
std::map< QualifiedMassSpectrumParameter, QVariant > m_paramsMap
map containing any parameter value for this spectrum
MassSpectrumSPtr msp_massSpectrum
Shared pointer to the mass spectrum.
const MassSpectrumId & getMassSpectrumId() const
Get the MassSpectrumId.
QString getPrecursorDataChargeValuesAsString(const std::vector< PrecursorIonData > &precursor_ion_data_vector, const QString &separator="\n") const
void setMassSpectrumId(const MassSpectrumId &iD)
Set the MassSpectrumId.
void setMsLevel(uint ms_level)
Set the mass spectrum level.
void setPrecursorSpectrumIndex(std::size_t precursor_scan_num)
Set the scan number of the precursor ion.
QString getPrecursorDataMzValuesAsString(const std::vector< PrecursorIonData > &precursor_ion_data_vector, const QString &separator="\n") const
QualifiedMassSpectrumCstSPtr makeQualifiedMassSpectrumCstSPtr() const
pappso_double getPrecursorMz(bool *ok=nullptr) const
get precursor mz
const QualifiedMassSpectrum & cloneMassSpectrumSPtr()
clone the mass spectrum contained in Qualified Mass Spectrum
QString getMzSortedPrecursorDataMzValuesAsString(const QString &separator="\n") const
MassSpectrumSPtr getMassSpectrumSPtr() const
Get the MassSpectrumSPtr.
QString getMzSortedPrecursorDataChargeValuesAsString(const QString &separator="\n") const
QString m_precursorNativeId
Native XML id of the spectrum relative to the mz data native file.
QualifiedMassSpectrumSPtr makeQualifiedMassSpectrumSPtr() const
MassSpectrumId m_massSpectrumId
Id of the mass spectrum.
void setParameterValue(QualifiedMassSpectrumParameter parameter, const QVariant &value)
QualifiedMassSpectrum()
Construct an uninitialized QualifiedMassSpectrum.
void setMassSpectrumSPtr(MassSpectrumSPtr massSpectrum)
Set the MassSpectrumSPtr.
std::size_t getPrecursorSpectrumIndex() const
Get the scan number of the precursor ion.
void setRtInSeconds(pappso_double rt)
Set the retention time in seconds.
pappso_double getRtInSeconds() const
Get the retention time in seconds.
void setEmptyMassSpectrum(bool is_empty_mass_spectrum)
const QVariant getParameterValue(QualifiedMassSpectrumParameter parameter) const
#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< QualifiedMassSpectrum > QualifiedMassSpectrumSPtr
double pappso_double
A type definition for doubles.
Definition types.h:60
std::shared_ptr< const QualifiedMassSpectrum > QualifiedMassSpectrumCstSPtr
std::shared_ptr< const MassSpectrum > MassSpectrumCstSPtr
@ IsolationWindowTargetMz
Isolation m/z value isolation window target m/z (thomson).
@ TimsFrameMzIndexBegin
Bruker's timsTOF mz index frame start range.
@ IsolationWindowUpperOffset
isolation window upper offset (thomson)
@ CollisionEnergy
Bruker's timsTOF collision energy.
@ TimsFrameScansCount
Bruker's timsTOF frame's total ion mobility slots.
@ TimsFrameMzIndexEnd
Bruker's timsTOF mz index frame end range.
@ IsolationWindowLowerOffset
isolation window lower offset (thomson)
@ BrukerPrecursorIndex
Bruker's timsTOF precursor index.
unsigned int uint
Definition types.h:67
std::shared_ptr< MassSpectrum > MassSpectrumSPtr
PrecursorIonData(double mz_value=0, int charge_value=0, double intensity_value=0)