libpappsomspp
Library for mass spectrometry
Toggle main menu visibility
Loading...
Searching...
No Matches
psmspecglob.cpp
Go to the documentation of this file.
1
/**
2
* \file pappsomspp/processing/cbor/psm/evalscan/psmspecglob.cpp
3
* \date 19/07/2025
4
* \author Olivier Langella
5
* \brief compute specglob alignment on scan's PSM
6
*/
7
8
/*******************************************************************************
9
* Copyright (c) 2025 Olivier Langella <Olivier.Langella@universite-paris-saclay.fr>.
10
*
11
* This file is part of PAPPSOms-tools.
12
*
13
* PAPPSOms-tools 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-tools 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-tools. If not, see <http://www.gnu.org/licenses/>.
25
*
26
******************************************************************************/
27
28
#include "
psmspecglob.h
"
29
#include "
psmspecglobscan.h
"
30
#include "
pappsomspp/core/processing/filters/filtersuitestring.h
"
31
#include "
pappsomspp/core/processing/filters/filterresample.h
"
32
#include "
pappsomspp/core/processing/filters/filterpass.h
"
33
#include "
pappsomspp/core/processing/filters/filterchargedeconvolution.h
"
34
35
pappso::cbor::psm::PsmSpecGlob::PsmSpecGlob
(std::size_t buffer_scan_size,
36
pappso::cbor::CborStreamWriter
*cbor_output_p,
37
const
QJsonObject ¶meters)
38
:
PsmFileScanProcessAndCopy
(buffer_scan_size, cbor_output_p,
"SpecGlob"
)
39
{
40
qDebug();
41
m_specglobParameters
= parameters;
42
43
if
(parameters.value(
"fragment_tolerance_unit"
).toString() ==
"dalton"
)
44
{
45
m_fragmentTolerance
=
pappso::PrecisionFactory::getDaltonInstance
(
46
parameters.value(
"fragment_tolerance"
).toDouble());
47
}
48
else
if
(parameters.value(
"fragment_tolerance_unit"
).toString() ==
"ppm"
)
49
{
50
m_fragmentTolerance
=
51
pappso::PrecisionFactory::getPpmInstance
(parameters.value(
"fragment_tolerance"
).toDouble());
52
}
53
54
QJsonObject spectrum_param = parameters.value(
"spectrum"
).toObject();
55
56
m_minimumMz
= spectrum_param.value(
"minimum_mz"
).toDouble();
57
m_nMostIntense
= spectrum_param.value(
"n_most_intense"
).toInt();
58
m_deisotope
= spectrum_param.value(
"deisotope"
).toBool();
59
qDebug();
60
}
61
62
pappso::cbor::psm::PsmSpecGlob::~PsmSpecGlob
()
63
{
64
}
65
66
void
67
pappso::cbor::psm::PsmSpecGlob::parameterMapReady
(
pappso::UiMonitorInterface
&monitor
68
[[maybe_unused]])
69
{
70
qDebug();
71
QCborMap cbor_specglob_parameters = QCborValue::fromJsonValue(
m_specglobParameters
).toMap();
72
73
74
if
(
m_cborParameterMap
.contains(QString(
"matcher"
)))
75
{
76
m_isProteinMatcherResult
=
true
;
77
}
78
79
m_cborParameterMap
.insert(QString(
"specglob"
), cbor_specglob_parameters);
80
81
82
mp_cborOutput
->append(
"parameter_map"
);
83
mp_cborOutput
->writeCborMap(
m_cborParameterMap
);
84
qDebug();
85
}
86
87
88
void
89
pappso::cbor::psm::PsmSpecGlob::filterMassSpectrum
(
pappso::MassSpectrum
&mass_spectrum)
const
90
{
91
if
(
m_deisotope
)
92
pappso::FilterChargeDeconvolution
(
m_fragmentTolerance
).
filter
(mass_spectrum);
93
pappso::FilterResampleKeepGreater
(
m_minimumMz
).
filter
(mass_spectrum);
94
pappso::FilterGreatestY
(
m_nMostIntense
).
filter
(mass_spectrum);
95
}
96
97
98
pappso::cbor::psm::CborScanMapBase
*
99
pappso::cbor::psm::PsmSpecGlob::newCborScanMap
()
100
{
101
102
return
new
PsmSpecGlobScan
(*
this
,
m_fragmentTolerance
);
103
}
104
105
106
void
107
pappso::cbor::psm::PsmSpecGlob::processBufferScanDone
(
pappso::UiMonitorInterface
&monitor)
108
{
109
110
111
PsmFileScanProcessAndCopy::processBufferScanDone
(monitor);
112
m_countScanProcessed
+=
m_bufferScanSize
;
113
114
monitor.
setStatus
(QObject::tr(
"%1 scan processed"
).arg(
m_countScanProcessed
));
115
}
pappso::FilterChargeDeconvolution
Definition
filterchargedeconvolution.h:43
pappso::FilterChargeDeconvolution::filter
Trace & filter(Trace &data_points) const override
get all the datapoints and remove different isotope and add their intensity and change to charge = 1 ...
Definition
filterchargedeconvolution.cpp:115
pappso::FilterGreatestY
keep N datapoints form the greatest intensities to the lowest
Definition
filterpass.h:96
pappso::FilterGreatestY::filter
Trace & filter(Trace &data_points) const override
Definition
filterpass.cpp:163
pappso::FilterResampleKeepGreater
Definition
filterresample.h:55
pappso::FilterResampleKeepGreater::filter
Trace & filter(Trace &trace) const override
Definition
filterresample.cpp:79
pappso::MassSpectrum
Class to represent a mass spectrum.
Definition
massspectrum.h:70
pappso::PrecisionFactory::getPpmInstance
static PrecisionPtr getPpmInstance(pappso_double value)
get a ppm precision pointer
Definition
precision.cpp:155
pappso::PrecisionFactory::getDaltonInstance
static PrecisionPtr getDaltonInstance(pappso_double value)
get a Dalton precision pointer
Definition
precision.cpp:136
pappso::UiMonitorInterface
Definition
uimonitorinterface.h:50
pappso::UiMonitorInterface::setStatus
virtual void setStatus(const QString &status)=0
current status of the process
pappso::cbor::CborStreamWriter
overrides QCborStreamWriter base class to provide convenient functions
Definition
cborstreamwriter.h:46
pappso::cbor::psm::CborScanMapBase
Definition
cborscanmapbase.h:48
pappso::cbor::psm::PsmFileReaderBase::m_cborParameterMap
QCborMap m_cborParameterMap
Definition
psmfilereaderbase.h:135
pappso::cbor::psm::PsmFileScanProcessAndCopy::mp_cborOutput
CborStreamWriter * mp_cborOutput
Definition
psmfilescanprocessandcopy.h:87
pappso::cbor::psm::PsmFileScanProcessAndCopy::PsmFileScanProcessAndCopy
PsmFileScanProcessAndCopy(std::size_t buffer_scan_size, CborStreamWriter *cbor_output_p, const QString &operation)
Definition
psmfilescanprocessandcopy.cpp:41
pappso::cbor::psm::PsmFileScanProcessAndCopy::processBufferScanDone
virtual void processBufferScanDone(pappso::UiMonitorInterface &monitor) override
Definition
psmfilescanprocessandcopy.cpp:169
pappso::cbor::psm::PsmFileScanProcess::m_bufferScanSize
std::size_t m_bufferScanSize
Definition
psmfilescanprocess.h:73
pappso::cbor::psm::PsmSpecGlob::m_isProteinMatcherResult
bool m_isProteinMatcherResult
Definition
psmspecglob.h:73
pappso::cbor::psm::PsmSpecGlob::~PsmSpecGlob
virtual ~PsmSpecGlob()
Definition
psmspecglob.cpp:62
pappso::cbor::psm::PsmSpecGlob::m_minimumMz
double m_minimumMz
Definition
psmspecglob.h:70
pappso::cbor::psm::PsmSpecGlob::newCborScanMap
pappso::cbor::psm::CborScanMapBase * newCborScanMap() override
Definition
psmspecglob.cpp:99
pappso::cbor::psm::PsmSpecGlob::m_fragmentTolerance
pappso::PrecisionPtr m_fragmentTolerance
Definition
psmspecglob.h:69
pappso::cbor::psm::PsmSpecGlob::m_specglobParameters
QJsonObject m_specglobParameters
Definition
psmspecglob.h:68
pappso::cbor::psm::PsmSpecGlob::processBufferScanDone
virtual void processBufferScanDone(pappso::UiMonitorInterface &monitor) override
Definition
psmspecglob.cpp:107
pappso::cbor::psm::PsmSpecGlob::filterMassSpectrum
void filterMassSpectrum(pappso::MassSpectrum &mass_spectrum) const
Definition
psmspecglob.cpp:89
pappso::cbor::psm::PsmSpecGlob::parameterMapReady
void parameterMapReady(pappso::UiMonitorInterface &monitor) override
Definition
psmspecglob.cpp:67
pappso::cbor::psm::PsmSpecGlob::PsmSpecGlob
PsmSpecGlob(std::size_t buffer_scan_size, CborStreamWriter *cbor_output_p, const QJsonObject ¶meters)
Definition
psmspecglob.cpp:35
pappso::cbor::psm::PsmSpecGlob::m_deisotope
bool m_deisotope
Definition
psmspecglob.h:72
pappso::cbor::psm::PsmSpecGlob::m_countScanProcessed
std::size_t m_countScanProcessed
Definition
psmspecglob.h:74
pappso::cbor::psm::PsmSpecGlob::m_nMostIntense
std::size_t m_nMostIntense
Definition
psmspecglob.h:71
pappso::cbor::psm::PsmSpecGlob::PsmSpecGlobScan
friend PsmSpecGlobScan
Definition
psmspecglob.h:42
filterchargedeconvolution.h
filterpass.h
filterresample.h
filtersuitestring.h
psmspecglob.h
psmspecglobscan.h
pappsomspp
core
processing
cbor
psm
evalscan
psmspecglob.cpp
Generated on
for libpappsomspp by
1.17.0