diff --git a/src/core/identification_sources/identificationdatasource.cpp b/src/core/identification_sources/identificationdatasource.cpp index 7899da8e95aa430374f68271da2f8c78e4706a60..f3312f069b30244cb0fdee783a965dca08beddb0 100644 --- a/src/core/identification_sources/identificationdatasource.cpp +++ b/src/core/identification_sources/identificationdatasource.cpp @@ -43,6 +43,15 @@ IdentificationDataSource::~IdentificationDataSource() { } + +const std::map<IdentificationEngineStatistics, QVariant> & IdentificationDataSource::getIdentificationEngineStatisticsMap() const { + return _param_stats; +} + +const std::map<IdentificationEngineParam, QVariant> & IdentificationDataSource::getIdentificationEngineParamMap() const { + return _params; +} + const PeptideEvidenceStore & IdentificationDataSource::getPeptideEvidenceStore() const { return _peptide_evidence_store; } diff --git a/src/core/identification_sources/identificationdatasource.h b/src/core/identification_sources/identificationdatasource.h index 01a8d220288a6bb4ee5d1b38b8da7d6d6d5955dd..52bf3cf03f3b9ffc3e71367d031a06cd2084e76f 100644 --- a/src/core/identification_sources/identificationdatasource.h +++ b/src/core/identification_sources/identificationdatasource.h @@ -114,6 +114,16 @@ public: void addFastaFile (FastaFileSp file); const std::vector<FastaFileSp> & getFastaFileList() const; + + + /** \brief get identification engine statistics map + */ + virtual const std::map<IdentificationEngineStatistics, QVariant> & getIdentificationEngineStatisticsMap() const; + + /** \brief get identification engine param map + */ + virtual const std::map<IdentificationEngineParam, QVariant> & getIdentificationEngineParamMap() const; + protected : QString _resource_name; diff --git a/src/output/xpip.cpp b/src/output/xpip.cpp index ba1f7ce39819f0208ac9a7366bd91a6421246951..5b48a4b26a7581e7de309ef5f1e786103bce6ec8 100644 --- a/src/output/xpip.cpp +++ b/src/output/xpip.cpp @@ -194,6 +194,29 @@ void Xpip::writeIdentificationDataSourceList(const IdentificationDataSourceStore _output_stream->writeAttribute("engine",QString("%1").arg(static_cast<std::int8_t>(ident_source_sp.get()->getIdentificationEngine()))); _output_stream->writeAttribute("version",ident_source_sp.get()->getIdentificationEngineVersion()); + const std::map<IdentificationEngineParam, QVariant> params = ident_source_sp.get()->getIdentificationEngineParamMap(); + if (params.size() > 0) { + _output_stream->writeStartElement("params"); + for (const std::pair<IdentificationEngineParam, QVariant> stat_pair: params) { + _output_stream->writeStartElement("param"); + _output_stream->writeAttribute("key",QString("%1").arg(static_cast<std::int8_t>(stat_pair.first))); + _output_stream->writeAttribute("value",stat_pair.second.toString()); + _output_stream->writeEndElement(); + } + _output_stream->writeEndElement(); + } + + const std::map<IdentificationEngineStatistics, QVariant> stats = ident_source_sp.get()->getIdentificationEngineStatisticsMap(); + if (stats.size() > 0) { + _output_stream->writeStartElement("stats"); + for (const std::pair<IdentificationEngineStatistics, QVariant> stat_pair: stats) { + _output_stream->writeStartElement("stat"); + _output_stream->writeAttribute("key",QString("%1").arg(static_cast<std::int8_t>(stat_pair.first))); + _output_stream->writeAttribute("value",stat_pair.second.toString()); + _output_stream->writeEndElement(); + } + _output_stream->writeEndElement(); + } _output_stream->writeEndElement(); } _output_stream->writeEndElement();