36#include "../../../../peptide/peptideproformaparser.h"
50 : m_sageReader(sage_reader), m_psmProteinMap(psm_protein_map)
90 QString tag = cell.getStringValue();
95 else if(tag ==
"peptide")
99 else if(tag ==
"proteins")
103 else if(tag ==
"num_proteins")
107 else if(tag ==
"filename")
111 else if(tag ==
"scannr")
115 else if(tag ==
"rank")
119 else if(tag ==
"label")
123 else if(tag ==
"expmass")
128 else if(tag ==
"calcmass")
132 else if(tag ==
"charge")
136 else if(tag ==
"peptide_len")
140 else if(tag ==
"missed_cleavages")
144 else if(tag ==
"semi_enzymatic")
148 else if(tag ==
"isotope_error")
152 else if(tag ==
"precursor_ppm")
156 else if(tag ==
"fragment_ppm")
160 else if(tag ==
"hyperscore")
164 else if(tag ==
"delta_next")
168 else if(tag ==
"delta_best")
176 else if(tag ==
"aligned_rt")
180 else if(tag ==
"predicted_rt")
184 else if(tag ==
"delta_rt_model")
188 else if(tag ==
"ion_mobility")
192 else if(tag ==
"predicted_mobility")
196 else if(tag ==
"delta_mobility")
200 else if(tag ==
"matched_peaks")
204 else if(tag ==
"longest_b")
208 else if(tag ==
"longest_y")
212 else if(tag ==
"longest_y_pct")
216 else if(tag ==
"matched_intensity_pct")
220 else if(tag ==
"scored_candidates")
224 else if(tag ==
"poisson")
228 else if(tag ==
"sage_discriminant_score")
232 else if(tag ==
"posterior_error")
236 else if(tag ==
"spectrum_q")
240 else if(tag ==
"peptide_q")
244 else if(tag ==
"protein_q")
248 else if(tag ==
"ms2_intensity")
262 QObject::tr(
"the value %1 is out of range").arg(cell.getStringValue()));
276 if((std::size_t)cell.getDoubleValue() != (std::size_t)
m_proteinList.size())
279 QObject::tr(
"column \"num_proteins\"!=%1").arg(
m_proteinList.size()));
332 m_line.
rt = cell.getDoubleValue() * 60;
394 QObject::tr(
"column type %1 not implemented").arg((std::uint8_t)column_type));
443 QString peptide_str_verif = peptide_str;
447 qDebug() << modif.strModification;
448 qDebug() << modif.modification->getAccession();
449 peptide_str_verif = peptide_str_verif.replace(
450 modif.strModification, QString(
"[%1]").arg(modif.modification->getAccession()));
455 qDebug() << modif.strModification;
456 qDebug() << modif.modification->getAccession();
457 peptide_str_verif = peptide_str_verif.replace(
458 modif.strModification, QString(
"[%1]").arg(modif.modification->getAccession()));
461 qDebug() << peptide_str_verif;
483 psm_protein.
protein_sp = std::make_shared<pappso::Protein>(accession,
"");
498 qDebug() << spectrum_string_id;
502 QStringList scan_list = spectrum_string_id.split(
"scan=");
503 if(scan_list.size() == 2)
531 qDebug() << spectrum_string_id;
541 auto it_insert =
m_sampleMap.insert({msrun_filename, {}});
546 it_insert.first->second.
name = msrun_filename;
548 QCborMap identification_file;
550 it_insert.first->second.cbor_core_sample.insert(QString(
"name"),
551 QFileInfo(msrun_filename).baseName());
554 QCborArray identification_file_list;
556 identification_file_list.push_back(identification_file);
557 it_insert.first->second.cbor_core_sample.insert(QString(
"identification_file_list"),
558 identification_file_list);
562 it_insert.first->second.cbor_core_sample.insert(QString(
"peaklist_file"), ms_file);
586 psm_protein.
protein_sp = std::make_shared<pappso::Protein>(accession,
"");
589 it.first->second.cborEval.insert(QString(
"protein_q"),
m_line.
protein_q);
618 Scan *current_cbor_scan_p = &(it_insert.first->second);
622 QCborMap &scan_id = it_insert.first->second.
cbor_id;
626 QCborMap &scan_ms2 = it_insert.first->second.cbor_ms2;
627 scan_ms2.insert(QString(
"rt"),
m_line.
rt);
629 QCborMap &scan_precursor = it_insert.first->second.cbor_precursor;
672 current_cbor_scan_p->
psm_list.emplace_back(one_psm);
681 QObject::tr(
"Sage TSV data reading process interrupted"));
706 for(
auto &it_scan : one_sample.
scan_map)
729 for(
auto &it_psm : one_scan.
psm_list)
746 QCborArray cbor_protein_list;
750 QCborMap cbor_protein;
751 cbor_protein.insert(QString(
"accession"), accession);
755 QString protein_sequence =
760 QCborArray positions;
763 positions.push_back(position);
767 cbor_protein.insert(QString(
"positions"), positions);
769 cbor_protein_list.append(cbor_protein);
virtual void setStatus(const QString &status)=0
current status of the process
virtual bool shouldIstop()=0
should the procces be stopped ? If true, then cancel process Use this function at strategic point of ...
store PsmProtein in a map with accession as key
const pappso::cbor::psm::PsmProtein & getByAccession(const QString &accession) const
retrieve a PsmProtein with its accession
std::pair< std::map< QString, PsmProtein >::iterator, bool > insert(const PsmProtein &psm_protein)
standard map insert of a PsmProtein (accession is the key)
const QString & getMzmlPath(const QString &file_msrun) const
std::vector< SageModification > getStaticModificationList() const
const QString & getmJsonAbsoluteFilePath() const
pappso::cbor::CborStreamWriter & getCborStreamWriter() const
std::vector< SageModification > getVariableModificationList() const
QString getDecoyTag() const
std::vector< SageReader::SageModification > m_staticModificationList
QStringList m_proteinList
void parseProteins(const QString &proteins_str)
@ sage_discriminant_score
QString m_spectrumNativeId
const SageReader & m_sageReader
virtual void endSheet() override
pappso::UiMonitorInterface * mp_monitor
virtual void startSheet(const QString &sheet_name) override
std::vector< SageReader::SageModification > m_variableModificationList
virtual ~SageTsvHandler()
void parsePeptide(const QString &peptide_str)
bool parseSpectrumStringId(const QString &spectrum_string_id)
void writeSample(const Sample &one_sample)
std::size_t m_progressIndex
virtual void setCell(const OdsCell &cell) override
void writePsm(const Psm &one_psm)
SageTsvHandler(pappso::UiMonitorInterface *p_monitor, const SageReader &sage_reader, PsmProteinMap &psm_protein_map)
void writeScan(const Scan &one_scan)
std::size_t m_columnNumber
std::size_t m_spectrumIndex
std::map< QString, Sample > m_sampleMap
virtual void endDocument() override
virtual void startLine() override
Sample * mp_currentSample
void parseMsRunFilename(const QString &msrun_filename)
virtual void endLine() override
pappso::PeptideSp msp_peptide
std::vector< Columns > m_columnTypeList
PsmProteinMap & m_psmProteinMap
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
std::shared_ptr< Protein > protein_sp
double predicted_mobility
double matched_intensity_pct
std::size_t matched_peaks
double sage_discriminant_score
std::size_t scored_candidates
QString peptide_sequence_li
QCborMap cbor_core_sample
std::map< QString, Scan > scan_map
std::vector< Psm > psm_list