diff --git a/src/gui/peptide_list_view/peptidetablemodel.cpp b/src/gui/peptide_list_view/peptidetablemodel.cpp index 1f0a2ad7ab6b225bf3dfdf6142049e93eae7a504..01f925f22d16bff66280bd86794e92e1e3ca7670 100644 --- a/src/gui/peptide_list_view/peptidetablemodel.cpp +++ b/src/gui/peptide_list_view/peptidetablemodel.cpp @@ -90,6 +90,30 @@ PeptideTableModel::setProteinMatch(ProteinMatch *p_protein_match) _engine_columns_to_display.insert( PeptideListColumn::mascot_expectation_value); } + else if(engine == IdentificationEngine::OMSSA) + { + _engine_columns_to_display.insert(PeptideListColumn::omssa_evalue); + _engine_columns_to_display.insert(PeptideListColumn::omssa_pvalue); + } + else if(engine == IdentificationEngine::MSGFplus) + { + _engine_columns_to_display.insert(PeptideListColumn::msgfplus_raw); + _engine_columns_to_display.insert(PeptideListColumn::msgfplus_denovo); + _engine_columns_to_display.insert(PeptideListColumn::msgfplus_energy); + _engine_columns_to_display.insert( + PeptideListColumn::msgfplus_SpecEValue); + _engine_columns_to_display.insert(PeptideListColumn::msgfplus_EValue); + } + else if(engine == IdentificationEngine::Comet) + { + _engine_columns_to_display.insert(PeptideListColumn::comet_deltacn); + _engine_columns_to_display.insert(PeptideListColumn::comet_deltacnstar); + _engine_columns_to_display.insert(PeptideListColumn::comet_expectation_value); + _engine_columns_to_display.insert( + PeptideListColumn::comet_sprank); + _engine_columns_to_display.insert(PeptideListColumn::comet_spscore); + _engine_columns_to_display.insert(PeptideListColumn::comet_xcorr); + } } qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__ << " " @@ -121,7 +145,7 @@ PeptideTableModel::rowCount(const QModelIndex &parent) const int PeptideTableModel::columnCount(const QModelIndex &parent) const { - return 33; + return 39; } QVariant PeptideTableModel::headerData(int section, Qt::Orientation orientation, @@ -387,6 +411,85 @@ PeptideTableModel::data(const QModelIndex &index, int role) const ->getParam( PeptideEvidenceParam::peptide_inter_prophet_probability); break; + case(std::int8_t)PeptideListColumn::omssa_evalue: + return _p_protein_match->getPeptideMatchList() + .at(row) + .getPeptideEvidence() + ->getParam(PeptideEvidenceParam::omssa_evalue); + break; + case(std::int8_t)PeptideListColumn::omssa_pvalue: + return _p_protein_match->getPeptideMatchList() + .at(row) + .getPeptideEvidence() + ->getParam(PeptideEvidenceParam::omssa_pvalue); + break; + case(std::int8_t)PeptideListColumn::msgfplus_denovo: + return _p_protein_match->getPeptideMatchList() + .at(row) + .getPeptideEvidence() + ->getParam(PeptideEvidenceParam::msgfplus_denovo); + break; + case(std::int8_t)PeptideListColumn::msgfplus_energy: + return _p_protein_match->getPeptideMatchList() + .at(row) + .getPeptideEvidence() + ->getParam(PeptideEvidenceParam::msgfplus_energy); + break; + case(std::int8_t)PeptideListColumn::msgfplus_EValue: + return _p_protein_match->getPeptideMatchList() + .at(row) + .getPeptideEvidence() + ->getParam(PeptideEvidenceParam::msgfplus_EValue); + break; + case(std::int8_t)PeptideListColumn::msgfplus_raw: + return _p_protein_match->getPeptideMatchList() + .at(row) + .getPeptideEvidence() + ->getParam(PeptideEvidenceParam::msgfplus_raw); + break; + case(std::int8_t)PeptideListColumn::msgfplus_SpecEValue: + return _p_protein_match->getPeptideMatchList() + .at(row) + .getPeptideEvidence() + ->getParam(PeptideEvidenceParam::msgfplus_SpecEValue); + break; + + case(std::int8_t)PeptideListColumn::comet_xcorr: + return _p_protein_match->getPeptideMatchList() + .at(row) + .getPeptideEvidence() + ->getParam(PeptideEvidenceParam::comet_xcorr); + break; + case(std::int8_t)PeptideListColumn::comet_deltacn: + return _p_protein_match->getPeptideMatchList() + .at(row) + .getPeptideEvidence() + ->getParam(PeptideEvidenceParam::comet_deltacn); + break; + case(std::int8_t)PeptideListColumn::comet_deltacnstar: + return _p_protein_match->getPeptideMatchList() + .at(row) + .getPeptideEvidence() + ->getParam(PeptideEvidenceParam::comet_deltacnstar); + break; + case(std::int8_t)PeptideListColumn::comet_spscore: + return _p_protein_match->getPeptideMatchList() + .at(row) + .getPeptideEvidence() + ->getParam(PeptideEvidenceParam::comet_spscore); + break; + case(std::int8_t)PeptideListColumn::comet_sprank: + return _p_protein_match->getPeptideMatchList() + .at(row) + .getPeptideEvidence() + ->getParam(PeptideEvidenceParam::comet_sprank); + break; + case(std::int8_t)PeptideListColumn::comet_expectation_value: + return _p_protein_match->getPeptideMatchList() + .at(row) + .getPeptideEvidence() + ->getParam(PeptideEvidenceParam::comet_expectation_value); + break; } } return QString(); @@ -503,6 +606,34 @@ PeptideTableModel::getTitle(std::int8_t column) return "Prophet probability"; case(std::int8_t)PeptideListColumn::peptide_inter_prophet_probability: return "Inter prophet probability"; + case(std::int8_t)PeptideListColumn::omssa_evalue: + return "OMSSA E-value"; + case(std::int8_t)PeptideListColumn::omssa_pvalue: + return "OMSSA p-value"; + case(std::int8_t)PeptideListColumn::msgfplus_denovo: + return "MS-GF de novo"; + case(std::int8_t)PeptideListColumn::msgfplus_energy: + return "MS-GF energy"; + case(std::int8_t)PeptideListColumn::msgfplus_EValue: + return "MS-GF E-value"; + case(std::int8_t)PeptideListColumn::msgfplus_raw: + return "MS-GF raw score"; + case(std::int8_t)PeptideListColumn::msgfplus_SpecEValue: + return "MS-GF spectral E-value"; + + case(std::int8_t)PeptideListColumn::comet_xcorr: + return "Comet XCorr"; + + case(std::int8_t)PeptideListColumn::comet_deltacn: + return "Comet DeltaCn"; + case(std::int8_t)PeptideListColumn::comet_deltacnstar: + return "Comet DeltaCnStar"; + case(std::int8_t)PeptideListColumn::comet_spscore: + return "Comet SpScore"; + case(std::int8_t)PeptideListColumn::comet_sprank: + return "Comet SpRank"; + case(std::int8_t)PeptideListColumn::comet_expectation_value: + return "Comet E-value"; } return ""; } @@ -590,6 +721,32 @@ PeptideTableModel::getDescription(std::int8_t column) return "Peptide prophet probability"; case(std::int8_t)PeptideListColumn::peptide_inter_prophet_probability: return "Peptide inter prophet probability"; + case(std::int8_t)PeptideListColumn::omssa_evalue: + return "OMSSA E-value"; + case(std::int8_t)PeptideListColumn::omssa_pvalue: + return "OMSSA p-value"; + case(std::int8_t)PeptideListColumn::msgfplus_denovo: + return "MS-GF de novo"; + case(std::int8_t)PeptideListColumn::msgfplus_energy: + return "MS-GF energy"; + case(std::int8_t)PeptideListColumn::msgfplus_EValue: + return "MS-GF E-value"; + case(std::int8_t)PeptideListColumn::msgfplus_raw: + return "MS-GF raw score"; + case(std::int8_t)PeptideListColumn::msgfplus_SpecEValue: + return "MS-GF spectral E-value"; + case(std::int8_t)PeptideListColumn::comet_xcorr: + return "The Comet result 'XCorr'"; + case(std::int8_t)PeptideListColumn::comet_deltacn: + return "The Comet result 'DeltaCn'"; + case(std::int8_t)PeptideListColumn::comet_deltacnstar: + return "The Comet result 'DeltaCnStar'"; + case(std::int8_t)PeptideListColumn::comet_spscore: + return "The Comet result 'SpScore'"; + case(std::int8_t)PeptideListColumn::comet_sprank: + return "The Comet result 'SpRank'"; + case(std::int8_t)PeptideListColumn::comet_expectation_value: + return "The Comet result 'Expectation value'"; } return ""; } diff --git a/src/gui/peptide_list_view/peptidetablemodel.h b/src/gui/peptide_list_view/peptidetablemodel.h index ed865d621924396970dd52a6dfabb09e750c20d5..dea80398aff58e8a186ab425745849fe84dbdc7d 100644 --- a/src/gui/peptide_list_view/peptidetablemodel.h +++ b/src/gui/peptide_list_view/peptidetablemodel.h @@ -68,6 +68,14 @@ enum class PeptideListColumn : std::int8_t msgfplus_energy = 30, ///< MS:1002051 "MS-GF energy score." [PSI:PI] msgfplus_SpecEValue = 31, ///< MS:1002052 "MS-GF spectral E-value." [PSI:PI] msgfplus_EValue = 32, ///< MS:1002053 "MS-GF E-value." [PSI:PI] + comet_xcorr = 33, ///< MS:1002252 "The Comet result 'XCorr'." [PSI:PI] + comet_deltacn = 34, ///< MS:1002253 "The Comet result 'DeltaCn'." [PSI:PI] + comet_deltacnstar = + 35, ///< MS:1002254 "The Comet result 'DeltaCnStar'." [PSI:PI] + comet_spscore = 36, ///< MS:1002255 "The Comet result 'SpScore'." [PSI:PI] + comet_sprank = 37, ///< MS:1002256 "The Comet result 'SpRank'." [PSI:PI] + comet_expectation_value = + 38, ///< MS:1002257 "The Comet result 'Expectation value'." [PSI:PI] }; class PeptideListWindow; @@ -105,7 +113,7 @@ class PeptideTableModel : public QAbstractTableModel private: ProteinMatch *_p_protein_match = nullptr; PeptideListWindow *_p_peptide_list_window = nullptr; - //contains columns to display (present in this peptide match) + // contains columns to display (present in this peptide match) std::set<PeptideListColumn> _engine_columns_to_display; }; diff --git a/src/input/pepxmlsaxhandler.cpp b/src/input/pepxmlsaxhandler.cpp index 3823fe2e48ae217b736115428167f91f3cfc9f27..c17896a42929e0c8cdcb9dc532b1a2120bbd67e8 100644 --- a/src/input/pepxmlsaxhandler.cpp +++ b/src/input/pepxmlsaxhandler.cpp @@ -326,7 +326,7 @@ PepXmlSaxHandler::startElement_spectrum_query(QXmlAttributes attributes) //<alternative_protein protein="sp|P46784|RS10B_YEAST" protein_descr="40S // ribosomal protein S10-B OS=Saccharomyces cerevisiae (strain ATCC 204508 -// \ +// \ //S288c) GN=RPS10B PE=1 SV=1" num_tol_term="2" peptide_prev_aa="K" // peptide_next_aa="N"/> bool @@ -542,6 +542,46 @@ PepXmlSaxHandler::startElement_search_score(QXmlAttributes attributes) QVariant(valueStr.simplified().toDouble())); } } + else if(identification_engine == IdentificationEngine::Comet) + { + if(name == "xcorr") + { + _p_peptide_evidence->setParam( + PeptideEvidenceParam::comet_xcorr, + QVariant(valueStr.simplified().toDouble())); + } + else if(name == "deltacn") + { + _p_peptide_evidence->setParam( + PeptideEvidenceParam::comet_deltacn, + QVariant(valueStr.simplified().toDouble())); + } + else if(name == "deltacnstar") + { + _p_peptide_evidence->setParam( + PeptideEvidenceParam::comet_deltacnstar, + QVariant(valueStr.simplified().toDouble())); + } + else if(name == "spscore") + { + _p_peptide_evidence->setParam( + PeptideEvidenceParam::comet_spscore, + QVariant(valueStr.simplified().toDouble())); + } + else if(name == "sprank") + { + _p_peptide_evidence->setParam( + PeptideEvidenceParam::comet_sprank, + QVariant(valueStr.simplified().toInt())); + } + else if(name == "expect") + { + _p_peptide_evidence->setParam( + PeptideEvidenceParam::comet_expectation_value, + QVariant(valueStr.simplified().toDouble())); + _p_peptide_evidence->setEvalue(valueStr.simplified().toDouble()); + } + } else if(identification_engine == IdentificationEngine::MSGFplus) { if(name == "raw") @@ -561,6 +601,7 @@ PepXmlSaxHandler::startElement_search_score(QXmlAttributes attributes) _p_peptide_evidence->setParam( PeptideEvidenceParam::msgfplus_EValue, QVariant(valueStr.simplified().toDouble())); + _p_peptide_evidence->setEvalue(valueStr.simplified().toDouble()); } } } diff --git a/src/utils/types.h b/src/utils/types.h index df9423e49c30412be224aff7c0b17ce0786bf60e..ed75f68914921012be195f19f44325782dedae3d 100644 --- a/src/utils/types.h +++ b/src/utils/types.h @@ -80,6 +80,12 @@ enum class PeptideEvidenceParam : std::int8_t msgfplus_energy = 10, ///< MS:1002051 "MS-GF energy score." [PSI:PI] msgfplus_SpecEValue = 11, ///< MS:1002052 "MS-GF spectral E-value." [PSI:PI] msgfplus_EValue = 12, ///< MS:1002053 "MS-GF E-value." [PSI:PI] + comet_xcorr = 13, ///< MS:1002252 "The Comet result 'XCorr'." [PSI:PI] + comet_deltacn = 14, ///< MS:1002253 "The Comet result 'DeltaCn'." [PSI:PI] + comet_deltacnstar = 15, ///< MS:1002254 "The Comet result 'DeltaCnStar'." [PSI:PI] + comet_spscore = 16, ///< MS:1002255 "The Comet result 'SpScore'." [PSI:PI] + comet_sprank = 17, ///< MS:1002256 "The Comet result 'SpRank'." [PSI:PI] + comet_expectation_value = 18, ///< MS:1002257 "The Comet result 'Expectation value'." [PSI:PI] };