pappsomspp
Library for mass spectrometry
qualifiedmassspectrum.cpp
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 /////////////////////// StdLib includes
22 #include <math.h>
23 
24 
25 /////////////////////// Qt includes
26 #include <QDebug>
27 
28 
29 /////////////////////// Local includes
30 #include "qualifiedmassspectrum.h"
31 #include "../utils.h"
32 #include "../pappsoexception.h"
33 
34 
35 namespace pappso
36 {
37 
38 //! Construct an uninitialized QualifiedMassSpectrum.
40 {
41 }
42 
43 
44 //! Construct a QualifiedMassSpectrum using a MassSpectrumId;
45 QualifiedMassSpectrum::QualifiedMassSpectrum(const MassSpectrumId &id)
46  : m_massSpectrumId(id)
47 {
48 }
49 
50 
52  MassSpectrumSPtr mass_spectrum_SPtr)
53  : msp_massSpectrum{mass_spectrum_SPtr}
54 {
55 }
56 
57 
58 //! Construct a QualifiedMassSpectrum as a copy of \p other.
60  : msp_massSpectrum(other.msp_massSpectrum),
61  m_massSpectrumId(other.m_massSpectrumId),
62  m_isEmptyMassSpectrum(other.m_isEmptyMassSpectrum),
63  m_msLevel(other.m_msLevel),
64  m_rt(other.m_rt),
65  m_dt(other.m_dt),
66  m_precursorSpectrumIndex(other.m_precursorSpectrumIndex),
67  m_precursorNativeId(other.m_precursorNativeId),
68  m_precursorMz(other.m_precursorMz),
69  m_precursorCharge(other.m_precursorCharge),
70  m_precursorIntensity(other.m_precursorIntensity),
71  m_params(other.m_params)
72 {
73  // qDebug();
74 }
75 
76 //! Destruct this QualifiedMassSpectrum.
78 {
79  // qDebug() << __FILE__ << "@" << __LINE__ << __FUNCTION__ << " ()";
80 }
81 
82 
85 {
86  return std::make_shared<QualifiedMassSpectrum>(*this);
87 }
88 
89 
92 {
93  return std::make_shared<const QualifiedMassSpectrum>(*this);
94 }
95 
96 
97 //! Set the MassSpectrumId.
98 void
100 {
102 }
103 
104 
105 //! Get the MassSpectrumId.
106 const MassSpectrumId &
108 {
109  return m_massSpectrumId;
110 }
111 
112 
113 //! Set the MassSpectrumSPtr.
114 void
116 {
117  msp_massSpectrum = massSpectrum;
118 }
119 
120 
121 //! Get the MassSpectrumSPtr.
124 {
125  return msp_massSpectrum;
126 }
127 
128 
129 //! Get the MassSpectrumCstSPtr.
132 {
133  return msp_massSpectrum;
134 }
135 
136 
137 void
138 QualifiedMassSpectrum::setEmptyMassSpectrum(bool is_empty_mass_spectrum)
139 {
140  m_isEmptyMassSpectrum = is_empty_mass_spectrum;
141 }
142 
143 
144 bool
146 {
147  return m_isEmptyMassSpectrum;
148 }
149 
150 
151 //! Set the precursor charge.
152 void
153 QualifiedMassSpectrum::setPrecursorCharge(unsigned int precursor_charge)
154 {
155  m_precursorCharge = precursor_charge;
156 }
157 
158 
159 //! Get the precursor charge.
160 unsigned int
162 {
163  return m_precursorCharge;
164 }
165 
166 
167 //! Set the precursor m/z ratio.
168 void
170 {
171  m_precursorMz = precursor_mz;
172 }
173 
174 
175 //! Get the precursor m/z ratio.
178 {
179  return m_precursorMz;
180 }
181 
182 
183 //! Set the mass spectrum level.
184 void
185 QualifiedMassSpectrum::setMsLevel(unsigned int level)
186 {
187  m_msLevel = level;
188 }
189 
190 
191 //! Get the mass spectrum level.
192 unsigned int
194 {
195  return m_msLevel;
196 }
197 
198 
199 //! Set the retention time in seconds.
200 void
202 {
203  m_rt = rt_in_seconds;
204 }
205 
206 
207 //! Get the retention time in seconds.
210 {
211  return m_rt;
212 }
213 
214 
215 //! Get the retention time in minutes.
218 {
219  return m_rt / 60;
220 }
221 
222 
223 //! Set the drift time in milliseconds.
224 void
226 {
227  if(isinf(dt_in_milli_seconds))
228  m_dt = -1;
229  else
230  m_dt = dt_in_milli_seconds;
231 }
232 
233 
234 //! Get the drift time in milliseconds.
237 {
238  return m_dt;
239 }
240 
241 
242 //! Set the scan number of the precursor ion.
243 void
245  std::size_t precursor_spectrum_index)
246 {
247  m_precursorSpectrumIndex = precursor_spectrum_index;
248 }
249 
250 //! Get the scan number of the precursor ion.
251 std::size_t
253 {
255 }
256 
257 //! Set the scan native id of the precursor ion.
258 void
259 QualifiedMassSpectrum::setPrecursorNativeId(const QString &native_id)
260 {
261  m_precursorNativeId = native_id;
262 }
263 
264 const QString &
266 {
267  return m_precursorNativeId;
268 }
269 
270 //! Set the intensity of the precursor ion.
271 void
273 {
274  m_precursorIntensity = intensity;
275 }
276 
277 
278 //! Get the intensity of the precursor ion.
281 {
283 }
284 
285 
286 std::size_t
288 {
289  if(msp_massSpectrum == nullptr)
290  {
291  throw pappso::PappsoException(QObject::tr("msp_massSpectrum == nullptr"));
292  }
293  return msp_massSpectrum.get()->size();
294 }
295 
296 
297 QString
299 {
300  QString text;
301 
302  if(msp_massSpectrum != nullptr && msp_massSpectrum.get() != nullptr)
303  {
304  QString pointer_string =
305  QString("msp_massSpectrum.get(): %1 ")
306  .arg(Utils::pointerToString((void *)msp_massSpectrum.get()));
307 
308  text += pointer_string;
309  }
310  else
311  text += QString("msp_massSpectrum is nullptr ");
312 
313  // qDebug() << text;
314 
315  text +=
316  QString(
317  "; m_massSpectrumId : %1 \n"
318  "m_msLevel: %2 ; m_rt (min): %3 ; m_dt (ms): %4 ; prec. spec. "
319  "index: %5 ; prec. mz: %6 ; prec. z: %7 ; prec. int.: %8")
320  .arg(m_massSpectrumId.toString())
321  .arg(m_msLevel)
322  .arg(getRtInMinutes(), 0, 'f', 2)
323  .arg(m_dt, 0, 'f', 5)
324  .arg(m_precursorSpectrumIndex != std::numeric_limits<std::size_t>::max()
326  : -1)
327  .arg(m_precursorMz != std::numeric_limits<double>::max() ? m_precursorMz
328  : -1)
329  .arg(m_precursorCharge != std::numeric_limits<unsigned int>::max()
331  : -1)
332  .arg(m_precursorIntensity != std::numeric_limits<double>::max()
334  : -1);
335 
336  return text;
337 }
338 
339 
340 void
342  QualifiedMassSpectrumParameter parameter, const QVariant &value)
343 {
344 
345  auto ret = m_params.insert(
346  std::pair<QualifiedMassSpectrumParameter, QVariant>(parameter, value));
347 
348  if(ret.second == false)
349  {
350  ret.first->second = value;
351  }
352 }
353 const QVariant
355  QualifiedMassSpectrumParameter parameter) const
356 {
357  auto it = m_params.find(parameter);
358  if(it == m_params.end())
359  {
360  return QVariant();
361  }
362  else
363  {
364  return it->second;
365  }
366 }
367 
368 } // namespace pappso
pappso::QualifiedMassSpectrum::m_precursorCharge
unsigned int m_precursorCharge
Charge of the precursor that was fragmented to yield this mass spectrum.
Definition: qualifiedmassspectrum.h:171
pappso::QualifiedMassSpectrum::m_dt
pappso_double m_dt
Drift time (in milliseconds) at which this mass spectrum was acquired.
Definition: qualifiedmassspectrum.h:156
pappso::QualifiedMassSpectrum::setPrecursorIntensity
void setPrecursorIntensity(pappso_double intensity)
Set the intensity of the precursor ion.
Definition: qualifiedmassspectrum.cpp:289
pappso::QualifiedMassSpectrumSPtr
std::shared_ptr< QualifiedMassSpectrum > QualifiedMassSpectrumSPtr
Definition: qualifiedmassspectrum.h:57
pappso::QualifiedMassSpectrum::getMsLevel
uint getMsLevel() const
Get the mass spectrum level.
Definition: qualifiedmassspectrum.cpp:210
pappso::pappso_double
double pappso_double
A type definition for doubles.
Definition: types.h:67
pappso::MassSpectrumCstSPtr
std::shared_ptr< const MassSpectrum > MassSpectrumCstSPtr
Definition: massspectrum.h:74
pappso::QualifiedMassSpectrum::getMassSpectrumSPtr
MassSpectrumSPtr getMassSpectrumSPtr() const
Get the MassSpectrumSPtr.
Definition: qualifiedmassspectrum.cpp:140
pappso::QualifiedMassSpectrum::setPrecursorMz
void setPrecursorMz(pappso_double precursor_mz)
Set the precursor m/z ratio.
Definition: qualifiedmassspectrum.cpp:186
pappso
Definition: aa.cpp:38
pappso::QualifiedMassSpectrum::m_rt
pappso_double m_rt
Retention time (in seconds) at which this mass spectrum was acquired.
Definition: qualifiedmassspectrum.h:153
pappso::QualifiedMassSpectrum::m_precursorMz
pappso_double m_precursorMz
Definition: qualifiedmassspectrum.h:168
pappso::QualifiedMassSpectrum::setParameterValue
void setParameterValue(QualifiedMassSpectrumParameter parameter, const QVariant &value)
Definition: qualifiedmassspectrum.cpp:358
pappso::QualifiedMassSpectrum::makeQualifiedMassSpectrumSPtr
QualifiedMassSpectrumSPtr makeQualifiedMassSpectrumSPtr() const
Definition: qualifiedmassspectrum.cpp:101
pappso::QualifiedMassSpectrum::getPrecursorIntensity
pappso_double getPrecursorIntensity() const
Get the intensity of the precursor ion.
Definition: qualifiedmassspectrum.cpp:297
pappso::QualifiedMassSpectrum::makeQualifiedMassSpectrumCstSPtr
QualifiedMassSpectrumCstSPtr makeQualifiedMassSpectrumCstSPtr() const
Definition: qualifiedmassspectrum.cpp:108
pappso::QualifiedMassSpectrum::setMassSpectrumSPtr
void setMassSpectrumSPtr(MassSpectrumSPtr massSpectrum)
Set the MassSpectrumSPtr.
Definition: qualifiedmassspectrum.cpp:132
pappso::QualifiedMassSpectrum::msp_massSpectrum
MassSpectrumSPtr msp_massSpectrum
Shared pointer to the mass spectrum.
Definition: qualifiedmassspectrum.h:142
pappso::QualifiedMassSpectrum::setMsLevel
void setMsLevel(uint ms_level)
Set the mass spectrum level.
Definition: qualifiedmassspectrum.cpp:202
pappso::QualifiedMassSpectrum::getDtInMilliSeconds
pappso_double getDtInMilliSeconds() const
Get the drift time in milliseconds.
Definition: qualifiedmassspectrum.cpp:253
pappso::QualifiedMassSpectrum::getRtInMinutes
pappso_double getRtInMinutes() const
Get the retention time in minutes.
Definition: qualifiedmassspectrum.cpp:234
pappso::QualifiedMassSpectrum::size
std::size_t size() const
Definition: qualifiedmassspectrum.cpp:304
pappso::QualifiedMassSpectrum::setRtInSeconds
void setRtInSeconds(pappso_double rt)
Set the retention time in seconds.
Definition: qualifiedmassspectrum.cpp:218
pappso::QualifiedMassSpectrum::m_massSpectrumId
MassSpectrumId m_massSpectrumId
Id of the mass spectrum.
Definition: qualifiedmassspectrum.h:145
pappso::QualifiedMassSpectrum
Class representing a fully specified mass spectrum.
Definition: qualifiedmassspectrum.h:83
pappso::Utils::pointerToString
static QString pointerToString(const void *const pointer)
Definition: utils.cpp:229
pappso::QualifiedMassSpectrum::m_params
std::map< QualifiedMassSpectrumParameter, QVariant > m_params
map containing any parameter value for this spectrum
Definition: qualifiedmassspectrum.h:178
pappso::QualifiedMassSpectrum::setPrecursorNativeId
void setPrecursorNativeId(const QString &native_id)
Set the scan native id of the precursor ion.
Definition: qualifiedmassspectrum.cpp:276
pappso::QualifiedMassSpectrumParameter
QualifiedMassSpectrumParameter
Definition: qualifiedmassspectrum.h:63
pappso::QualifiedMassSpectrum::m_isEmptyMassSpectrum
bool m_isEmptyMassSpectrum
Definition: qualifiedmassspectrum.h:147
pappso::QualifiedMassSpectrum::getPrecursorCharge
uint getPrecursorCharge() const
Get the precursor charge.
Definition: qualifiedmassspectrum.cpp:178
pappso::QualifiedMassSpectrum::getPrecursorNativeId
const QString & getPrecursorNativeId() const
Definition: qualifiedmassspectrum.cpp:282
pappso::MassSpectrumId::toString
QString toString() const
Definition: massspectrumid.cpp:152
pappso::QualifiedMassSpectrum::setMassSpectrumId
void setMassSpectrumId(const MassSpectrumId &iD)
Set the MassSpectrumId.
Definition: qualifiedmassspectrum.cpp:116
pappso::QualifiedMassSpectrum::m_precursorSpectrumIndex
std::size_t m_precursorSpectrumIndex
Index of the spectrum of the precusor ion that was fragmented to yield.
Definition: qualifiedmassspectrum.h:160
pappso::QualifiedMassSpectrum::QualifiedMassSpectrum
QualifiedMassSpectrum()
Construct an uninitialized QualifiedMassSpectrum.
Definition: qualifiedmassspectrum.cpp:56
pappso::QualifiedMassSpectrumCstSPtr
std::shared_ptr< const QualifiedMassSpectrum > QualifiedMassSpectrumCstSPtr
Definition: qualifiedmassspectrum.h:61
pappso::QualifiedMassSpectrum::m_precursorNativeId
QString m_precursorNativeId
Native XML id of the spectrum relative to the mz data native file.
Definition: qualifiedmassspectrum.h:164
pappso::QualifiedMassSpectrum::getMassSpectrumId
const MassSpectrumId & getMassSpectrumId() const
Get the MassSpectrumId.
Definition: qualifiedmassspectrum.cpp:124
pappso::QualifiedMassSpectrum::setPrecursorCharge
void setPrecursorCharge(uint precursor_charge)
Set the precursor charge.
Definition: qualifiedmassspectrum.cpp:170
pappso::QualifiedMassSpectrum::m_msLevel
unsigned int m_msLevel
Mass spectrometry level of this mass spectrum.
Definition: qualifiedmassspectrum.h:150
pappso::QualifiedMassSpectrum::getMassSpectrumCstSPtr
MassSpectrumCstSPtr getMassSpectrumCstSPtr() const
Get the MassSpectrumCstSPtr.
Definition: qualifiedmassspectrum.cpp:148
pappso::MassSpectrumId
Definition: massspectrumid.h:56
pappso::QualifiedMassSpectrum::setEmptyMassSpectrum
void setEmptyMassSpectrum(bool is_empty_mass_spectrum)
Definition: qualifiedmassspectrum.cpp:155
pappso::QualifiedMassSpectrum::setPrecursorSpectrumIndex
void setPrecursorSpectrumIndex(std::size_t precursor_scan_num)
Set the scan number of the precursor ion.
Definition: qualifiedmassspectrum.cpp:261
qualifiedmassspectrum.h
pappso::QualifiedMassSpectrum::toString
QString toString() const
Definition: qualifiedmassspectrum.cpp:315
pappso::QualifiedMassSpectrum::setDtInMilliSeconds
void setDtInMilliSeconds(pappso_double rt)
Set the drift time in milliseconds.
Definition: qualifiedmassspectrum.cpp:242
pappso::QualifiedMassSpectrum::m_precursorIntensity
pappso_double m_precursorIntensity
Definition: qualifiedmassspectrum.h:175
pappso::QualifiedMassSpectrum::isEmptyMassSpectrum
bool isEmptyMassSpectrum() const
Definition: qualifiedmassspectrum.cpp:162
pappso::QualifiedMassSpectrum::~QualifiedMassSpectrum
~QualifiedMassSpectrum()
Destruct this QualifiedMassSpectrum.
Definition: qualifiedmassspectrum.cpp:94
pappso::QualifiedMassSpectrum::getPrecursorMz
pappso_double getPrecursorMz() const
Get the precursor m/z ratio.
Definition: qualifiedmassspectrum.cpp:194
pappso::QualifiedMassSpectrum::getPrecursorSpectrumIndex
std::size_t getPrecursorSpectrumIndex() const
Get the scan number of the precursor ion.
Definition: qualifiedmassspectrum.cpp:269
pappso::MassSpectrumSPtr
std::shared_ptr< MassSpectrum > MassSpectrumSPtr
Definition: massspectrum.h:73
pappso::PappsoException
Definition: pappsoexception.h:60
pappso::QualifiedMassSpectrum::getRtInSeconds
pappso_double getRtInSeconds() const
Get the retention time in seconds.
Definition: qualifiedmassspectrum.cpp:226
pappso::QualifiedMassSpectrum::getParameterValue
const QVariant getParameterValue(QualifiedMassSpectrumParameter parameter) const
Definition: qualifiedmassspectrum.cpp:371