libpappsomspp
Library for mass spectrometry
Toggle main menu visibility
Loading...
Searching...
No Matches
timsframemobilitytraces.cpp
Go to the documentation of this file.
1
/**
2
* \file pappsomspp/vendors/tims/mobilitytraces
3
* \date 05/07/2024
4
* \author Olivier Langella
5
* \brief extracting mobility traces
6
*/
7
8
/*******************************************************************************
9
* Copyright (c) 2024 Olivier Langella
10
*<Olivier.Langella@universite-paris-saclay.fr>.
11
*
12
* This file is part of the PAPPSOms++ library.
13
*
14
* PAPPSOms++ is free software: you can redistribute it and/or modify
15
* it under the terms of the GNU General Public License as published by
16
* the Free Software Foundation, either version 3 of the License, or
17
* (at your option) any later version.
18
*
19
* PAPPSOms++ is distributed in the hope that it will be useful,
20
* but WITHOUT ANY WARRANTY; without even the implied warranty of
21
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22
* GNU General Public License for more details.
23
*
24
* You should have received a copy of the GNU General Public License
25
* along with PAPPSOms++. If not, see <http://www.gnu.org/licenses/>.
26
*
27
******************************************************************************/
28
29
#include "
timsframemobilitytraces.h
"
30
#include "
pappsomspp/core/exception/exceptionnotfound.h
"
31
#include <QDebug>
32
namespace
pappso
33
{
34
TimsFrameMobilityTraces::TimsFrameMobilityTraces
()
35
{
36
}
37
38
TimsFrameMobilityTraces::TimsFrameMobilityTraces
(
const
TimsFrameMobilityTraces
&other
39
[[maybe_unused]])
40
{
41
}
42
43
TimsFrameMobilityTraces::~TimsFrameMobilityTraces
()
44
{
45
}
46
void
47
TimsFrameMobilityTraces::extractMobilityTraces
(
pappso::TimsFrameCstSPtr
timsframe_sptr,
48
std::size_t scan_index_begin,
49
std::size_t scan_index_end,
50
std::size_t max_traces)
51
{
52
m_tofIndexList
.clear();
53
m_ionMobTraceList
.clear();
54
m_scanIndexList
.clear();
55
mcsp_timsFrameCstSPtr
= timsframe_sptr;
56
57
pappso::TimsDataFastMap
raw_spectrum =
pappso::TimsDataFastMap::getTimsDataFastMapInstance
();
58
timsframe_sptr.get()->combineScansInTofIndexIntensityMap(
59
raw_spectrum, scan_index_begin, scan_index_end);
60
61
pappso::Trace
total_spectrum;
62
63
for
(
auto
index : raw_spectrum.
getTofIndexList
())
64
{
65
66
total_spectrum.push_back({(double)index, (
double
)raw_spectrum.
readIntensity
(index)});
67
}
68
total_spectrum.
sortY
(
Enums::SortOrder::descending
);
69
70
qDebug() << total_spectrum.size();
71
72
total_spectrum.
sortY
(
Enums::SortOrder::descending
);
73
74
for
(std::size_t i = scan_index_begin; i < (scan_index_end + 1); i++)
75
{
76
m_scanIndexList
.push_back(i);
77
}
78
79
for
(
auto
&datapoint : total_spectrum)
80
{
81
pappso::Trace
trace(
82
timsframe_sptr.get()->getIonMobilityTraceByTofIndexRange(datapoint.x - 1,
83
datapoint.x + 1,
84
Enums::XicExtractMethod::sum
,
85
scan_index_begin,
86
scan_index_end));
87
88
m_ionMobTraceList
.push_back(trace.
makeTraceSPtr
());
89
m_tofIndexList
.push_back(datapoint.x);
90
if
(
m_ionMobTraceList
.size() >= max_traces)
91
break
;
92
}
93
qDebug();
94
}
95
96
const
std::vector<pappso::TraceCstSPtr> &
97
TimsFrameMobilityTraces::getIonMobTraceList
()
const
98
{
99
return
m_ionMobTraceList
;
100
}
101
const
std::vector<std::size_t> &
102
TimsFrameMobilityTraces::getTofIndexList
()
const
103
{
104
return
m_tofIndexList
;
105
}
106
const
std::vector<double>
107
TimsFrameMobilityTraces::getMzList
()
const
108
{
109
MzCalibrationInterface
*mz_calibration_p =
110
mcsp_timsFrameCstSPtr
.get()->getMzCalibrationInterfaceSPtr().get();
111
if
(mz_calibration_p ==
nullptr
)
112
{
113
throw
pappso::ExceptionNotFound
(QObject::tr(
"mz calibration pointer not found"
));
114
}
115
std::vector<double> mz_list;
116
for
(std::size_t tof :
m_tofIndexList
)
117
{
118
mz_list.push_back(mz_calibration_p->
getMzFromTofIndex
((quint32)tof));
119
}
120
return
mz_list;
121
}
122
const
std::vector<std::size_t> &
123
TimsFrameMobilityTraces::getScanIndexList
()
const
124
{
125
return
m_scanIndexList
;
126
}
127
}
// namespace pappso
pappso::ExceptionNotFound
Definition
exceptionnotfound.h:32
pappso::MzCalibrationInterface
Definition
mzcalibrationinterface.h:43
pappso::MzCalibrationInterface::getMzFromTofIndex
virtual double getMzFromTofIndex(quint32 tof_index)=0
get m/z from time of flight raw index
pappso::TimsDataFastMap
replacement for std::map
Definition
timsdatafastmap.h:46
pappso::TimsDataFastMap::getTofIndexList
const std::vector< quint32 > & getTofIndexList() const
Definition
timsdatafastmap.cpp:196
pappso::TimsDataFastMap::readIntensity
std::size_t readIntensity(quint32)
reads intensity for a tof_index
Definition
timsdatafastmap.cpp:87
pappso::TimsDataFastMap::getTimsDataFastMapInstance
static TimsDataFastMap & getTimsDataFastMapInstance()
Definition
timsdatafastmap.cpp:40
pappso::TimsFrameMobilityTraces::extractMobilityTraces
void extractMobilityTraces(pappso::TimsFrameCstSPtr timsframe_sptr, std::size_t ion_mob_begin, std::size_t ion_mob_end, std::size_t max_traces)
Definition
timsframemobilitytraces.cpp:47
pappso::TimsFrameMobilityTraces::mcsp_timsFrameCstSPtr
pappso::TimsFrameCstSPtr mcsp_timsFrameCstSPtr
Definition
timsframemobilitytraces.h:69
pappso::TimsFrameMobilityTraces::getScanIndexList
const std::vector< std::size_t > & getScanIndexList() const
Definition
timsframemobilitytraces.cpp:123
pappso::TimsFrameMobilityTraces::m_tofIndexList
std::vector< std::size_t > m_tofIndexList
Definition
timsframemobilitytraces.h:72
pappso::TimsFrameMobilityTraces::m_ionMobTraceList
std::vector< pappso::TraceCstSPtr > m_ionMobTraceList
Definition
timsframemobilitytraces.h:71
pappso::TimsFrameMobilityTraces::TimsFrameMobilityTraces
TimsFrameMobilityTraces()
Definition
timsframemobilitytraces.cpp:34
pappso::TimsFrameMobilityTraces::getMzList
const std::vector< double > getMzList() const
Definition
timsframemobilitytraces.cpp:107
pappso::TimsFrameMobilityTraces::m_scanIndexList
std::vector< std::size_t > m_scanIndexList
Definition
timsframemobilitytraces.h:73
pappso::TimsFrameMobilityTraces::getTofIndexList
const std::vector< std::size_t > & getTofIndexList() const
Definition
timsframemobilitytraces.cpp:102
pappso::TimsFrameMobilityTraces::~TimsFrameMobilityTraces
~TimsFrameMobilityTraces()
Definition
timsframemobilitytraces.cpp:43
pappso::TimsFrameMobilityTraces::getIonMobTraceList
const std::vector< pappso::TraceCstSPtr > & getIonMobTraceList() const
Definition
timsframemobilitytraces.cpp:97
pappso::Trace
A simple container of DataPoint instances.
Definition
trace.h:152
pappso::Trace::sortY
void sortY(Enums::SortOrder sort_order=Enums::SortOrder::ascending)
Definition
trace.cpp:1080
pappso::Trace::makeTraceSPtr
TraceSPtr makeTraceSPtr() const
Definition
trace.cpp:683
exceptionnotfound.h
pappso::Enums::SortOrder::descending
@ descending
Definition
types.h:223
pappso::Enums::XicExtractMethod::sum
@ sum
sum of intensities
Definition
types.h:265
pappso
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition
aa.cpp:39
pappso::TimsFrameCstSPtr
std::shared_ptr< const TimsFrame > TimsFrameCstSPtr
Definition
timsframe.h:44
timsframemobilitytraces.h
pappsomspp
core
vendors
tims
mobilitytraces
timsframemobilitytraces.cpp
Generated on
for libpappsomspp by
1.17.0