libpappsomspp
Library for mass spectrometry
Toggle main menu visibility
Loading...
Searching...
No Matches
msrunxicextractordisk.h
Go to the documentation of this file.
1
/**
2
* \file pappsomspp/xicextractor/private/msrunxicextractordisk.h
3
* \date 12/05/2018
4
* \author Olivier Langella
5
* \brief MsRunReader based XIC extractor featuring disk cache
6
*/
7
8
/*******************************************************************************
9
* Copyright (c) 2018 Olivier Langella <Olivier.Langella@u-psud.fr>.
10
*
11
* This file is part of the PAPPSOms++ library.
12
*
13
* PAPPSOms++ is free software: you can redistribute it and/or modify
14
* it under the terms of the GNU General Public License as published by
15
* the Free Software Foundation, either version 3 of the License, or
16
* (at your option) any later version.
17
*
18
* PAPPSOms++ is distributed in the hope that it will be useful,
19
* but WITHOUT ANY WARRANTY; without even the implied warranty of
20
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
* GNU General Public License for more details.
22
*
23
* You should have received a copy of the GNU General Public License
24
* along with PAPPSOms++. If not, see <http://www.gnu.org/licenses/>.
25
*
26
******************************************************************************/
27
28
29
#pragma once
30
31
32
#include "
msrunxicextractor.h
"
33
#include "
msrunslice.h
"
34
#include <QTemporaryDir>
35
#include <deque>
36
#include <QMutex>
37
38
39
class
MsRunXicExtractorFactory;
40
41
namespace
pappso
42
{
43
44
class
MsRunXicExtractorDisk
:
public
MsRunXicExtractor
45
{
46
friend
MsRunXicExtractorFactory
;
47
48
public
:
49
MsRunXicExtractorDisk
(
MsRunReaderSPtr
&msrun_reader);
50
MsRunXicExtractorDisk
(
const
MsRunXicExtractorDisk
&other);
51
virtual
~MsRunXicExtractorDisk
();
52
53
54
protected
:
55
MsRunXicExtractorDisk
(
MsRunReaderSPtr
&msrun_reader,
56
const
QDir &temporary_dir);
57
58
virtual
void
protectedExtractXicCoordSPtrList
(
59
UiMonitorInterface
&monitor,
60
std::vector<XicCoordSPtr>::iterator it_xic_coord_list_begin,
61
std::vector<XicCoordSPtr>::iterator it_xic_coord_list_end)
override
;
62
63
64
void
prepareExtractor
();
65
66
void
serializeMsRun
();
67
68
69
/** @brief store MassSpectrum slices (by daltons) for a given retention time
70
* @param slice_vector mass spectrum chunks (by daltons)
71
* @param ipos the position in the retention time vector
72
*/
73
virtual
void
storeSlices
(std::map<unsigned int, MassSpectrum> &slice_vector,
74
std::size_t ipos);
75
76
/** @brief append a slice on disk (in a file)
77
* @param slice_number the slice number == dalton integer
78
* @param spectrum the part of the mass spectrum (mz/intensity) in the range
79
* of the slice number
80
* @param ipos the position in the retention time vector
81
*/
82
void
appendSliceOnDisk
(
unsigned
int
slice_number,
83
MassSpectrum
&spectrum,
84
std::size_t ipos);
85
86
/** @brief retrieve all the slices corresponding to a given mz_range
87
* @param mz_range desired mz range
88
*/
89
std::vector<MsRunSliceSPtr>
acquireSlices
(
const
MzRange
&mz_range);
90
91
/** @brief get one slice from disk by her slice number (dalton)
92
* @param slice_number the slice number == dalton integer
93
*/
94
MsRunSliceSPtr
unserializeSlice
(
unsigned
int
slice_number);
95
96
virtual
void
endPwizRead
();
97
98
protected
:
99
QString
m_temporaryDirectory
;
100
QTemporaryDir *
mpa_temporaryDirectory
=
nullptr
;
101
std::vector<pappso::pappso_double>
m_retentionTimeList
;
102
103
pappso::pappso_double
m_maxMz
= 0;
104
pappso::pappso_double
m_minMz
= 5000;
105
106
std::size_t
m_rtSize
= 0;
107
108
std::deque<MsRunSliceSPtr>
m_msRunSliceListCache
;
109
110
QMutex
m_mutex
;
111
112
113
private
:
114
void
extractOneXicCoord
(
XicCoord
&xic_coord);
115
};
116
117
118
}
// namespace pappso
pappso::MassSpectrum
Class to represent a mass spectrum.
Definition
massspectrum.h:70
pappso::MsRunXicExtractorDisk::endPwizRead
virtual void endPwizRead()
Definition
msrunxicextractordisk.cpp:347
pappso::MsRunXicExtractorDisk::acquireSlices
std::vector< MsRunSliceSPtr > acquireSlices(const MzRange &mz_range)
retrieve all the slices corresponding to a given mz_range
Definition
msrunxicextractordisk.cpp:315
pappso::MsRunXicExtractorDisk::prepareExtractor
void prepareExtractor()
Definition
msrunxicextractordisk.cpp:67
pappso::MsRunXicExtractorDisk::m_retentionTimeList
std::vector< pappso::pappso_double > m_retentionTimeList
Definition
msrunxicextractordisk.h:101
pappso::MsRunXicExtractorDisk::~MsRunXicExtractorDisk
virtual ~MsRunXicExtractorDisk()
Definition
msrunxicextractordisk.cpp:58
pappso::MsRunXicExtractorDisk::MsRunXicExtractorFactory
friend MsRunXicExtractorFactory
Definition
msrunxicextractordisk.h:46
pappso::MsRunXicExtractorDisk::MsRunXicExtractorDisk
MsRunXicExtractorDisk(MsRunReaderSPtr &msrun_reader)
pappso::MsRunXicExtractorDisk::m_msRunSliceListCache
std::deque< MsRunSliceSPtr > m_msRunSliceListCache
Definition
msrunxicextractordisk.h:108
pappso::MsRunXicExtractorDisk::serializeMsRun
void serializeMsRun()
Definition
msrunxicextractordisk.cpp:162
pappso::MsRunXicExtractorDisk::storeSlices
virtual void storeSlices(std::map< unsigned int, MassSpectrum > &slice_vector, std::size_t ipos)
store MassSpectrum slices (by daltons) for a given retention time
Definition
msrunxicextractordisk.cpp:232
pappso::MsRunXicExtractorDisk::m_maxMz
pappso::pappso_double m_maxMz
Definition
msrunxicextractordisk.h:103
pappso::MsRunXicExtractorDisk::m_rtSize
std::size_t m_rtSize
Definition
msrunxicextractordisk.h:106
pappso::MsRunXicExtractorDisk::extractOneXicCoord
void extractOneXicCoord(XicCoord &xic_coord)
Definition
msrunxicextractordisk.cpp:111
pappso::MsRunXicExtractorDisk::m_minMz
pappso::pappso_double m_minMz
Definition
msrunxicextractordisk.h:104
pappso::MsRunXicExtractorDisk::appendSliceOnDisk
void appendSliceOnDisk(unsigned int slice_number, MassSpectrum &spectrum, std::size_t ipos)
append a slice on disk (in a file)
Definition
msrunxicextractordisk.cpp:246
pappso::MsRunXicExtractorDisk::protectedExtractXicCoordSPtrList
virtual void protectedExtractXicCoordSPtrList(UiMonitorInterface &monitor, std::vector< XicCoordSPtr >::iterator it_xic_coord_list_begin, std::vector< XicCoordSPtr >::iterator it_xic_coord_list_end) override
Definition
msrunxicextractordisk.cpp:93
pappso::MsRunXicExtractorDisk::mpa_temporaryDirectory
QTemporaryDir * mpa_temporaryDirectory
Definition
msrunxicextractordisk.h:100
pappso::MsRunXicExtractorDisk::m_mutex
QMutex m_mutex
Definition
msrunxicextractordisk.h:110
pappso::MsRunXicExtractorDisk::unserializeSlice
MsRunSliceSPtr unserializeSlice(unsigned int slice_number)
get one slice from disk by her slice number (dalton)
Definition
msrunxicextractordisk.cpp:279
pappso::MsRunXicExtractorDisk::m_temporaryDirectory
QString m_temporaryDirectory
Definition
msrunxicextractordisk.h:99
pappso::MsRunXicExtractor::MsRunXicExtractor
MsRunXicExtractor(const MsRunXicExtractor &other)
Definition
msrunxicextractor.cpp:73
pappso::MzRange
Definition
mzrange.h:46
pappso::UiMonitorInterface
Definition
uimonitorinterface.h:50
msrunslice.h
msrunxicextractor.h
pappso
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition
aa.cpp:39
pappso::MsRunReaderSPtr
std::shared_ptr< MsRunReader > MsRunReaderSPtr
Definition
msrunreader.h:57
pappso::MsRunSliceSPtr
std::shared_ptr< const MsRunSlice > MsRunSliceSPtr
Definition
msrunslice.h:40
pappso::pappso_double
double pappso_double
A type definition for doubles.
Definition
types.h:60
pappso::XicCoord
coordinates of the XIC to extract and the resulting XIC after extraction
Definition
xiccoord.h:68
pappsomspp
core
xicextractor
private
msrunxicextractordisk.h
Generated on
for libpappsomspp by
1.17.0