libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
pappso::cbor::psm::PsmCbor2Json Class Reference

#include <psmcbor2json.h>

Inheritance diagram for pappso::cbor::psm::PsmCbor2Json:
pappso::cbor::psm::PsmFileReaderBase pappso::cbor::CborStreamReaderInterface

Public Member Functions

 PsmCbor2Json (pappso::cbor::JsonStreamWriter *json_output_p)
 
virtual ~PsmCbor2Json ()
 
void close () override
 
- Public Member Functions inherited from pappso::cbor::psm::PsmFileReaderBase
 PsmFileReaderBase ()
 
virtual ~PsmFileReaderBase ()
 
void readCbor (QFile *cborp, pappso::UiMonitorInterface &monitor)
 
- Public Member Functions inherited from pappso::cbor::CborStreamReaderInterface
 CborStreamReaderInterface ()
 
virtual ~CborStreamReaderInterface ()
 

Protected Member Functions

void informationsReady (pappso::UiMonitorInterface &monitor) override
 
void logReady (pappso::UiMonitorInterface &monitor) override
 
void parameterMapReady (pappso::UiMonitorInterface &monitor) override
 
void fastaFilesReady (pappso::UiMonitorInterface &monitor) override
 
void readSample (pappso::UiMonitorInterface &monitor) override
 
void sampleListStarted (pappso::UiMonitorInterface &monitor) override
 
void sampleListFinished (pappso::UiMonitorInterface &monitor) override
 
void readScan (pappso::UiMonitorInterface &monitor) override
 
void readPsm (pappso::UiMonitorInterface &monitor) override
 
void readProteinMap (pappso::UiMonitorInterface &monitor) override
 
- Protected Member Functions inherited from pappso::cbor::psm::PsmFileReaderBase
void readRoot (pappso::UiMonitorInterface &monitor)
 
virtual void readInformations (pappso::UiMonitorInterface &monitor)
 
virtual void readLog (pappso::UiMonitorInterface &monitor)
 
virtual void readParameterMap (pappso::UiMonitorInterface &monitor)
 
virtual void psmReady (pappso::UiMonitorInterface &monitor)
 
virtual void proteinMapReady (pappso::UiMonitorInterface &monitor)
 
virtual void sampleStarted (pappso::UiMonitorInterface &monitor)
 
virtual void scanStarted (pappso::UiMonitorInterface &monitor)
 
virtual void scanFinished (pappso::UiMonitorInterface &monitor)
 
virtual void sampleFinished (pappso::UiMonitorInterface &monitor)
 
PsmFile readPsmFile (bool &is_ok)
 
void writePsmFile (CborStreamWriter &writer, const PsmFile &psm_file)
 
void writePsmFileList (CborStreamWriter &writer, const std::vector< PsmFile > &file_list)
 
PsmProteinRef readPsmProteinRef (bool &is_ok)
 
pappso::PeptideSp getCurrentPsmPeptideSp () const
 
pappso::QualifiedMassSpectrumSPtr getCurrentQualifiedMassSpectrumSPtr () const
 
bool currentProteinRefListContainsDecoy () const
 
bool currentProteinRefListContainsTarget () const
 
double getPrecursorMass (double mz_prec, uint charge) const
 convenient function do compute precusor ion mass
 
- Protected Member Functions inherited from pappso::cbor::CborStreamReaderInterface
bool getExpectedString ()
 
void initCborReader (QFile *pcborfile)
 

Protected Attributes

pappso::cbor::JsonStreamWritermp_jsonOutput
 
- Protected Attributes inherited from pappso::cbor::psm::PsmFileReaderBase
QStringList m_targetFastaFiles
 
QStringList m_decoyFastaFiles
 
PsmProteinMap m_proteinMap
 
QString m_currentSampleName
 
PsmFile m_currentPeaklistFile
 
std::vector< PsmFilem_currentIdentificationFileList
 
QCborMap m_cborInformations
 
QCborArray m_cborLog
 
QCborMap m_cborParameterMap
 
QCborMap m_cborScanId
 
QCborMap m_cborScanPrecursor
 
QCborMap m_cborScanMs2
 
QCborMap m_cborScanPsmEval
 
QString m_currentPsmProforma
 
std::vector< PsmProteinRefm_currentPsmProteinRefList
 
- Protected Attributes inherited from pappso::cbor::CborStreamReaderInterface
CborStreamReadermpa_cborReader = nullptr
 
QString m_expectedString
 
QByteArray m_data
 

Detailed Description

Todo
write docs

Definition at line 40 of file psmcbor2json.h.

Constructor & Destructor Documentation

◆ PsmCbor2Json()

pappso::cbor::psm::PsmCbor2Json::PsmCbor2Json ( pappso::cbor::JsonStreamWriter * json_output_p)

Default constructor

Definition at line 35 of file psmcbor2json.cpp.

36{
37 mp_jsonOutput = json_output_p;
38
39 *mp_jsonOutput << "{" << Qt::endl;
40}
pappso::cbor::JsonStreamWriter * mp_jsonOutput

References mp_jsonOutput.

◆ ~PsmCbor2Json()

pappso::cbor::psm::PsmCbor2Json::~PsmCbor2Json ( )
virtual

Destructor

Definition at line 43 of file psmcbor2json.cpp.

44{
45}

Member Function Documentation

◆ close()

void pappso::cbor::psm::PsmCbor2Json::close ( )
overridevirtual

Reimplemented from pappso::cbor::psm::PsmFileReaderBase.

Definition at line 48 of file psmcbor2json.cpp.

49{
50
51 mp_jsonOutput->endMap();
52}

References mp_jsonOutput.

◆ fastaFilesReady()

void pappso::cbor::psm::PsmCbor2Json::fastaFilesReady ( pappso::UiMonitorInterface & monitor)
overrideprotectedvirtual

Reimplemented from pappso::cbor::psm::PsmFileReaderBase.

Definition at line 55 of file psmcbor2json.cpp.

56{
57 if(!m_targetFastaFiles.isEmpty())
58 {
59 mp_jsonOutput->appendKey("target_fasta_files");
61 }
62 if(!m_decoyFastaFiles.isEmpty())
63 {
64 mp_jsonOutput->appendKey("decoy_fasta_files");
66 }
67}

References pappso::cbor::psm::PsmFileReaderBase::m_decoyFastaFiles, pappso::cbor::psm::PsmFileReaderBase::m_targetFastaFiles, and mp_jsonOutput.

◆ informationsReady()

void pappso::cbor::psm::PsmCbor2Json::informationsReady ( pappso::UiMonitorInterface & monitor)
overrideprotectedvirtual

Reimplemented from pappso::cbor::psm::PsmFileReaderBase.

Definition at line 70 of file psmcbor2json.cpp.

71{
72
73 mp_jsonOutput->appendKey("informations");
74 mp_jsonOutput->writeCborMap(m_cborInformations);
75}

References pappso::cbor::psm::PsmFileReaderBase::m_cborInformations, and mp_jsonOutput.

◆ logReady()

void pappso::cbor::psm::PsmCbor2Json::logReady ( pappso::UiMonitorInterface & monitor)
overrideprotectedvirtual

Reimplemented from pappso::cbor::psm::PsmFileReaderBase.

Definition at line 78 of file psmcbor2json.cpp.

79{
80 mp_jsonOutput->appendKey("log");
81 mp_jsonOutput->writeCborArray(m_cborLog);
82}

References pappso::cbor::psm::PsmFileReaderBase::m_cborLog, and mp_jsonOutput.

◆ parameterMapReady()

void pappso::cbor::psm::PsmCbor2Json::parameterMapReady ( pappso::UiMonitorInterface & monitor)
overrideprotectedvirtual

Reimplemented from pappso::cbor::psm::PsmFileReaderBase.

Definition at line 86 of file psmcbor2json.cpp.

87{
88 mp_jsonOutput->appendKey("parameter_map");
89 mp_jsonOutput->writeCborMap(m_cborParameterMap);
90}

References pappso::cbor::psm::PsmFileReaderBase::m_cborParameterMap, and mp_jsonOutput.

◆ readProteinMap()

void pappso::cbor::psm::PsmCbor2Json::readProteinMap ( pappso::UiMonitorInterface & monitor)
overrideprotectedvirtual

Reimplemented from pappso::cbor::psm::PsmFileReaderBase.

Definition at line 108 of file psmcbor2json.cpp.

109{
110 mp_jsonOutput->appendKey("protein_map");
111 mp_jsonOutput->startMap();
112 if(!mpa_cborReader->enterContainer())
113 {
114 throw pappso::PappsoException(QObject::tr("enterContainer in protein map failed"));
115 }
116 QString accession;
117 while(!mpa_cborReader->lastError() && mpa_cborReader->hasNext())
118 {
119 mpa_cborReader->decodeString(accession);
120 mp_jsonOutput->appendKey(accession);
121
122 QCborMap cbor_protein;
123 mpa_cborReader->readCborMap(cbor_protein);
124 mp_jsonOutput->writeCborMap(cbor_protein);
125 }
126
127 mpa_cborReader->leaveContainer();
128 mp_jsonOutput->endMap();
129}

References mp_jsonOutput, and pappso::cbor::CborStreamReaderInterface::mpa_cborReader.

◆ readPsm()

void pappso::cbor::psm::PsmCbor2Json::readPsm ( pappso::UiMonitorInterface & monitor)
overrideprotectedvirtual

Reimplemented from pappso::cbor::psm::PsmFileReaderBase.

Definition at line 315 of file psmcbor2json.cpp.

316{
317 bool is_ok;
318 mpa_cborReader->enterContainer();
319 mp_jsonOutput->startMap();
322 // "proforma": "AQEEM[+15.99491]AQVAK",
323 if(m_expectedString == "proforma")
324 {
325 if(!mpa_cborReader->decodeString(m_currentPsmProforma))
326 {
327 throw pappso::PappsoException("ERROR: proforma element in psm-scan is not a string");
328 }
330 }
331 else
332 {
333 throw pappso::PappsoException("ERROR: expecting proforma element in psm-scan");
334 }
335 //"protein_list" : [
336 //{
337 //"accession": "GRMZM2G083841_P01",
338 //"position": [15,236]
339 //}
340 //],
341
345 qDebug() << m_expectedString;
346 if(m_expectedString == "protein_list")
347 {
348 mpa_cborReader->enterContainer();
349 mp_jsonOutput->startArray();
350 QCborMap cbor_protein;
351 while(!mpa_cborReader->lastError() && mpa_cborReader->hasNext())
352 {
353 mpa_cborReader->readCborMap(cbor_protein);
354 mp_jsonOutput->writeCborMap(cbor_protein);
355 }
356 mpa_cborReader->leaveContainer();
357 mp_jsonOutput->endArray();
358 }
359 else
360 {
361 throw pappso::PappsoException("ERROR: expecting protein_list element in psm-scan");
362 }
363 //"eval": {
364 qDebug();
365 m_cborScanPsmEval.clear();
366 if(!getExpectedString())
367 {
368 throw pappso::PappsoException(
369 QObject::tr("ERROR: expecting eval element in psm-scan %1").arg(m_currentPsmProforma));
370 }
372 if(m_expectedString == "eval")
373 {
374 is_ok = mpa_cborReader->readCborMap(m_cborScanPsmEval);
375 if(!is_ok)
376 {
377 throw pappso::PappsoException("ERROR: eval element in psm-scan is not well formed");
378 }
379 mp_jsonOutput->writeCborMap(m_cborScanPsmEval);
380 }
381
382 qDebug() << m_expectedString;
383
384
385 mpa_cborReader->leaveContainer();
386 mp_jsonOutput->endMap();
387 qDebug();
388 psmReady(monitor);
389}
std::vector< PsmProteinRef > m_currentPsmProteinRefList
virtual void psmReady(pappso::UiMonitorInterface &monitor)

References pappso::cbor::CborStreamReaderInterface::getExpectedString(), pappso::cbor::psm::PsmFileReaderBase::m_cborScanPsmEval, pappso::cbor::psm::PsmFileReaderBase::m_currentPsmProforma, pappso::cbor::psm::PsmFileReaderBase::m_currentPsmProteinRefList, pappso::cbor::CborStreamReaderInterface::m_expectedString, mp_jsonOutput, pappso::cbor::CborStreamReaderInterface::mpa_cborReader, and pappso::cbor::psm::PsmFileReaderBase::psmReady().

Referenced by readScan().

◆ readSample()

void pappso::cbor::psm::PsmCbor2Json::readSample ( pappso::UiMonitorInterface & monitor)
overrideprotectedvirtual

Reimplemented from pappso::cbor::psm::PsmFileReaderBase.

Definition at line 234 of file psmcbor2json.cpp.

235{
236 //"name": "tandem2017_nopatch_20120906_balliau_extract_1_A01_urnb-1",
237 qDebug();
238 mpa_cborReader->enterContainer();
239 mp_jsonOutput->startMap();
241
242 qDebug() << m_expectedString;
244 if(m_expectedString == "name")
245 {
246 if(!mpa_cborReader->decodeString(m_currentSampleName))
247 {
248 throw pappso::PappsoException("sample name is not a string");
249 }
251 }
252 else
253 {
254 throw pappso::PappsoException("ERROR: expecting name element in sample");
255 }
256 //"identification_file_list": [{ "name":
257 //"/home/langella/data1/tandem/tandem2017_nopatch_20120906_balliau_extract_1_A01_urnb-1.xml",
258 //}],
259
261
262 qDebug() << m_expectedString;
264 if(m_expectedString == "identification_file_list")
265 {
266 bool is_ok;
267 mpa_cborReader->enterContainer();
268
269 while(!mpa_cborReader->lastError() && mpa_cborReader->hasNext())
270 {
272 }
273 mpa_cborReader->leaveContainer();
274
276 }
277 //"peaklist_file": {"name": "tandem2017_nopatch_20120906_balliau_extract_1_A01_urnb-1.mzml"
278 //},
279
280 if(m_expectedString == "peaklist_file")
281 {
282 bool is_ok;
284 }
285 else
286 {
287 throw pappso::PappsoException("ERROR: expecting peaklist_file element in sample");
288 }
289 //"scan_list": [
290 sampleStarted(monitor);
293 if(m_expectedString == "scan_list")
294 {
295 mpa_cborReader->enterContainer();
296 mp_jsonOutput->startArray();
297 while(!mpa_cborReader->lastError() && mpa_cborReader->hasNext())
298 {
299 readScan(monitor);
300 }
301 mpa_cborReader->leaveContainer();
302 mp_jsonOutput->endArray();
303 }
304 else
305 {
306 throw pappso::PappsoException("ERROR: expecting scan_list element in sample");
307 }
308 mpa_cborReader->leaveContainer();
309 mp_jsonOutput->endMap();
310
311 sampleFinished(monitor);
312}
void readScan(pappso::UiMonitorInterface &monitor) override
virtual void sampleStarted(pappso::UiMonitorInterface &monitor)
std::vector< PsmFile > m_currentIdentificationFileList
virtual void sampleFinished(pappso::UiMonitorInterface &monitor)

References pappso::cbor::CborStreamReaderInterface::getExpectedString(), pappso::cbor::psm::PsmFileReaderBase::m_currentIdentificationFileList, pappso::cbor::psm::PsmFileReaderBase::m_currentPeaklistFile, pappso::cbor::psm::PsmFileReaderBase::m_currentSampleName, pappso::cbor::CborStreamReaderInterface::m_expectedString, mp_jsonOutput, pappso::cbor::CborStreamReaderInterface::mpa_cborReader, pappso::cbor::psm::PsmFileReaderBase::readPsmFile(), readScan(), pappso::cbor::psm::PsmFileReaderBase::sampleFinished(), and pappso::cbor::psm::PsmFileReaderBase::sampleStarted().

◆ readScan()

void pappso::cbor::psm::PsmCbor2Json::readScan ( pappso::UiMonitorInterface & monitor)
overrideprotectedvirtual

Reimplemented from pappso::cbor::psm::PsmFileReaderBase.

Definition at line 133 of file psmcbor2json.cpp.

134{
135 qDebug();
136 m_cborScanId.clear();
137 if(!mpa_cborReader->enterContainer())
138 {
139 throw pappso::PappsoException(QObject::tr("enterContainer in scan failed"));
140 }
141 mp_jsonOutput->startMap();
142 //"id": {
143 //"index": 1976
144 //},
145 qDebug() << "scan begin";
146
147 if(!getExpectedString())
148 {
149 throw pappso::PappsoException(QObject::tr("getExpectedString in scan failed"));
150 }
151 qDebug() << m_expectedString;
152
154 if(m_expectedString == "id")
155 {
156 if(!mpa_cborReader->readCborMap(m_cborScanId))
157 {
158 throw pappso::PappsoException(QObject::tr("id element in scan is not a cbor map"));
159 }
160
161 mp_jsonOutput->writeCborMap(m_cborScanId);
162 }
163 else
164 {
165 throw pappso::PappsoException(
166 QObject::tr("ERROR: expecting id element in scan not %1").arg(m_expectedString));
167 }
168 //"precursor": {
169 //"z": 2,
170 //"mz": 1120.529471
171 //},
172
174 m_cborScanPrecursor.clear();
175 qDebug() << m_expectedString;
177 if(m_expectedString == "precursor")
178 {
179 if(!mpa_cborReader->readCborMap(m_cborScanPrecursor))
180 {
181 throw pappso::PappsoException(QObject::tr("precursor element in scan is not a cbor map"));
182 }
183 mp_jsonOutput->writeCborMap(m_cborScanPrecursor);
184 }
185 //"ms2": {PSM CBOR format documentation
186 //"rt": 12648.87,
187 //"mz" :[1,2,3,4],
188 //"intensity" : [1,2,3,4]
189 //},
190
192 qDebug() << m_expectedString;
193 m_cborScanMs2.clear();
195 if(m_expectedString == "ms2")
196 {
197 if(!mpa_cborReader->readCborMap(m_cborScanMs2))
198 {
199 throw pappso::PappsoException(
200 QObject::tr("ms2 element in scan is not a cbor map %1 %2:\n%3")
202 .arg(m_cborScanId.value("index").toInteger())
203 .arg(mpa_cborReader->lastError().toString()));
204 }
205 mp_jsonOutput->writeCborMap(m_cborScanMs2);
206 }
207 //"psm_list": [
208 scanStarted(monitor);
209
211 qDebug() << m_expectedString;
213 if(m_expectedString == "psm_list")
214 {
215 mpa_cborReader->enterContainer();
216 mp_jsonOutput->startArray();
217 while(!mpa_cborReader->lastError() && mpa_cborReader->hasNext())
218 {
219 readPsm(monitor);
220 }
221 mpa_cborReader->leaveContainer();
222 mp_jsonOutput->endArray();
223 }
224
225 mpa_cborReader->leaveContainer();
226 mp_jsonOutput->endMap();
227 qDebug() << "scan end";
228 scanFinished(monitor);
229 qDebug();
230}
void readPsm(pappso::UiMonitorInterface &monitor) override
virtual void scanStarted(pappso::UiMonitorInterface &monitor)
virtual void scanFinished(pappso::UiMonitorInterface &monitor)

References pappso::cbor::CborStreamReaderInterface::getExpectedString(), pappso::cbor::psm::PsmFileReaderBase::m_cborScanId, pappso::cbor::psm::PsmFileReaderBase::m_cborScanMs2, pappso::cbor::psm::PsmFileReaderBase::m_cborScanPrecursor, pappso::cbor::psm::PsmFileReaderBase::m_currentSampleName, pappso::cbor::CborStreamReaderInterface::m_expectedString, mp_jsonOutput, pappso::cbor::CborStreamReaderInterface::mpa_cborReader, readPsm(), pappso::cbor::psm::PsmFileReaderBase::scanFinished(), and pappso::cbor::psm::PsmFileReaderBase::scanStarted().

Referenced by readSample().

◆ sampleListFinished()

void pappso::cbor::psm::PsmCbor2Json::sampleListFinished ( pappso::UiMonitorInterface & monitor)
overrideprotectedvirtual

Reimplemented from pappso::cbor::psm::PsmFileReaderBase.

Definition at line 101 of file psmcbor2json.cpp.

102{
103
104 mp_jsonOutput->endArray();
105}

References mp_jsonOutput.

◆ sampleListStarted()

void pappso::cbor::psm::PsmCbor2Json::sampleListStarted ( pappso::UiMonitorInterface & monitor)
overrideprotectedvirtual

Reimplemented from pappso::cbor::psm::PsmFileReaderBase.

Definition at line 93 of file psmcbor2json.cpp.

94{
95
96 mp_jsonOutput->appendKey("sample_list");
97 mp_jsonOutput->startArray();
98}

References mp_jsonOutput.

Member Data Documentation

◆ mp_jsonOutput


The documentation for this class was generated from the following files: