libpappsomspp
Library for mass spectrometry
psmfilereaderbase.h
Go to the documentation of this file.
1/**
2 * \file pappsomspp/processing/cbor/psm/psmfilereaderbase.h
3 * \date 05/07/2025
4 * \author Olivier Langella
5 * \brief Base class to read CBOR PSM file
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#pragma once
28
29#include "../cborstreamreaderinterface.h"
30#include "../../uimonitor/uimonitorinterface.h"
31#include "psmproteinmap.h"
32#include "../../../peptide/peptide.h"
33#include "../../../massspectrum/qualifiedmassspectrum.h"
34#include <QCborArray>
35
36
37namespace pappso::cbor::psm
38{
39struct PsmFile
40{
41 QString name;
42};
43
44
45/**
46 * @todo write docs
47 */
49{
50 public:
51 /**
52 * Default constructor
53 */
55
56 /**
57 * Destructor
58 */
59 virtual ~PsmFileReaderBase();
60 void readCbor(QFile *cborp, pappso::UiMonitorInterface &monitor);
61
63 {
64 QString accession;
65 std::vector<std::size_t> positions;
66 };
67
68 virtual void close();
69
70 protected:
72 virtual void readInformations(pappso::UiMonitorInterface &monitor);
73 virtual void readLog(pappso::UiMonitorInterface &monitor);
74 virtual void readParameterMap(pappso::UiMonitorInterface &monitor);
75 virtual void readProteinMap(pappso::UiMonitorInterface &monitor);
76 virtual void readSample(pappso::UiMonitorInterface &monitor);
77 virtual void readScan(pappso::UiMonitorInterface &monitor);
78 virtual void readPsm(pappso::UiMonitorInterface &monitor);
79 virtual void psmReady(pappso::UiMonitorInterface &monitor);
80 virtual void logReady(pappso::UiMonitorInterface &monitor);
81 virtual void informationsReady(pappso::UiMonitorInterface &monitor);
82 virtual void parameterMapReady(pappso::UiMonitorInterface &monitor);
83 virtual void fastaFilesReady(pappso::UiMonitorInterface &monitor);
84 virtual void proteinMapReady(pappso::UiMonitorInterface &monitor);
85 virtual void sampleListStarted(pappso::UiMonitorInterface &monitor);
86 virtual void sampleStarted(pappso::UiMonitorInterface &monitor);
87 virtual void scanStarted(pappso::UiMonitorInterface &monitor);
88 virtual void scanFinished(pappso::UiMonitorInterface &monitor);
89 virtual void sampleFinished(pappso::UiMonitorInterface &monitor);
91 PsmFile readPsmFile(bool &is_ok);
92 void writePsmFile(CborStreamWriter &writer, const PsmFile &psm_file);
93 void writePsmFileList(CborStreamWriter &writer, const std::vector<PsmFile> &file_list);
95
96
99
100
103
104 /** @brief convenient function do compute precusor ion mass
105 */
106 double getPrecursorMass(double mz_prec, uint charge) const;
107
108
109 protected:
111 QStringList m_decoyFastaFiles;
117 QCborArray m_cborLog;
119 QCborMap m_cborScanId;
124 std::vector<PsmProteinRef> m_currentPsmProteinRefList;
125};
126} // namespace pappso::cbor::psm
std::vector< PsmProteinRef > m_currentPsmProteinRefList
pappso::QualifiedMassSpectrumSPtr getCurrentQualifiedMassSpectrumSPtr() const
pappso::PeptideSp getCurrentPsmPeptideSp() const
virtual void sampleListStarted(pappso::UiMonitorInterface &monitor)
void writePsmFileList(CborStreamWriter &writer, const std::vector< PsmFile > &file_list)
double getPrecursorMass(double mz_prec, uint charge) const
convenient function do compute precusor ion mass
PsmProteinRef readPsmProteinRef(bool &is_ok)
virtual void logReady(pappso::UiMonitorInterface &monitor)
virtual void scanStarted(pappso::UiMonitorInterface &monitor)
virtual void readPsm(pappso::UiMonitorInterface &monitor)
virtual void readLog(pappso::UiMonitorInterface &monitor)
virtual void proteinMapReady(pappso::UiMonitorInterface &monitor)
virtual void sampleStarted(pappso::UiMonitorInterface &monitor)
virtual void readParameterMap(pappso::UiMonitorInterface &monitor)
void readCbor(QFile *cborp, pappso::UiMonitorInterface &monitor)
virtual void readScan(pappso::UiMonitorInterface &monitor)
virtual void readInformations(pappso::UiMonitorInterface &monitor)
virtual void scanFinished(pappso::UiMonitorInterface &monitor)
virtual void sampleListFinished(pappso::UiMonitorInterface &monitor)
virtual void psmReady(pappso::UiMonitorInterface &monitor)
virtual void informationsReady(pappso::UiMonitorInterface &monitor)
void readRoot(pappso::UiMonitorInterface &monitor)
std::vector< PsmFile > m_currentIdentificationFileList
void writePsmFile(CborStreamWriter &writer, const PsmFile &psm_file)
virtual void fastaFilesReady(pappso::UiMonitorInterface &monitor)
virtual void parameterMapReady(pappso::UiMonitorInterface &monitor)
virtual void readProteinMap(pappso::UiMonitorInterface &monitor)
virtual void readSample(pappso::UiMonitorInterface &monitor)
virtual void sampleFinished(pappso::UiMonitorInterface &monitor)
std::shared_ptr< QualifiedMassSpectrum > QualifiedMassSpectrumSPtr
std::shared_ptr< const Peptide > PeptideSp
unsigned int uint
Definition: types.h:59
PAPPSO CBOR protein map.