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
 
QCborMap m_cborScanPsmProps
 
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

◆ 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}
void writeArray(QStringList &str_list)
void appendKey(const QString &key)

◆ 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.

◆ 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.

◆ 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.

◆ 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");
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();
129}
bool readCborMap(QCborMap &cbor_map)
bool decodeString(QString &the_str)
decode the current cbor value as a string the point to the next value the current value is decoded as...

◆ 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();
322 // "proforma": "AQEEM[+15.99491]AQVAK",
323 if(m_expectedString == "proforma")
324 {
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 QCborArray cbor_protein_list;
349 mpa_cborReader->readCborArray(cbor_protein_list);
350 mp_jsonOutput->writeCborArray(cbor_protein_list);
351 }
352 else
353 {
354 throw pappso::PappsoException("ERROR: expecting protein_list element in psm-scan");
355 }
356 //"eval": {
357 qDebug();
358 m_cborScanPsmProps.clear();
359 m_cborScanPsmEval.clear();
360 if(!getExpectedString())
361 {
363 QObject::tr("ERROR: expecting props or eval element in psm-scan %1")
365 }
366 if(m_expectedString == "props")
367 {
369 if(!is_ok)
370 {
371 throw pappso::PappsoException("ERROR: props element in psm-scan is not well formed");
372 }
375 if(!getExpectedString())
376 {
378 QObject::tr("ERROR: expecting eval element in psm-scan %1").arg(m_currentPsmProforma));
379 }
380 }
382 if(m_expectedString == "eval")
383 {
385 if(!is_ok)
386 {
387 throw pappso::PappsoException("ERROR: eval element in psm-scan is not well formed");
388 }
390 }
391
392 qDebug() << m_expectedString;
393
394
395 mpa_cborReader->leaveContainer();
397 qDebug();
398 psmReady(monitor);
399}
bool readCborArray(QCborArray &cbor_array)
void appendValue(const QString &value)
std::vector< PsmProteinRef > m_currentPsmProteinRefList
virtual void psmReady(pappso::UiMonitorInterface &monitor)

◆ 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();
241
242 qDebug() << m_expectedString;
244 if(m_expectedString == "name")
245 {
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();
297 while(!mpa_cborReader->lastError() && mpa_cborReader->hasNext())
298 {
299 readScan(monitor);
300 }
301 mpa_cborReader->leaveContainer();
303 }
304 else
305 {
306 throw pappso::PappsoException("ERROR: expecting scan_list element in sample");
307 }
308 mpa_cborReader->leaveContainer();
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)

◆ 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 }
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 {
157 {
158 throw pappso::PappsoException(QObject::tr("id element in scan is not a cbor map"));
159 }
160
162 }
163 else
164 {
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 {
180 {
181 throw pappso::PappsoException(QObject::tr("precursor element in scan is not a cbor map"));
182 }
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 {
198 {
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 }
206 }
207 //"psm_list": [
208 scanStarted(monitor);
209
211 qDebug() << m_expectedString;
213 if(m_expectedString == "psm_list")
214 {
215 mpa_cborReader->enterContainer();
217 while(!mpa_cborReader->lastError() && mpa_cborReader->hasNext())
218 {
219 readPsm(monitor);
220 }
221 mpa_cborReader->leaveContainer();
223 }
224
225 mpa_cborReader->leaveContainer();
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)

◆ 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
105}

◆ 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");
98}

Member Data Documentation

◆ mp_jsonOutput

pappso::cbor::JsonStreamWriter* pappso::cbor::psm::PsmCbor2Json::mp_jsonOutput
protected

Definition at line 70 of file psmcbor2json.h.

Referenced by PsmCbor2Json().


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