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

#include <sagetsvhandler.h>

Inheritance diagram for pappso::cbor::psm::SageTsvHandler:

Classes

struct  Line
struct  Psm
struct  Scan
struct  Sample

Public Types

enum class  Columns : std::int8_t {
  psm_id , peptide , proteins , num_proteins ,
  filename , scannr , rank , label ,
  expmass , calcmass , charge , peptide_len ,
  missed_cleavages , semi_enzymatic , isotope_error , precursor_ppm ,
  fragment_ppm , hyperscore , delta_next , delta_best ,
  rt , aligned_rt , predicted_rt , delta_rt_model ,
  ion_mobility , predicted_mobility , delta_mobility , matched_peaks ,
  longest_b , longest_y , longest_y_pct , matched_intensity_pct ,
  scored_candidates , poisson , sage_discriminant_score , posterior_error ,
  spectrum_q , peptide_q , protein_q , ms2_intensity
}

Public Member Functions

 SageTsvHandler (pappso::UiMonitorInterface *p_monitor, const SageReader &sage_reader, PsmProteinMap &psm_protein_map)
virtual ~SageTsvHandler ()
virtual void startSheet (const QString &sheet_name) override
virtual void endSheet () override
virtual void startLine () override
virtual void endLine () override
virtual void setCell (const OdsCell &cell) override
virtual void endDocument () override
void writeSampleList ()

Private Member Functions

void parsePeptide (const QString &peptide_str)
void parseProteins (const QString &proteins_str)
bool parseSpectrumStringId (const QString &spectrum_string_id)
void parseMsRunFilename (const QString &msrun_filename)
void recordLine ()
void writeSample (const Sample &one_sample)
void writeScan (const Scan &one_scan)
void writePsm (const Psm &one_psm)

Private Attributes

const SageReaderm_sageReader
PsmProteinMapm_psmProteinMap
pappso::UiMonitorInterfacemp_monitor = nullptr
std::size_t m_progressIndex = 0
std::size_t m_lineNumber = 0
std::size_t m_columnNumber = 0
std::vector< Columnsm_columnTypeList
pappso::PeptideSp msp_peptide
std::vector< SageReader::SageModificationm_staticModificationList
std::vector< SageReader::SageModificationm_variableModificationList
std::size_t m_spectrumIndex
Line m_line
QString m_decoyTag
QStringList m_proteinList
QString m_spectrumNativeId
std::map< QString, Samplem_sampleMap
Samplemp_currentSample

Detailed Description

Todo
write docs

Definition at line 49 of file sagetsvhandler.h.

Member Enumeration Documentation

◆ Columns

enum class pappso::cbor::psm::SageTsvHandler::Columns : std::int8_t
strong
Enumerator
psm_id 
peptide 
proteins 
num_proteins 
filename 
scannr 
rank 
label 
expmass 
calcmass 
charge 
peptide_len 
missed_cleavages 
semi_enzymatic 
isotope_error 
precursor_ppm 
fragment_ppm 
hyperscore 
delta_next 
delta_best 
rt 
aligned_rt 
predicted_rt 
delta_rt_model 
ion_mobility 
predicted_mobility 
delta_mobility 
matched_peaks 
longest_b 
longest_y 
longest_y_pct 
matched_intensity_pct 
scored_candidates 
poisson 
sage_discriminant_score 
posterior_error 
spectrum_q 
peptide_q 
protein_q 
ms2_intensity 

Definition at line 52 of file sagetsvhandler.h.

53 {
54 psm_id,
55 peptide,
56 proteins,
57 num_proteins,
58 filename,
59 scannr,
60 rank,
61 label,
62 expmass,
63 calcmass,
64 charge,
65 peptide_len,
66 missed_cleavages,
67 semi_enzymatic,
68 isotope_error,
69 precursor_ppm,
70 fragment_ppm,
71 hyperscore,
72 delta_next,
73 delta_best,
74 rt,
75 aligned_rt,
76 predicted_rt,
77 delta_rt_model,
78 ion_mobility,
79 predicted_mobility,
80 delta_mobility,
81 matched_peaks,
82 longest_b,
83 longest_y,
84 longest_y_pct,
85 matched_intensity_pct,
86 scored_candidates,
87 poisson,
88 sage_discriminant_score,
89 posterior_error,
90 spectrum_q,
91 peptide_q,
92 protein_q,
93 ms2_intensity,
94 };
@ rt
Retention time.
Definition types.h:251

Constructor & Destructor Documentation

◆ SageTsvHandler()

pappso::cbor::psm::SageTsvHandler::SageTsvHandler ( pappso::UiMonitorInterface * p_monitor,
const SageReader & sage_reader,
PsmProteinMap & psm_protein_map )

Default constructor

Definition at line 46 of file sagetsvhandler.cpp.

49 : m_sageReader(sage_reader), m_psmProteinMap(psm_protein_map)
50{
51 mp_monitor = p_monitor;
52 m_staticModificationList = sage_reader.getStaticModificationList();
53 m_variableModificationList = sage_reader.getVariableModificationList();
54 m_decoyTag = sage_reader.getDecoyTag();
55}
std::vector< SageReader::SageModification > m_staticModificationList
pappso::UiMonitorInterface * mp_monitor
std::vector< SageReader::SageModification > m_variableModificationList

References pappso::cbor::psm::SageReader::getDecoyTag(), pappso::cbor::psm::SageReader::getStaticModificationList(), pappso::cbor::psm::SageReader::getVariableModificationList(), m_decoyTag, m_psmProteinMap, m_sageReader, m_staticModificationList, m_variableModificationList, and mp_monitor.

◆ ~SageTsvHandler()

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

Destructor

Definition at line 57 of file sagetsvhandler.cpp.

58{
59}

Member Function Documentation

◆ endDocument()

void pappso::cbor::psm::SageTsvHandler::endDocument ( )
overridevirtual

Definition at line 422 of file sagetsvhandler.cpp.

423{
424}

◆ endLine()

void pappso::cbor::psm::SageTsvHandler::endLine ( )
overridevirtual

callback that indicates a line ending. Override it if needed.

Definition at line 71 of file sagetsvhandler.cpp.

References m_line, m_lineNumber, and recordLine().

◆ endSheet()

void pappso::cbor::psm::SageTsvHandler::endSheet ( )
overridevirtual

callback that indicates the end of the current data sheet. Override it if needed

Definition at line 79 of file sagetsvhandler.cpp.

80{
81}

◆ parseMsRunFilename()

void pappso::cbor::psm::SageTsvHandler::parseMsRunFilename ( const QString & msrun_filename)
private

Definition at line 535 of file sagetsvhandler.cpp.

536{
537
538
539 // find the sample :
540 auto it_insert = m_sampleMap.insert({msrun_filename, {}});
541 mp_currentSample = &(it_insert.first->second);
542 if(it_insert.second)
543 {
544 // new sample
545 it_insert.first->second.name = msrun_filename;
546 QCborMap ms_file;
547 QCborMap identification_file;
548
549 it_insert.first->second.cbor_core_sample.insert(QString("name"),
550 QFileInfo(msrun_filename).baseName());
551
552 // identification_file_list
553 QCborArray identification_file_list;
554 identification_file.insert(QString("name"), m_sageReader.getmJsonAbsoluteFilePath());
555 identification_file_list.push_back(identification_file);
556 it_insert.first->second.cbor_core_sample.insert(QString("identification_file_list"),
557 identification_file_list);
558
559
560 ms_file.insert(QString("name"), m_sageReader.getMzmlPath(msrun_filename));
561 it_insert.first->second.cbor_core_sample.insert(QString("peaklist_file"), ms_file);
562 }
563
564 /*
565 msp_msrun = m_sageReader.getSageFileReader().getMsRunSpWithFileName(msrun_filename);
566 qDebug() << msp_msrun.get()->getFileName();
567
568 msp_identificationSageJsonFileSp =
569 m_sageReader.getSageFileReader().getIdentificationSageJsonFileSpWithFileName(msrun_filename);
570
571 mp_identificationGroup =
572 m_sageReader.getSageFileReader().getIdentificationGroupPtrWithFileName(msrun_filename);
573 qDebug() << msp_msrun.get()->getFileName();
574 */
575}
std::map< QString, Sample > m_sampleMap

References m_sageReader, m_sampleMap, and mp_currentSample.

Referenced by setCell().

◆ parsePeptide()

void pappso::cbor::psm::SageTsvHandler::parsePeptide ( const QString & peptide_str)
private

Definition at line 439 of file sagetsvhandler.cpp.

440{
441 qDebug();
442 QString peptide_str_verif = peptide_str;
443 // fixed modifications :
444 for(SageReader::SageModification modif : m_staticModificationList)
445 {
446 qDebug() << modif.strModification;
447 qDebug() << modif.modification->getAccession();
448 peptide_str_verif = peptide_str_verif.replace(
449 modif.strModification, QString("[%1]").arg(modif.modification->getAccession()));
450 }
451 // variable modifications :
452 for(SageReader::SageModification modif : m_variableModificationList)
453 {
454 qDebug() << modif.strModification;
455 qDebug() << modif.modification->getAccession();
456 peptide_str_verif = peptide_str_verif.replace(
457 modif.strModification, QString("[%1]").arg(modif.modification->getAccession()));
458 }
459
460 qDebug() << peptide_str_verif;
461 // LPMFGC[+57.0216]NDATQVYK
463 qDebug();
464 // variable modifications :
465 /*
466 setVariableModifications(peptide_sp,
467 peptide_line.peptide_string_list.at(6));
468*/
469 qDebug() << msp_peptide.get()->toProForma();
470}
static PeptideSp parseString(const QString &pepstr)

References m_staticModificationList, m_variableModificationList, msp_peptide, and pappso::PeptideProFormaParser::parseString().

Referenced by setCell().

◆ parseProteins()

void pappso::cbor::psm::SageTsvHandler::parseProteins ( const QString & proteins_str)
private

Definition at line 474 of file sagetsvhandler.cpp.

475{
476 m_proteinList.clear();
477 m_proteinList = proteins_str.split(";");
478 for(QString accession : m_proteinList)
479 {
480
481 PsmProtein psm_protein;
482 psm_protein.protein_sp = std::make_shared<pappso::Protein>(accession, "");
483 psm_protein.isTarget = true;
484 if(accession.startsWith(m_decoyTag))
485 {
486 psm_protein.isTarget = false;
487 }
488
489 m_psmProteinMap.insert(psm_protein);
490 }
491}

References pappso::cbor::psm::PsmProtein::isTarget, m_decoyTag, m_proteinList, m_psmProteinMap, and pappso::cbor::psm::PsmProtein::protein_sp.

Referenced by setCell().

◆ parseSpectrumStringId()

bool pappso::cbor::psm::SageTsvHandler::parseSpectrumStringId ( const QString & spectrum_string_id)
private

Definition at line 494 of file sagetsvhandler.cpp.

495{
496 m_spectrumNativeId = spectrum_string_id;
497 qDebug() << spectrum_string_id;
498 // controllerType=0 controllerNumber=1 scan=176056
499
500 bool is_ok = false;
501 QStringList scan_list = spectrum_string_id.split("scan=");
502 if(scan_list.size() == 2)
503 {
504 // we bet that there is a scan number, easy to parse
505 m_spectrumIndex = scan_list.at(1).toULongLong(&is_ok);
506 if(m_spectrumIndex > 0)
508 }
509 if(is_ok == false)
510 { /*
511 if(msp_previousMsrun != msp_msrun)
512 {
513 mp_monitor->setStatus(
514 QObject::tr("Reading mz data file %1").arg(msp_msrun.get()->getFileName()));
515 msp_previousMsrun = msp_msrun;
516 }
517
518 pappso::MsRunReader *msrunreader_p = msp_msrun.get()->getMsRunReaderSPtr().get();
519 if(msrunreader_p->getMsRunId()->getMsDataFormat() == pappso::MsDataFormat::brukerTims)
520 {
521 m_spectrumIndex = spectrum_string_id.toInt() * 2 - 1;
522 }
523 else
524 {
525 m_spectrumIndex =
526 msrunreader_p->spectrumStringIdentifier2SpectrumIndex(spectrum_string_id);
527 }*/
528 }
529
530 qDebug() << spectrum_string_id;
531 return is_ok;
532}

References m_spectrumIndex, and m_spectrumNativeId.

Referenced by setCell().

◆ recordLine()

void pappso::cbor::psm::SageTsvHandler::recordLine ( )
private

Definition at line 578 of file sagetsvhandler.cpp.

579{
580 qDebug();
581
582 for(const QString &accession : m_proteinList)
583 {
584 PsmProtein psm_protein;
585 psm_protein.protein_sp = std::make_shared<pappso::Protein>(accession, "");
586
587 auto it = m_psmProteinMap.insert(psm_protein);
588 it.first->second.cborEval.insert(QString("protein_q"), m_line.protein_q);
589 }
590 /*
591 PeptideEvidence pe(msp_msrun.get(), m_spectrumIndex, true);
592 pe.setCharge(m_line.charge);
593 pe.setChecked(true);
594 pe.setExperimentalMass(m_line.expmass);
595 pe.setPeptideXtpSp(msp_peptide);
596 pe.setIdentificationDataSource(msp_identificationSageJsonFileSp.get());
597 pe.setIdentificationEngine(m_identificationEngine);
598 pe.setRetentionTime(m_line.rt);
599 pe.setParam(PeptideEvidenceParam::tandem_hyperscore, m_line.hyperscore);
600 pe.setParam(PeptideEvidenceParam::sage_sage_discriminant_score,
601 m_line.sage_discriminant_score);
602 pe.setParam(PeptideEvidenceParam::sage_peptide_q, m_line.peptide_q);
603 pe.setParam(PeptideEvidenceParam::sage_posterior_error, m_line.posterior_error);
604 pe.setParam(PeptideEvidenceParam::sage_spectrum_q, m_line.spectrum_q);
605 pe.setParam(PeptideEvidenceParam::sage_predicted_rt, m_line.predicted_rt);
606 pe.setParam(PeptideEvidenceParam::sage_isotope_error, m_line.isotope_error);
607
608
609 PeptideMatch peptide_match;
610 // peptide_match.setStart(mz_peptide_evidence.start);
611 peptide_match.setPeptideEvidenceSp(
612 msp_identificationSageJsonFileSp.get()->getPeptideEvidenceStore().getInstance(&pe));
613 */
614
615 // find the scan in sample
616 auto it_insert = mp_currentSample->scan_map.insert({m_spectrumNativeId, Scan()});
617 Scan *current_cbor_scan_p = &(it_insert.first->second);
618 if(it_insert.second)
619 {
620 // new scan
621 QCborMap &scan_id = it_insert.first->second.cbor_id;
622 scan_id.insert(QString("index"), (qint64)m_spectrumIndex);
623 scan_id.insert(QString("native_id"), m_spectrumNativeId);
624
625 QCborMap &scan_ms2 = it_insert.first->second.cbor_ms2;
626 scan_ms2.insert(QString("rt"), m_line.rt);
627
628 QCborMap &scan_precursor = it_insert.first->second.cbor_precursor;
629 scan_precursor.insert(QString("z"), m_line.charge);
630 scan_precursor.insert(QString("mh"), m_line.expmass);
631 double exp_mz = (m_line.expmass + ((double)m_line.charge * MHPLUS)) / m_line.charge;
632 scan_precursor.insert(QString("mz"), exp_mz);
633 }
634
635 Psm one_psm;
636 one_psm.peptide_sequence_li = msp_peptide.get()->getSequenceLi();
637 one_psm.proforma = msp_peptide.get()->toProForma();
638 one_psm.protein_list = m_proteinList;
639
640
641 one_psm.cbor_eval.insert(QString("aligned_rt"), m_line.aligned_rt);
642 one_psm.cbor_eval.insert(QString("calcmass"), m_line.calcmass);
643 one_psm.cbor_eval.insert(QString("delta_best"), m_line.delta_best);
644 one_psm.cbor_eval.insert(QString("delta_mobility"), m_line.delta_mobility);
645 one_psm.cbor_eval.insert(QString("delta_next"), m_line.delta_next);
646 one_psm.cbor_eval.insert(QString("delta_rt_model"), m_line.delta_rt_model);
647 one_psm.cbor_eval.insert(QString("fragment_ppm"), m_line.fragment_ppm);
648 one_psm.cbor_eval.insert(QString("hyperscore"), m_line.hyperscore);
649 one_psm.cbor_eval.insert(QString("ion_mobility"), m_line.ion_mobility);
650 one_psm.cbor_eval.insert(QString("isotope_error"), m_line.isotope_error);
651 one_psm.cbor_eval.insert(QString("label"), m_line.label);
652 one_psm.cbor_eval.insert(QString("longest_b"), (qint64)m_line.longest_b);
653 one_psm.cbor_eval.insert(QString("longest_y"), (qint64)m_line.longest_y);
654 one_psm.cbor_eval.insert(QString("longest_y_pct"), m_line.longest_y_pct);
655 one_psm.cbor_eval.insert(QString("matched_intensity_pct"), m_line.matched_intensity_pct);
656 one_psm.cbor_eval.insert(QString("matched_peaks"), (qint64)m_line.matched_peaks);
657 one_psm.cbor_eval.insert(QString("missed_cleavages"), m_line.missed_cleavages);
658 one_psm.cbor_eval.insert(QString("ms2_intensity"), m_line.ms2_intensity);
659 one_psm.cbor_eval.insert(QString("peptide_len"), (qint64)m_line.peptide_len);
660 one_psm.cbor_eval.insert(QString("peptide_q"), m_line.peptide_q);
661 one_psm.cbor_eval.insert(QString("poisson"), m_line.poisson);
662 one_psm.cbor_eval.insert(QString("posterior_error"), m_line.posterior_error);
663 one_psm.cbor_eval.insert(QString("precursor_ppm"), m_line.precursor_ppm);
664 one_psm.cbor_eval.insert(QString("predicted_mobility"), m_line.predicted_mobility);
665 one_psm.cbor_eval.insert(QString("predicted_rt"), m_line.predicted_rt);
666 one_psm.cbor_eval.insert(QString("protein_q"), m_line.protein_q);
667 one_psm.cbor_eval.insert(QString("rank"), m_line.rank);
668 one_psm.cbor_eval.insert(QString("sage_discriminant_score"), m_line.sage_discriminant_score);
669 one_psm.cbor_eval.insert(QString("scored_candidates"), (qint64)m_line.scored_candidates);
670 one_psm.cbor_eval.insert(QString("semi_enzymatic"), m_line.semi_enzymatic);
671 one_psm.cbor_eval.insert(QString("spectrum_q"), m_line.spectrum_q);
672
673 current_cbor_scan_p->psm_list.emplace_back(one_psm);
674
675
676 std::size_t progress = m_lineNumber / 10000;
677 if(progress > m_progressIndex)
678 {
679 if(mp_monitor->shouldIstop())
680 {
681 throw pappso::ExceptionInterrupted(
682 QObject::tr("Sage TSV data reading process interrupted"));
683 }
684 m_progressIndex = progress;
685 mp_monitor->setStatus(QString("%1K ").arg(m_progressIndex * 10));
686 }
687}
const pappso_double MHPLUS(1.007276466879)

References pappso::cbor::psm::SageTsvHandler::Psm::cbor_eval, m_line, m_lineNumber, m_progressIndex, m_proteinList, m_psmProteinMap, m_spectrumIndex, m_spectrumNativeId, pappso::MHPLUS(), mp_currentSample, mp_monitor, msp_peptide, pappso::cbor::psm::SageTsvHandler::Psm::peptide_sequence_li, pappso::cbor::psm::SageTsvHandler::Psm::proforma, pappso::cbor::psm::SageTsvHandler::Psm::protein_list, pappso::cbor::psm::PsmProtein::protein_sp, and pappso::cbor::psm::SageTsvHandler::Scan::psm_list.

Referenced by endLine().

◆ setCell()

void pappso::cbor::psm::SageTsvHandler::setCell ( const OdsCell & cell)
overridevirtual

callback that report the content of the current cell in a dedicated Cell object. Override it if you need to retrieve cell content.

Definition at line 84 of file sagetsvhandler.cpp.

85{
86 if(m_lineNumber == 0)
87 {
88 // header
89 QString tag = cell.getStringValue();
90 if(tag == "psm_id")
91 {
93 }
94 else if(tag == "peptide")
95 {
97 }
98 else if(tag == "proteins")
99 {
101 }
102 else if(tag == "num_proteins")
103 {
105 }
106 else if(tag == "filename")
107 {
109 }
110 else if(tag == "scannr")
111 {
113 }
114 else if(tag == "rank")
115 {
117 }
118 else if(tag == "label")
119 {
121 }
122 else if(tag == "expmass")
123 {
125 }
126
127 else if(tag == "calcmass")
128 {
130 }
131 else if(tag == "charge")
132 {
134 }
135 else if(tag == "peptide_len")
136 {
138 }
139 else if(tag == "missed_cleavages")
140 {
142 }
143 else if(tag == "semi_enzymatic")
144 {
146 }
147 else if(tag == "isotope_error")
148 {
150 }
151 else if(tag == "precursor_ppm")
152 {
154 }
155 else if(tag == "fragment_ppm")
156 {
158 }
159 else if(tag == "hyperscore")
160 {
162 }
163 else if(tag == "delta_next")
164 {
166 }
167 else if(tag == "delta_best")
168 {
170 }
171 else if(tag == "rt")
172 {
173 m_columnTypeList.push_back(Columns::rt);
174 }
175 else if(tag == "aligned_rt")
176 {
178 }
179 else if(tag == "predicted_rt")
180 {
182 }
183 else if(tag == "delta_rt_model")
184 {
186 }
187 else if(tag == "ion_mobility")
188 {
190 }
191 else if(tag == "predicted_mobility")
192 {
194 }
195 else if(tag == "delta_mobility")
196 {
198 }
199 else if(tag == "matched_peaks")
200 {
202 }
203 else if(tag == "longest_b")
204 {
206 }
207 else if(tag == "longest_y")
208 {
210 }
211 else if(tag == "longest_y_pct")
212 {
214 }
215 else if(tag == "matched_intensity_pct")
216 {
218 }
219 else if(tag == "scored_candidates")
220 {
222 }
223 else if(tag == "poisson")
224 {
226 }
227 else if(tag == "sage_discriminant_score")
228 {
230 }
231 else if(tag == "posterior_error")
232 {
234 }
235 else if(tag == "spectrum_q")
236 {
238 }
239 else if(tag == "peptide_q")
240 {
242 }
243 else if(tag == "protein_q")
244 {
246 }
247 else if(tag == "ms2_intensity")
248 {
250 }
251 else
252 {
253 throw pappso::ExceptionNotPossible(QObject::tr("column \"%1\" not defined").arg(tag));
254 }
255 }
256 else
257 {
258 if(m_columnNumber >= m_columnTypeList.size())
259 {
260 throw pappso::ExceptionOutOfRange(
261 QObject::tr("the value %1 is out of range").arg(cell.getStringValue()));
262 }
264 switch(column_type)
265 {
266 case Columns::psm_id:
267 break;
268 case Columns::peptide:
269 parsePeptide(cell.toString());
270 break;
272 parseProteins(cell.toString());
273 break;
275 if((std::size_t)cell.getDoubleValue() != (std::size_t)m_proteinList.size())
276 {
277 throw pappso::PappsoException(
278 QObject::tr("column \"num_proteins\"!=%1").arg(m_proteinList.size()));
279 }
280 break;
282 parseMsRunFilename(cell.toString());
283 break;
284 case Columns::scannr:
285 parseSpectrumStringId(cell.toString());
286 break;
287 case Columns::rank:
288 m_line.rank = cell.getDoubleValue();
289 break;
290 case Columns::label:
291 m_line.label = cell.getDoubleValue();
292 break;
293 case Columns::expmass:
294 m_line.expmass = cell.getDoubleValue();
295 break;
297 m_line.calcmass = cell.getDoubleValue();
298 break;
299 case Columns::charge:
300 m_line.charge = cell.getDoubleValue();
301 break;
303 m_line.peptide_len = cell.getDoubleValue();
304 break;
306 m_line.missed_cleavages = cell.getDoubleValue();
307 break;
309 m_line.semi_enzymatic = cell.getDoubleValue();
310 break;
312 m_line.isotope_error = cell.getDoubleValue();
313 break;
314
316 m_line.precursor_ppm = cell.getDoubleValue();
317 break;
319 m_line.fragment_ppm = cell.getDoubleValue();
320 break;
322 m_line.hyperscore = cell.getDoubleValue();
323 break;
325 m_line.delta_next = cell.getDoubleValue();
326 break;
328 m_line.delta_best = cell.getDoubleValue();
329 break;
330 case Columns::rt:
331 m_line.rt = cell.getDoubleValue() * 60; // to convert retention time in seconds
332 break;
334 m_line.aligned_rt = cell.getDoubleValue();
335 break;
337 m_line.predicted_rt = cell.getDoubleValue();
338 break;
340 m_line.delta_rt_model = cell.getDoubleValue();
341 break;
343 m_line.ion_mobility = cell.getDoubleValue();
344 break;
346 m_line.predicted_mobility = cell.getDoubleValue();
347 break;
349 m_line.delta_mobility = cell.getDoubleValue();
350 break;
352 m_line.matched_peaks = cell.getDoubleValue();
353 break;
355 m_line.longest_b = cell.getDoubleValue();
356 break;
358 m_line.longest_y = cell.getDoubleValue();
359 break;
361 m_line.longest_y_pct = cell.getDoubleValue();
362 break;
364 m_line.matched_intensity_pct = cell.getDoubleValue();
365 break;
367 m_line.scored_candidates = cell.getDoubleValue();
368 break;
369 case Columns::poisson:
370 m_line.poisson = cell.getDoubleValue();
371 break;
373 m_line.sage_discriminant_score = cell.getDoubleValue();
374 break;
376 m_line.posterior_error = cell.getDoubleValue();
377 break;
379 m_line.spectrum_q = cell.getDoubleValue();
380 break;
382 m_line.peptide_q = cell.getDoubleValue();
383 break;
385 m_line.protein_q = cell.getDoubleValue();
386 break;
388 m_line.ms2_intensity = cell.getDoubleValue();
389 break;
390 default:
391 qDebug() << "m_line.calcmass=" << m_line.calcmass;
392 throw pappso::ExceptionNotImplemented(
393 QObject::tr("column type %1 not implemented").arg((std::uint8_t)column_type));
394 break;
395 }
396
397 /*
398
399 2333 TMISDSDYTEFENFTK
400 GRMZM2G018197_P01;GRMZM2G068952_P01;GRMZM5G822976_P01 3
401 20120906_balliau_extract_1_A01_urnb-1.mzML controllerType=0
402 controllerNumber=1 scan=12542 1 1 1926.8225 1926.8193 2 16 0 0
403 0.0 1.6471838 1.9796097 54.06803492297634 28.049970383419556 0.0 38.192993
404 0.76385987 0.7671368 0.0032769442 0.0 0.0 0.0 16 2 14 0.875 32.54396 380
405 -13.375352220427656 1.1570586 -34.13482 0.00016041065 0.00022231363
406 0.00040124074 1271951.1
407 */
408 }
410}
void parseProteins(const QString &proteins_str)
void parsePeptide(const QString &peptide_str)
bool parseSpectrumStringId(const QString &spectrum_string_id)
void parseMsRunFilename(const QString &msrun_filename)
std::vector< Columns > m_columnTypeList

References aligned_rt, calcmass, charge, delta_best, delta_mobility, delta_next, delta_rt_model, expmass, filename, fragment_ppm, hyperscore, ion_mobility, isotope_error, label, longest_b, longest_y, longest_y_pct, m_columnNumber, m_columnTypeList, m_line, m_lineNumber, m_proteinList, matched_intensity_pct, matched_peaks, missed_cleavages, ms2_intensity, num_proteins, parseMsRunFilename(), parsePeptide(), parseProteins(), parseSpectrumStringId(), peptide, peptide_len, peptide_q, poisson, posterior_error, precursor_ppm, predicted_mobility, predicted_rt, protein_q, proteins, psm_id, rank, rt, sage_discriminant_score, scannr, scored_candidates, semi_enzymatic, and spectrum_q.

◆ startLine()

void pappso::cbor::psm::SageTsvHandler::startLine ( )
overridevirtual

callback that indicates a new line start. Override it if needed.

Definition at line 413 of file sagetsvhandler.cpp.

414{
415 m_columnNumber = 0;
416 msp_peptide = nullptr;
417 m_proteinList.clear();
418 m_line = Line();
419}

References m_columnNumber, m_line, m_proteinList, and msp_peptide.

◆ startSheet()

void pappso::cbor::psm::SageTsvHandler::startSheet ( const QString & sheet_name)
overridevirtual

callback that indicates the begining of a data sheet. Override it in order to retrieve information about the current data sheet.

Definition at line 426 of file sagetsvhandler.cpp.

427{
428 m_columnNumber = 0;
429 m_lineNumber = 0;
430 mp_monitor->setStatus(QObject::tr("reading Sage TSV file"));
431
432 if(mp_monitor->shouldIstop())
433 {
434 throw pappso::ExceptionInterrupted(QObject::tr("Sage TSV data reading process interrupted"));
435 }
436}

References m_columnNumber, m_lineNumber, and mp_monitor.

◆ writePsm()

void pappso::cbor::psm::SageTsvHandler::writePsm ( const Psm & one_psm)
private

Definition at line 740 of file sagetsvhandler.cpp.

741{
742 m_sageReader.getCborStreamWriter().startMap();
743 m_sageReader.getCborStreamWriter().append("proforma");
744 m_sageReader.getCborStreamWriter().append(one_psm.proforma);
745 m_sageReader.getCborStreamWriter().append("protein_list");
746
747 QCborArray cbor_protein_list;
748 for(const QString &accession : one_psm.protein_list)
749 {
750 // qWarning() << "accession=" << accession;
751 QCborMap cbor_protein;
752 cbor_protein.insert(QString("accession"), accession);
753
754
755 // start/end positions
756 QString protein_sequence =
757 QString(m_psmProteinMap.getByAccession(accession).protein_sp.get()->getSequence())
758 .replace("L", "I");
759 int position = protein_sequence.indexOf(one_psm.peptide_sequence_li);
760
761 QCborArray positions;
762 while(position >= 0)
763 {
764 positions.push_back(position);
765 position = protein_sequence.indexOf(one_psm.peptide_sequence_li, position + 1);
766 }
767
768 cbor_protein.insert(QString("positions"), positions);
769
770 cbor_protein_list.append(cbor_protein);
771 }
772
773
774 QCborValue(cbor_protein_list).toCbor(m_sageReader.getCborStreamWriter());
775
776 m_sageReader.getCborStreamWriter().append("eval");
777 m_sageReader.getCborStreamWriter().startMap();
778 m_sageReader.getCborStreamWriter().append("sage");
779 QCborValue(one_psm.cbor_eval).toCbor(m_sageReader.getCborStreamWriter());
780 m_sageReader.getCborStreamWriter().endMap();
781
782 m_sageReader.getCborStreamWriter().endMap();
783}

References pappso::cbor::psm::SageTsvHandler::Psm::cbor_eval, m_psmProteinMap, m_sageReader, pappso::cbor::psm::SageTsvHandler::Psm::peptide_sequence_li, pappso::cbor::psm::SageTsvHandler::Psm::proforma, and pappso::cbor::psm::SageTsvHandler::Psm::protein_list.

Referenced by writeScan().

◆ writeSample()

void pappso::cbor::psm::SageTsvHandler::writeSample ( const Sample & one_sample)
private

Definition at line 690 of file sagetsvhandler.cpp.

691{
692 m_sageReader.getCborStreamWriter().startMap();
693 m_sageReader.getCborStreamWriter().append("name");
694 one_sample.cbor_core_sample.value("name").toCbor(m_sageReader.getCborStreamWriter());
695
696 m_sageReader.getCborStreamWriter().append("identification_file_list");
697 one_sample.cbor_core_sample.value("identification_file_list")
698 .toCbor(m_sageReader.getCborStreamWriter());
699
700
701 m_sageReader.getCborStreamWriter().append("peaklist_file");
702 one_sample.cbor_core_sample.value("peaklist_file").toCbor(m_sageReader.getCborStreamWriter());
703 //"scan_list": [
704
705 m_sageReader.getCborStreamWriter().append("scan_list");
706 m_sageReader.getCborStreamWriter().startArray(one_sample.scan_map.size());
707 for(auto &it_scan : one_sample.scan_map)
708 {
709 writeScan(it_scan.second);
710 }
711 m_sageReader.getCborStreamWriter().endArray();
712
713
714 m_sageReader.getCborStreamWriter().endMap();
715}
void writeScan(const Scan &one_scan)

References pappso::cbor::psm::SageTsvHandler::Sample::cbor_core_sample, m_sageReader, pappso::cbor::psm::SageTsvHandler::Sample::scan_map, and writeScan().

Referenced by writeSampleList().

◆ writeSampleList()

void pappso::cbor::psm::SageTsvHandler::writeSampleList ( )

Definition at line 62 of file sagetsvhandler.cpp.

63{
64 for(auto it_sample_map : m_sampleMap)
65 {
66 writeSample(it_sample_map.second);
67 }
68}
void writeSample(const Sample &one_sample)

References m_sampleMap, and writeSample().

Referenced by pappso::cbor::psm::SageReader::readTsvFile().

◆ writeScan()

void pappso::cbor::psm::SageTsvHandler::writeScan ( const Scan & one_scan)
private

Definition at line 718 of file sagetsvhandler.cpp.

719{
720 m_sageReader.getCborStreamWriter().startMap();
721 m_sageReader.getCborStreamWriter().append("id");
722 QCborValue(one_scan.cbor_id).toCbor(m_sageReader.getCborStreamWriter());
723 m_sageReader.getCborStreamWriter().append("precursor");
724 QCborValue(one_scan.cbor_precursor).toCbor(m_sageReader.getCborStreamWriter());
725 m_sageReader.getCborStreamWriter().append("ms2");
726 QCborValue(one_scan.cbor_ms2).toCbor(m_sageReader.getCborStreamWriter());
727
728 m_sageReader.getCborStreamWriter().append("psm_list");
729 m_sageReader.getCborStreamWriter().startArray(one_scan.psm_list.size());
730 for(auto &it_psm : one_scan.psm_list)
731 {
732 writePsm(it_psm);
733 }
734 m_sageReader.getCborStreamWriter().endArray();
735
736 m_sageReader.getCborStreamWriter().endMap();
737}
void writePsm(const Psm &one_psm)

References pappso::cbor::psm::SageTsvHandler::Scan::cbor_id, pappso::cbor::psm::SageTsvHandler::Scan::cbor_ms2, pappso::cbor::psm::SageTsvHandler::Scan::cbor_precursor, m_sageReader, pappso::cbor::psm::SageTsvHandler::Scan::psm_list, and writePsm().

Referenced by writeSample().

Member Data Documentation

◆ m_columnNumber

std::size_t pappso::cbor::psm::SageTsvHandler::m_columnNumber = 0
private

Definition at line 218 of file sagetsvhandler.h.

Referenced by setCell(), startLine(), and startSheet().

◆ m_columnTypeList

std::vector<Columns> pappso::cbor::psm::SageTsvHandler::m_columnTypeList
private

Definition at line 219 of file sagetsvhandler.h.

Referenced by setCell().

◆ m_decoyTag

QString pappso::cbor::psm::SageTsvHandler::m_decoyTag
private

Definition at line 226 of file sagetsvhandler.h.

Referenced by SageTsvHandler(), and parseProteins().

◆ m_line

Line pappso::cbor::psm::SageTsvHandler::m_line
private

Definition at line 225 of file sagetsvhandler.h.

Referenced by endLine(), recordLine(), setCell(), and startLine().

◆ m_lineNumber

std::size_t pappso::cbor::psm::SageTsvHandler::m_lineNumber = 0
private

Definition at line 217 of file sagetsvhandler.h.

Referenced by endLine(), recordLine(), setCell(), and startSheet().

◆ m_progressIndex

std::size_t pappso::cbor::psm::SageTsvHandler::m_progressIndex = 0
private

Definition at line 216 of file sagetsvhandler.h.

Referenced by recordLine().

◆ m_proteinList

QStringList pappso::cbor::psm::SageTsvHandler::m_proteinList
private

Definition at line 227 of file sagetsvhandler.h.

Referenced by parseProteins(), recordLine(), setCell(), and startLine().

◆ m_psmProteinMap

PsmProteinMap& pappso::cbor::psm::SageTsvHandler::m_psmProteinMap
private

Definition at line 214 of file sagetsvhandler.h.

Referenced by SageTsvHandler(), parseProteins(), recordLine(), and writePsm().

◆ m_sageReader

const SageReader& pappso::cbor::psm::SageTsvHandler::m_sageReader
private

◆ m_sampleMap

std::map<QString, Sample> pappso::cbor::psm::SageTsvHandler::m_sampleMap
private

Definition at line 229 of file sagetsvhandler.h.

Referenced by parseMsRunFilename(), and writeSampleList().

◆ m_spectrumIndex

std::size_t pappso::cbor::psm::SageTsvHandler::m_spectrumIndex
private

Definition at line 224 of file sagetsvhandler.h.

Referenced by parseSpectrumStringId(), and recordLine().

◆ m_spectrumNativeId

QString pappso::cbor::psm::SageTsvHandler::m_spectrumNativeId
private

Definition at line 228 of file sagetsvhandler.h.

Referenced by parseSpectrumStringId(), and recordLine().

◆ m_staticModificationList

std::vector<SageReader::SageModification> pappso::cbor::psm::SageTsvHandler::m_staticModificationList
private

Definition at line 222 of file sagetsvhandler.h.

Referenced by SageTsvHandler(), and parsePeptide().

◆ m_variableModificationList

std::vector<SageReader::SageModification> pappso::cbor::psm::SageTsvHandler::m_variableModificationList
private

Definition at line 223 of file sagetsvhandler.h.

Referenced by SageTsvHandler(), and parsePeptide().

◆ mp_currentSample

Sample* pappso::cbor::psm::SageTsvHandler::mp_currentSample
private

Definition at line 230 of file sagetsvhandler.h.

Referenced by parseMsRunFilename(), and recordLine().

◆ mp_monitor

pappso::UiMonitorInterface* pappso::cbor::psm::SageTsvHandler::mp_monitor = nullptr
private

Definition at line 215 of file sagetsvhandler.h.

Referenced by SageTsvHandler(), recordLine(), and startSheet().

◆ msp_peptide

pappso::PeptideSp pappso::cbor::psm::SageTsvHandler::msp_peptide
private

Definition at line 221 of file sagetsvhandler.h.

Referenced by parsePeptide(), recordLine(), and startLine().


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