libpappsomspp
Library for mass spectrometry
Toggle main menu visibility
Loading...
Searching...
No Matches
mzcborprecursorfinder.h
Go to the documentation of this file.
1
/**
2
* \file pappsomspp/core/processing/cbor/mzcbor/copyreplace/mzcborprecursorfinder.h
3
* \date 2/10/2026
4
* \author Olivier Langella
5
* \brief read mzcbor stream or file, process it and write processed mzcbor output
6
*/
7
8
/*******************************************************************************
9
* Copyright (c) 2026 Olivier Langella <Olivier.Langella@cnrs.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
29
#pragma once
30
#include "
mzcborcopyreplacebase.h
"
31
#include "
pappsomspp/core/processing/cbor/mzcbor/copyreplace/qcborspectrum.h
"
32
#include "
pappsomspp/core/trace/trace.h
"
33
#include <cstddef>
34
#include <cstdint>
35
#include <deque>
36
#include <limits>
37
#include <qcontainerfwd.h>
38
#include <qjsonobject.h>
39
#include <vector>
40
namespace
pappso
41
{
42
namespace
cbor
43
{
44
namespace
mzcbor
45
{
46
/**
47
* @brief base class to transform mzCBOR stream in a new mzCBOR output stream
48
*
49
* ensures stream read on regular file or any readable device
50
*/
51
class
PMSPP_LIB_DECL
MzcborPrecursorFinder
:
public
MzcborCopyReplaceBase
52
{
53
public
:
54
/**
55
* Default constructor
56
*/
57
MzcborPrecursorFinder
(
CborStreamWriter
*cbor_output_p,
const
QJsonObject &json_params);
58
59
/**
60
* Destructor
61
*/
62
virtual
~MzcborPrecursorFinder
();
63
64
void
setRetentionTimeRangeInSeconds
(
double
rt_start,
double
rt_stop);
65
66
67
protected
:
68
virtual
void
processQcborSpectrum
(
SpectrumTube
&spectrum_tube,
QcborSpectrum
&cbor_spectrum);
69
std::vector<QcborSpectrum>
findPotentialPrecursorIonData
(
const
QcborSpectrum
&ms1_spectrum,
70
const
QcborSpectrum
&ms2_spectrum,
71
const
QcborSpectrumPrecursor
&precursor);
72
73
private
:
74
QJsonValue
getParameterValue
(
const
QString &name)
const
;
75
76
private
:
77
QJsonObject
m_parameters
;
78
std::vector<std::int8_t>
m_potentialPrecursorChargeStateList
= {1, 2, 3};
79
double
m_rtStart
= 0;
80
double
m_rtStop
= std::numeric_limits<double>::max();
81
82
std::map<QString, QString>
m_ms1idOldToNew
;
83
std::deque<std::pair<QString, QcborSpectrum>>
m_spectrumMs1List
;
84
std::size_t
m_maxSpectrumMs1ListSize
= 100;
85
pappso::PrecisionPtr
m_ms2Tolerance
;
86
pappso::PrecisionPtr
m_ms1Tolerance
;
87
double
m_intensityRatioThreshold
= 0.3;
88
std::size_t
m_minimumComplementIon
= 1;
89
double
m_ms2minimumMz
= 150;
90
std::size_t
m_ms2nMostIntense
= 60;
91
92
std::deque<std::pair<const QcborSpectrum *, TraceSPtr>>
m_cacheMs1Trace
;
93
};
94
}
// namespace mzcbor
95
}
// namespace cbor
96
}
// namespace pappso
pappso::cbor::CborStreamWriter
overrides QCborStreamWriter base class to provide convenient functions
Definition
cborstreamwriter.h:46
pappso::cbor::mzcbor::MzcborCopyReplaceBase::MzcborCopyReplaceBase
MzcborCopyReplaceBase(CborStreamWriter *cbor_output_p, const QString &operation)
Definition
mzcborcopyreplacebase.cpp:43
pappso::cbor::mzcbor::MzcborPrecursorFinder::m_ms2Tolerance
pappso::PrecisionPtr m_ms2Tolerance
Definition
mzcborprecursorfinder.h:85
pappso::cbor::mzcbor::MzcborPrecursorFinder::m_ms2nMostIntense
std::size_t m_ms2nMostIntense
Definition
mzcborprecursorfinder.h:90
pappso::cbor::mzcbor::MzcborPrecursorFinder::m_minimumComplementIon
std::size_t m_minimumComplementIon
Definition
mzcborprecursorfinder.h:88
pappso::cbor::mzcbor::MzcborPrecursorFinder::m_rtStart
double m_rtStart
Definition
mzcborprecursorfinder.h:79
pappso::cbor::mzcbor::MzcborPrecursorFinder::findPotentialPrecursorIonData
std::vector< QcborSpectrum > findPotentialPrecursorIonData(const QcborSpectrum &ms1_spectrum, const QcborSpectrum &ms2_spectrum, const QcborSpectrumPrecursor &precursor)
Definition
mzcborprecursorfinder.cpp:251
pappso::cbor::mzcbor::MzcborPrecursorFinder::setRetentionTimeRangeInSeconds
void setRetentionTimeRangeInSeconds(double rt_start, double rt_stop)
Definition
mzcborprecursorfinder.cpp:128
pappso::cbor::mzcbor::MzcborPrecursorFinder::m_ms1Tolerance
pappso::PrecisionPtr m_ms1Tolerance
Definition
mzcborprecursorfinder.h:86
pappso::cbor::mzcbor::MzcborPrecursorFinder::processQcborSpectrum
virtual void processQcborSpectrum(SpectrumTube &spectrum_tube, QcborSpectrum &cbor_spectrum)
Definition
mzcborprecursorfinder.cpp:134
pappso::cbor::mzcbor::MzcborPrecursorFinder::m_spectrumMs1List
std::deque< std::pair< QString, QcborSpectrum > > m_spectrumMs1List
Definition
mzcborprecursorfinder.h:83
pappso::cbor::mzcbor::MzcborPrecursorFinder::m_rtStop
double m_rtStop
Definition
mzcborprecursorfinder.h:80
pappso::cbor::mzcbor::MzcborPrecursorFinder::m_maxSpectrumMs1ListSize
std::size_t m_maxSpectrumMs1ListSize
Definition
mzcborprecursorfinder.h:84
pappso::cbor::mzcbor::MzcborPrecursorFinder::m_ms1idOldToNew
std::map< QString, QString > m_ms1idOldToNew
Definition
mzcborprecursorfinder.h:82
pappso::cbor::mzcbor::MzcborPrecursorFinder::MzcborPrecursorFinder
MzcborPrecursorFinder(CborStreamWriter *cbor_output_p, const QJsonObject &json_params)
Definition
mzcborprecursorfinder.cpp:54
pappso::cbor::mzcbor::MzcborPrecursorFinder::m_potentialPrecursorChargeStateList
std::vector< std::int8_t > m_potentialPrecursorChargeStateList
Definition
mzcborprecursorfinder.h:78
pappso::cbor::mzcbor::MzcborPrecursorFinder::m_intensityRatioThreshold
double m_intensityRatioThreshold
Definition
mzcborprecursorfinder.h:87
pappso::cbor::mzcbor::MzcborPrecursorFinder::m_cacheMs1Trace
std::deque< std::pair< const QcborSpectrum *, TraceSPtr > > m_cacheMs1Trace
Definition
mzcborprecursorfinder.h:92
pappso::cbor::mzcbor::MzcborPrecursorFinder::m_ms2minimumMz
double m_ms2minimumMz
Definition
mzcborprecursorfinder.h:89
pappso::cbor::mzcbor::MzcborPrecursorFinder::m_parameters
QJsonObject m_parameters
Definition
mzcborprecursorfinder.h:77
pappso::cbor::mzcbor::MzcborPrecursorFinder::getParameterValue
QJsonValue getParameterValue(const QString &name) const
Definition
mzcborprecursorfinder.cpp:111
pappso::cbor::mzcbor::QcborSpectrumPrecursor
Definition
qcborspectrumprecursor.h:47
pappso::cbor::mzcbor::QcborSpectrum
Definition
qcborspectrum.h:48
pappso::cbor::mzcbor::SpectrumTube
Definition
spectrumtube.h:49
PMSPP_LIB_DECL
#define PMSPP_LIB_DECL
Definition
export-import-config.h:14
mzcborcopyreplacebase.h
pappso::cbor::mzcbor
Definition
binarydataarray.h:41
pappso::cbor
Definition
cborstreamreader.cpp:35
pappso
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition
aa.cpp:39
pappso::PrecisionPtr
const PrecisionBase * PrecisionPtr
Definition
precision.h:122
qcborspectrum.h
Low level CBOR map to store an mzCBOR Spectrum object.
trace.h
pappsomspp
core
processing
cbor
mzcbor
copyreplace
mzcborprecursorfinder.h
Generated on
for libpappsomspp by
1.17.0