libpappsomspp
Library for mass spectrometry
Toggle main menu visibility
Loading...
Searching...
No Matches
timsdiaslices.h
Go to the documentation of this file.
1
/**
2
* \file pappsomspp/vendors/tims/timsdiaslices.h
3
* \date 02/07/2024
4
* \brief handle specific data for DIA MS runs
5
*/
6
7
/*******************************************************************************
8
* Copyright (c) 2024 Olivier Langella <Olivier.Langella@u-psud.fr>.
9
*
10
* This file is part of the PAPPSOms++ library.
11
*
12
* PAPPSOms++ is free software: you can redistribute it and/or modify
13
* it under the terms of the GNU General Public License as published by
14
* the Free Software Foundation, either version 3 of the License, or
15
* (at your option) any later version.
16
*
17
* PAPPSOms++ is distributed in the hope that it will be useful,
18
* but WITHOUT ANY WARRANTY; without even the implied warranty of
19
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20
* GNU General Public License for more details.
21
*
22
* You should have received a copy of the GNU General Public License
23
* along with PAPPSOms++. If not, see <http://www.gnu.org/licenses/>.
24
*
25
******************************************************************************/
26
27
#pragma once
28
#include "
timsdata.h
"
29
#include "
pappsomspp/export-import-config.h
"
30
31
namespace
pappso
32
{
33
34
/**
35
* @todo write docs
36
*/
37
class
PMSPP_LIB_DECL
TimsDiaSlices
38
{
39
public
:
40
/**
41
* Default constructor
42
*/
43
TimsDiaSlices
(QSqlQuery &query,
TimsData
*tims_data_origin);
44
45
/**
46
* Destructor
47
*/
48
~TimsDiaSlices
();
49
50
struct
MsMsWindow
51
{
52
/** @brief tell if given mz is in range for this window
53
*/
54
bool
isMzInRange
(
double
mz)
const
;
55
56
std::size_t
SliceIndex
= 0;
57
std::size_t
WindowGroup
;
58
std::size_t
ScanNumBegin
;
59
std::size_t
ScanNumEnd
;
60
double
IsolationMz
;
61
double
IsolationWidth
;
62
double
CollisionEnergy
;
63
};
64
65
struct
MsMsWindowGroup
: std::vector<MsMsWindow>
66
{
67
std::size_t
WindowGroup
;
68
};
69
70
struct
MsMsWindowGroupList
: std::vector<MsMsWindowGroup *>
71
{
72
~MsMsWindowGroupList
();
73
74
void
addInGroup
(
const
MsMsWindow
&window);
75
MsMsWindowGroup
*
76
getWindowGroupPtrByGroupId
(std::size_t window_group_id)
const
;
77
};
78
79
const
MsMsWindowGroupList
&
getMsMsWindowGroupList
()
const
;
80
81
const
std::map<std::size_t, MsMsWindowGroup *> &
82
getMapFrame2WindowGroupPtr
()
const
;
83
84
std::size_t
getGlobalSliceIndexBeginByFrameId
(std::size_t frame_id)
const
;
85
86
std::size_t
getFrameIdByGlobalSliceIndex
(std::size_t global_slice_id)
const
;
87
88
89
/** @brief get the number of DIA MS2 slices analyzed by PASEF
90
*/
91
std::size_t
getTotalSlicesCount
()
const
;
92
93
94
const
MsMsWindow
&
95
getMsMsWindowByGlobalSliceIndex
(std::size_t global_slice_index)
const
;
96
97
98
TimsDataFastMap
&
99
getCombinedMs2ScansByGlobalSliceIndex
(std::size_t global_slice_index)
const
;
100
101
102
void
getMs2QualifiedSpectrumByGlobalSliceIndex
(
103
const
MsRunIdCstSPtr
&msrun_id,
104
QualifiedMassSpectrum
&mass_spectrum,
105
std::size_t global_slice_index,
106
bool
want_binary_data)
const
;
107
108
109
/** @brief get MS1 spectrum corresponding to the given slice
110
* extract MS1 mz range and mobility range corresponding to a global slice
111
* @param msrun_id
112
* @param mass_spectrum
113
* @param global_slice_index
114
* @param want_binary_data
115
* @param rt_position relative MS1 frame retention time : 0 latest MS1 frame,
116
* +1 next MS1 frame, -1 previous MS1 frame
117
*/
118
void
getMs1QualifiedSpectrumByGlobalSliceIndex
(
119
const
MsRunIdCstSPtr
&msrun_id,
120
QualifiedMassSpectrum
&mass_spectrum,
121
std::size_t global_slice_index,
122
bool
want_binary_data,
123
int
rt_position = 0)
const
;
124
125
std::size_t
getLastMs1FrameIdByMs2FrameId
(std::size_t frame_id)
const
;
126
127
private
:
128
struct
FrameSliceRange
129
{
130
std::size_t
frame_id
;
131
std::size_t
begin_global_slice_index
;
132
std::size_t
end_global_slice_index
;
133
};
134
135
const
FrameSliceRange
&
136
getFrameSliceRangeByGlobalSliceIndex
(std::size_t global_slice_index)
const
;
137
138
private
:
139
TimsData
*
mp_timsDataOrigin
;
140
MsMsWindowGroupList
m_msMsWindowGroupList
;
141
std::map<std::size_t, MsMsWindowGroup *>
m_mapFrame2WindowGroupPtr
;
142
std::vector<std::size_t>
m_frameId2GlobalSliceIndexBegin
;
143
std::vector<std::size_t>
m_ms2frameId2Ms1FrameId
;
144
std::vector<std::size_t>
m_ms1frameIdList
;
145
std::vector<FrameSliceRange>
m_frameSliceRangeList
;
146
147
/** @brief enable builtin centroid on raw tims integers by default
148
*/
149
bool
m_builtinMs2Centroid
=
true
;
150
151
std::size_t
m_totalSlicesCount
;
152
};
153
}
// namespace pappso
pappso::QualifiedMassSpectrum
Class representing a fully specified mass spectrum.
Definition
qualifiedmassspectrum.h:98
pappso::TimsDataFastMap
replacement for std::map
Definition
timsdatafastmap.h:46
pappso::TimsData
Definition
timsdata.h:68
pappso::TimsDiaSlices::m_ms2frameId2Ms1FrameId
std::vector< std::size_t > m_ms2frameId2Ms1FrameId
Definition
timsdiaslices.h:143
pappso::TimsDiaSlices::getCombinedMs2ScansByGlobalSliceIndex
TimsDataFastMap & getCombinedMs2ScansByGlobalSliceIndex(std::size_t global_slice_index) const
Definition
timsdiaslices.cpp:318
pappso::TimsDiaSlices::getGlobalSliceIndexBeginByFrameId
std::size_t getGlobalSliceIndexBeginByFrameId(std::size_t frame_id) const
Definition
timsdiaslices.cpp:256
pappso::TimsDiaSlices::getLastMs1FrameIdByMs2FrameId
std::size_t getLastMs1FrameIdByMs2FrameId(std::size_t frame_id) const
Definition
timsdiaslices.cpp:310
pappso::TimsDiaSlices::getFrameSliceRangeByGlobalSliceIndex
const FrameSliceRange & getFrameSliceRangeByGlobalSliceIndex(std::size_t global_slice_index) const
Definition
timsdiaslices.cpp:267
pappso::TimsDiaSlices::m_msMsWindowGroupList
MsMsWindowGroupList m_msMsWindowGroupList
Definition
timsdiaslices.h:140
pappso::TimsDiaSlices::getMsMsWindowByGlobalSliceIndex
const MsMsWindow & getMsMsWindowByGlobalSliceIndex(std::size_t global_slice_index) const
Definition
timsdiaslices.cpp:297
pappso::TimsDiaSlices::m_builtinMs2Centroid
bool m_builtinMs2Centroid
enable builtin centroid on raw tims integers by default
Definition
timsdiaslices.h:149
pappso::TimsDiaSlices::m_ms1frameIdList
std::vector< std::size_t > m_ms1frameIdList
Definition
timsdiaslices.h:144
pappso::TimsDiaSlices::m_mapFrame2WindowGroupPtr
std::map< std::size_t, MsMsWindowGroup * > m_mapFrame2WindowGroupPtr
Definition
timsdiaslices.h:141
pappso::TimsDiaSlices::m_totalSlicesCount
std::size_t m_totalSlicesCount
Definition
timsdiaslices.h:151
pappso::TimsDiaSlices::getFrameIdByGlobalSliceIndex
std::size_t getFrameIdByGlobalSliceIndex(std::size_t global_slice_id) const
Definition
timsdiaslices.cpp:261
pappso::TimsDiaSlices::m_frameId2GlobalSliceIndexBegin
std::vector< std::size_t > m_frameId2GlobalSliceIndexBegin
Definition
timsdiaslices.h:142
pappso::TimsDiaSlices::getMs2QualifiedSpectrumByGlobalSliceIndex
void getMs2QualifiedSpectrumByGlobalSliceIndex(const MsRunIdCstSPtr &msrun_id, QualifiedMassSpectrum &mass_spectrum, std::size_t global_slice_index, bool want_binary_data) const
Definition
timsdiaslices.cpp:357
pappso::TimsDiaSlices::getMapFrame2WindowGroupPtr
const std::map< std::size_t, MsMsWindowGroup * > & getMapFrame2WindowGroupPtr() const
Definition
timsdiaslices.cpp:245
pappso::TimsDiaSlices::getMs1QualifiedSpectrumByGlobalSliceIndex
void getMs1QualifiedSpectrumByGlobalSliceIndex(const MsRunIdCstSPtr &msrun_id, QualifiedMassSpectrum &mass_spectrum, std::size_t global_slice_index, bool want_binary_data, int rt_position=0) const
get MS1 spectrum corresponding to the given slice extract MS1 mz range and mobility range correspondi...
Definition
timsdiaslices.cpp:500
pappso::TimsDiaSlices::TimsDiaSlices
TimsDiaSlices(QSqlQuery &query, TimsData *tims_data_origin)
Definition
timsdiaslices.cpp:110
pappso::TimsDiaSlices::m_frameSliceRangeList
std::vector< FrameSliceRange > m_frameSliceRangeList
Definition
timsdiaslices.h:145
pappso::TimsDiaSlices::getTotalSlicesCount
std::size_t getTotalSlicesCount() const
get the number of DIA MS2 slices analyzed by PASEF
Definition
timsdiaslices.cpp:291
pappso::TimsDiaSlices::getMsMsWindowGroupList
const MsMsWindowGroupList & getMsMsWindowGroupList() const
Definition
timsdiaslices.cpp:250
pappso::TimsDiaSlices::mp_timsDataOrigin
TimsData * mp_timsDataOrigin
Definition
timsdiaslices.h:139
export-import-config.h
PMSPP_LIB_DECL
#define PMSPP_LIB_DECL
Definition
export-import-config.h:14
pappso
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition
aa.cpp:39
pappso::MsRunIdCstSPtr
std::shared_ptr< const MsRunId > MsRunIdCstSPtr
Definition
msrunid.h:46
pappso::TimsDiaSlices::FrameSliceRange
Definition
timsdiaslices.h:129
pappso::TimsDiaSlices::FrameSliceRange::end_global_slice_index
std::size_t end_global_slice_index
Definition
timsdiaslices.h:132
pappso::TimsDiaSlices::FrameSliceRange::frame_id
std::size_t frame_id
Definition
timsdiaslices.h:130
pappso::TimsDiaSlices::FrameSliceRange::begin_global_slice_index
std::size_t begin_global_slice_index
Definition
timsdiaslices.h:131
pappso::TimsDiaSlices::MsMsWindowGroupList
Definition
timsdiaslices.h:71
pappso::TimsDiaSlices::MsMsWindowGroupList::getWindowGroupPtrByGroupId
MsMsWindowGroup * getWindowGroupPtrByGroupId(std::size_t window_group_id) const
Definition
timsdiaslices.cpp:93
pappso::TimsDiaSlices::MsMsWindowGroupList::addInGroup
void addInGroup(const MsMsWindow &window)
Definition
timsdiaslices.cpp:56
pappso::TimsDiaSlices::MsMsWindowGroup
Definition
timsdiaslices.h:66
pappso::TimsDiaSlices::MsMsWindowGroup::WindowGroup
std::size_t WindowGroup
Definition
timsdiaslices.h:67
pappso::TimsDiaSlices::MsMsWindow
Definition
timsdiaslices.h:51
pappso::TimsDiaSlices::MsMsWindow::IsolationMz
double IsolationMz
Definition
timsdiaslices.h:60
pappso::TimsDiaSlices::MsMsWindow::ScanNumBegin
std::size_t ScanNumBegin
Definition
timsdiaslices.h:58
pappso::TimsDiaSlices::MsMsWindow::CollisionEnergy
double CollisionEnergy
Definition
timsdiaslices.h:62
pappso::TimsDiaSlices::MsMsWindow::WindowGroup
std::size_t WindowGroup
Definition
timsdiaslices.h:57
pappso::TimsDiaSlices::MsMsWindow::isMzInRange
bool isMzInRange(double mz) const
tell if given mz is in range for this window
Definition
timsdiaslices.cpp:37
pappso::TimsDiaSlices::MsMsWindow::SliceIndex
std::size_t SliceIndex
Definition
timsdiaslices.h:56
pappso::TimsDiaSlices::MsMsWindow::ScanNumEnd
std::size_t ScanNumEnd
Definition
timsdiaslices.h:59
pappso::TimsDiaSlices::MsMsWindow::IsolationWidth
double IsolationWidth
Definition
timsdiaslices.h:61
timsdata.h
pappsomspp
core
vendors
tims
timsdiaslices.h
Generated on
for libpappsomspp by
1.17.0