libpappsomspp
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 <cmath>
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_paramsMap(other.m_paramsMap)
72 {
73  // qDebug();
74 }
75 
76 //! Destruct this QualifiedMassSpectrum.
78 {
79  // qDebug() << __FILE__ << "@" << __LINE__ << __FUNCTION__ << " ()";
80 }
81 
82 
85 {
89  m_msLevel = other.m_msLevel;
90  m_rt = other.m_rt;
91  m_dt = other.m_dt;
97 
98  m_paramsMap = other.m_paramsMap;
99 
100  return *this;
101 }
102 
103 
106 {
107  return std::make_shared<QualifiedMassSpectrum>(*this);
108 }
109 
110 
113 {
114  return std::make_shared<const QualifiedMassSpectrum>(*this);
115 }
116 
117 
118 //! Set the MassSpectrumId.
119 void
120 QualifiedMassSpectrum::setMassSpectrumId(const MassSpectrumId &iD)
121 {
122  m_massSpectrumId = iD;
123 }
124 
125 
126 //! Get the MassSpectrumId.
127 const MassSpectrumId &
129 {
131 }
132 
133 
134 //! Set the MassSpectrumSPtr.
135 void
137 {
138  msp_massSpectrum = massSpectrum;
139 }
140 
141 
142 //! Get the MassSpectrumSPtr.
145 {
147 }
148 
149 
150 //! Get the MassSpectrumCstSPtr.
153 {
155 }
156 
157 
158 void
159 QualifiedMassSpectrum::setEmptyMassSpectrum(bool is_empty_mass_spectrum)
160 {
161  m_isEmptyMassSpectrum = is_empty_mass_spectrum;
162 }
163 
164 
165 bool
167 {
168  return m_isEmptyMassSpectrum;
169 }
170 
171 
172 //! Set the precursor charge.
173 void
174 QualifiedMassSpectrum::setPrecursorCharge(unsigned int precursor_charge)
175 {
176  m_precursorCharge = precursor_charge;
177 }
178 
179 
180 //! Get the precursor charge.
181 unsigned int
183 {
185 }
186 
187 
188 //! Set the precursor m/z ratio.
189 void
191 {
192  m_precursorMz = precursor_mz;
193 }
194 
195 
196 //! Get the precursor m/z ratio.
199 {
201 }
202 
203 
204 //! Set the mass spectrum level.
205 void
206 QualifiedMassSpectrum::setMsLevel(unsigned int level)
207 {
208  m_msLevel = level;
209 }
210 
211 
212 //! Get the mass spectrum level.
213 unsigned int
215 {
216  return m_msLevel;
217 }
218 
219 
220 //! Set the retention time in seconds.
221 void
223 {
224  m_rt = rt_in_seconds;
225 }
226 
227 
228 //! Get the retention time in seconds.
231 {
232  return m_rt;
233 }
234 
235 
236 //! Get the retention time in minutes.
239 {
240  return m_rt / 60;
241 }
242 
243 
244 //! Set the drift time in milliseconds.
245 void
247 {
248  if(std::isinf(dt_in_milli_seconds))
249  m_dt = -1;
250  else
251  m_dt = dt_in_milli_seconds;
252 }
253 
254 
255 //! Get the drift time in milliseconds.
258 {
259  return m_dt;
260 }
261 
262 
263 //! Set the scan number of the precursor ion.
264 void
266  std::size_t precursor_spectrum_index)
267 {
268  m_precursorSpectrumIndex = precursor_spectrum_index;
269 }
270 
271 //! Get the scan number of the precursor ion.
272 std::size_t
274 {
276 }
277 
278 //! Set the scan native id of the precursor ion.
279 void
280 QualifiedMassSpectrum::setPrecursorNativeId(const QString &native_id)
281 {
282  m_precursorNativeId = native_id;
283 }
284 
285 const QString &
287 {
288  return m_precursorNativeId;
289 }
290 
291 //! Set the intensity of the precursor ion.
292 void
294 {
295  m_precursorIntensity = intensity;
296 }
297 
298 
299 //! Get the intensity of the precursor ion.
302 {
303  return m_precursorIntensity;
304 }
305 
306 
307 std::size_t
309 {
310  if(msp_massSpectrum == nullptr)
311  {
312  throw pappso::PappsoException(QObject::tr("msp_massSpectrum == nullptr"));
313  }
314  return msp_massSpectrum.get()->size();
315 }
316 
317 
318 QString
320 {
321  QString text;
322 
323  if(msp_massSpectrum != nullptr && msp_massSpectrum.get() != nullptr)
324  {
325  QString pointer_string =
326  QString("msp_massSpectrum.get(): %1 ")
327  .arg(Utils::pointerToString((void *)msp_massSpectrum.get()));
328 
329  text += pointer_string;
330  }
331  else
332  text += QString("msp_massSpectrum is nullptr ");
333 
334  // qDebug() << text;
335 
336  text +=
337  QString(
338  "; m_massSpectrumId : %1 \n"
339  "m_msLevel: %2 ; m_rt (min): %3 ; m_dt (ms): %4 ; prec. spec. "
340  "index: %5 ; prec. mz: %6 ; prec. z: %7 ; prec. int.: %8")
341  .arg(m_massSpectrumId.toString())
342  .arg(m_msLevel)
343  .arg(getRtInMinutes(), 0, 'f', 2)
344  .arg(m_dt, 0, 'f', 5)
345  .arg(m_precursorSpectrumIndex != std::numeric_limits<std::size_t>::max()
347  : -1)
348  .arg(m_precursorMz != std::numeric_limits<double>::max() ? m_precursorMz
349  : -1)
350  .arg(m_precursorCharge != std::numeric_limits<unsigned int>::max()
352  : -1)
353  .arg(m_precursorIntensity != std::numeric_limits<double>::max()
355  : -1);
356 
357  return text;
358 }
359 
360 
361 void
363  QualifiedMassSpectrumParameter parameter, const QVariant &value)
364 {
365 
366  auto ret = m_paramsMap.insert(
367  std::pair<QualifiedMassSpectrumParameter, QVariant>(parameter, value));
368 
369  if(ret.second == false)
370  {
371  ret.first->second = value;
372  }
373 }
374 const QVariant
376  QualifiedMassSpectrumParameter parameter) const
377 {
378  auto it = m_paramsMap.find(parameter);
379  if(it == m_paramsMap.end())
380  {
381  return QVariant();
382  }
383  else
384  {
385  return it->second;
386  }
387 }
388 
389 } // 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:175
pappso::QualifiedMassSpectrum::m_dt
pappso_double m_dt
Drift time (in milliseconds) at which this mass spectrum was acquired.
Definition: qualifiedmassspectrum.h:160
pappso::QualifiedMassSpectrum::setPrecursorIntensity
void setPrecursorIntensity(pappso_double intensity)
Set the intensity of the precursor ion.
Definition: qualifiedmassspectrum.cpp:311
pappso::QualifiedMassSpectrumSPtr
std::shared_ptr< QualifiedMassSpectrum > QualifiedMassSpectrumSPtr
Definition: qualifiedmassspectrum.h:59
pappso::QualifiedMassSpectrum::getMsLevel
uint getMsLevel() const
Get the mass spectrum level.
Definition: qualifiedmassspectrum.cpp:232
pappso::pappso_double
double pappso_double
A type definition for doubles.
Definition: types.h:69
pappso::MassSpectrumCstSPtr
std::shared_ptr< const MassSpectrum > MassSpectrumCstSPtr
Definition: massspectrum.h:76
pappso::QualifiedMassSpectrum::getMassSpectrumSPtr
MassSpectrumSPtr getMassSpectrumSPtr() const
Get the MassSpectrumSPtr.
Definition: qualifiedmassspectrum.cpp:162
pappso::QualifiedMassSpectrum::operator=
QualifiedMassSpectrum & operator=(const QualifiedMassSpectrum &other)
Definition: qualifiedmassspectrum.cpp:102
pappso::QualifiedMassSpectrum::m_paramsMap
std::map< QualifiedMassSpectrumParameter, QVariant > m_paramsMap
map containing any parameter value for this spectrum
Definition: qualifiedmassspectrum.h:182
pappso::QualifiedMassSpectrum::setPrecursorMz
void setPrecursorMz(pappso_double precursor_mz)
Set the precursor m/z ratio.
Definition: qualifiedmassspectrum.cpp:208
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:157
pappso::QualifiedMassSpectrum::m_precursorMz
pappso_double m_precursorMz
Definition: qualifiedmassspectrum.h:172
pappso::QualifiedMassSpectrum::setParameterValue
void setParameterValue(QualifiedMassSpectrumParameter parameter, const QVariant &value)
Definition: qualifiedmassspectrum.cpp:380
pappso::QualifiedMassSpectrum::makeQualifiedMassSpectrumSPtr
QualifiedMassSpectrumSPtr makeQualifiedMassSpectrumSPtr() const
Definition: qualifiedmassspectrum.cpp:123
pappso::QualifiedMassSpectrum::getPrecursorIntensity
pappso_double getPrecursorIntensity() const
Get the intensity of the precursor ion.
Definition: qualifiedmassspectrum.cpp:319
pappso::QualifiedMassSpectrum::makeQualifiedMassSpectrumCstSPtr
QualifiedMassSpectrumCstSPtr makeQualifiedMassSpectrumCstSPtr() const
Definition: qualifiedmassspectrum.cpp:130
pappso::QualifiedMassSpectrum::setMassSpectrumSPtr
void setMassSpectrumSPtr(MassSpectrumSPtr massSpectrum)
Set the MassSpectrumSPtr.
Definition: qualifiedmassspectrum.cpp:154
pappso::QualifiedMassSpectrum::msp_massSpectrum
MassSpectrumSPtr msp_massSpectrum
Shared pointer to the mass spectrum.
Definition: qualifiedmassspectrum.h:146
pappso::QualifiedMassSpectrum::setMsLevel
void setMsLevel(uint ms_level)
Set the mass spectrum level.
Definition: qualifiedmassspectrum.cpp:224
pappso::QualifiedMassSpectrum::getDtInMilliSeconds
pappso_double getDtInMilliSeconds() const
Get the drift time in milliseconds.
Definition: qualifiedmassspectrum.cpp:275
pappso::QualifiedMassSpectrum::getRtInMinutes
pappso_double getRtInMinutes() const
Get the retention time in minutes.
Definition: qualifiedmassspectrum.cpp:256
pappso::QualifiedMassSpectrum::size
std::size_t size() const
Definition: qualifiedmassspectrum.cpp:326
pappso::QualifiedMassSpectrum::setRtInSeconds
void setRtInSeconds(pappso_double rt)
Set the retention time in seconds.
Definition: qualifiedmassspectrum.cpp:240
pappso::QualifiedMassSpectrum::m_massSpectrumId
MassSpectrumId m_massSpectrumId
Id of the mass spectrum.
Definition: qualifiedmassspectrum.h:149
pappso::QualifiedMassSpectrum
Class representing a fully specified mass spectrum.
Definition: qualifiedmassspectrum.h:85
pappso::Utils::pointerToString
static QString pointerToString(const void *const pointer)
Definition: utils.cpp:231
pappso::QualifiedMassSpectrum::setPrecursorNativeId
void setPrecursorNativeId(const QString &native_id)
Set the scan native id of the precursor ion.
Definition: qualifiedmassspectrum.cpp:298
pappso::QualifiedMassSpectrumParameter
QualifiedMassSpectrumParameter
Definition: qualifiedmassspectrum.h:65
pappso::QualifiedMassSpectrum::m_isEmptyMassSpectrum
bool m_isEmptyMassSpectrum
Definition: qualifiedmassspectrum.h:151
pappso::QualifiedMassSpectrum::getPrecursorCharge
uint getPrecursorCharge() const
Get the precursor charge.
Definition: qualifiedmassspectrum.cpp:200
pappso::QualifiedMassSpectrum::getPrecursorNativeId
const QString & getPrecursorNativeId() const
Definition: qualifiedmassspectrum.cpp:304
pappso::MassSpectrumId::toString
QString toString() const
Definition: massspectrumid.cpp:153
pappso::QualifiedMassSpectrum::setMassSpectrumId
void setMassSpectrumId(const MassSpectrumId &iD)
Set the MassSpectrumId.
Definition: qualifiedmassspectrum.cpp:138
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:164
pappso::QualifiedMassSpectrum::QualifiedMassSpectrum
QualifiedMassSpectrum()
Construct an uninitialized QualifiedMassSpectrum.
Definition: qualifiedmassspectrum.cpp:57
pappso::QualifiedMassSpectrumCstSPtr
std::shared_ptr< const QualifiedMassSpectrum > QualifiedMassSpectrumCstSPtr
Definition: qualifiedmassspectrum.h:63
pappso::QualifiedMassSpectrum::m_precursorNativeId
QString m_precursorNativeId
Native XML id of the spectrum relative to the mz data native file.
Definition: qualifiedmassspectrum.h:168
pappso::QualifiedMassSpectrum::getMassSpectrumId
const MassSpectrumId & getMassSpectrumId() const
Get the MassSpectrumId.
Definition: qualifiedmassspectrum.cpp:146
pappso::QualifiedMassSpectrum::setPrecursorCharge
void setPrecursorCharge(uint precursor_charge)
Set the precursor charge.
Definition: qualifiedmassspectrum.cpp:192
pappso::QualifiedMassSpectrum::m_msLevel
unsigned int m_msLevel
Mass spectrometry level of this mass spectrum.
Definition: qualifiedmassspectrum.h:154
pappso::QualifiedMassSpectrum::getMassSpectrumCstSPtr
MassSpectrumCstSPtr getMassSpectrumCstSPtr() const
Get the MassSpectrumCstSPtr.
Definition: qualifiedmassspectrum.cpp:170
pappso::MassSpectrumId
Definition: massspectrumid.h:58
pappso::QualifiedMassSpectrum::setEmptyMassSpectrum
void setEmptyMassSpectrum(bool is_empty_mass_spectrum)
Definition: qualifiedmassspectrum.cpp:177
pappso::QualifiedMassSpectrum::setPrecursorSpectrumIndex
void setPrecursorSpectrumIndex(std::size_t precursor_scan_num)
Set the scan number of the precursor ion.
Definition: qualifiedmassspectrum.cpp:283
qualifiedmassspectrum.h
pappso::QualifiedMassSpectrum::toString
QString toString() const
Definition: qualifiedmassspectrum.cpp:337
pappso::QualifiedMassSpectrum::setDtInMilliSeconds
void setDtInMilliSeconds(pappso_double rt)
Set the drift time in milliseconds.
Definition: qualifiedmassspectrum.cpp:264
pappso::QualifiedMassSpectrum::m_precursorIntensity
pappso_double m_precursorIntensity
Definition: qualifiedmassspectrum.h:179
pappso::QualifiedMassSpectrum::isEmptyMassSpectrum
bool isEmptyMassSpectrum() const
Definition: qualifiedmassspectrum.cpp:184
pappso::QualifiedMassSpectrum::~QualifiedMassSpectrum
~QualifiedMassSpectrum()
Destruct this QualifiedMassSpectrum.
Definition: qualifiedmassspectrum.cpp:95
pappso::QualifiedMassSpectrum::getPrecursorMz
pappso_double getPrecursorMz() const
Get the precursor m/z ratio.
Definition: qualifiedmassspectrum.cpp:216
pappso::QualifiedMassSpectrum::getPrecursorSpectrumIndex
std::size_t getPrecursorSpectrumIndex() const
Get the scan number of the precursor ion.
Definition: qualifiedmassspectrum.cpp:291
pappso::MassSpectrumSPtr
std::shared_ptr< MassSpectrum > MassSpectrumSPtr
Definition: massspectrum.h:75
pappso::PappsoException
Definition: pappsoexception.h:62
pappso::QualifiedMassSpectrum::getRtInSeconds
pappso_double getRtInSeconds() const
Get the retention time in seconds.
Definition: qualifiedmassspectrum.cpp:248
pappso::QualifiedMassSpectrum::getParameterValue
const QVariant getParameterValue(QualifiedMassSpectrumParameter parameter) const
Definition: qualifiedmassspectrum.cpp:393