From 00e57c9c12a939616ebf84bbbb8a98d656547cca Mon Sep 17 00:00:00 2001 From: Olivier Langella <olivier.langella@u-psud.fr> Date: Mon, 5 Mar 2018 23:03:40 +0100 Subject: [PATCH] WIP: Mascot parser --- .../identificationdatasource.cpp | 11 ++++++++++- .../identification_sources/identificationdatasource.h | 1 + .../identificationmascotdatfile.cpp | 6 ++++++ .../identificationmascotdatfile.h | 4 +++- src/core/identificationgroup.cpp | 2 ++ src/core/peptideevidence.cpp | 4 +--- src/input/mascot/mascotdatparser.cpp | 2 ++ src/input/mascot/mimeparser.cpp | 5 ++++- 8 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/core/identification_sources/identificationdatasource.cpp b/src/core/identification_sources/identificationdatasource.cpp index d368fd091..4ae412c97 100644 --- a/src/core/identification_sources/identificationdatasource.cpp +++ b/src/core/identification_sources/identificationdatasource.cpp @@ -26,6 +26,7 @@ #include <pappsomspp/pappsoexception.h> #include <QFileInfo> #include "../../utils/readspectrum.h" +#include "../peptideevidence.h" IdentificationDataSource::IdentificationDataSource(const QString resource_name) { @@ -41,7 +42,7 @@ IdentificationDataSource::IdentificationDataSource(const IdentificationDataSourc _params = other._params; _param_stats = other._param_stats; _fastafile_list = other._fastafile_list; - + //PeptideEvidenceStore _peptide_evidence_store; } @@ -155,3 +156,11 @@ const std::vector<FastaFileSp> & IdentificationDataSource::getFastaFileList() co qDebug()<< "IdentificationDataSource::getFastaFileList begin" << _fastafile_list.size(); return _fastafile_list; } + +const bool IdentificationDataSource::isValid(const PeptideEvidence * p_peptide_evidence, const AutomaticFilterParameters & automatic_filter_parameters) const { + + if (p_peptide_evidence->getEvalue() <= automatic_filter_parameters.getFilterPeptideEvalue()) { + return true; + } + return false; +} diff --git a/src/core/identification_sources/identificationdatasource.h b/src/core/identification_sources/identificationdatasource.h index 52bf3cf03..abb4a98b6 100644 --- a/src/core/identification_sources/identificationdatasource.h +++ b/src/core/identification_sources/identificationdatasource.h @@ -124,6 +124,7 @@ public: */ virtual const std::map<IdentificationEngineParam, QVariant> & getIdentificationEngineParamMap() const; + virtual const bool isValid(const PeptideEvidence * p_peptide_evidence, const AutomaticFilterParameters & automatic_filter_parameters) const; protected : QString _resource_name; diff --git a/src/core/identification_sources/identificationmascotdatfile.cpp b/src/core/identification_sources/identificationmascotdatfile.cpp index 4df412422..dff8e3b8c 100644 --- a/src/core/identification_sources/identificationmascotdatfile.cpp +++ b/src/core/identification_sources/identificationmascotdatfile.cpp @@ -98,3 +98,9 @@ void IdentificationMascotDatFile::parseTo(Project* p_project) { qDebug() << "IdentificationMascotDatFile::parseTo end"; } + + +const bool IdentificationMascotDatFile::isValid(const PeptideEvidence * p_peptide_evidence, const AutomaticFilterParameters & automatic_filter_parameters) const { + + return true; +} diff --git a/src/core/identification_sources/identificationmascotdatfile.h b/src/core/identification_sources/identificationmascotdatfile.h index 94ed456ad..819124e85 100644 --- a/src/core/identification_sources/identificationmascotdatfile.h +++ b/src/core/identification_sources/identificationmascotdatfile.h @@ -43,7 +43,9 @@ public: virtual pappso::SpectrumSp getSpectrumSp(unsigned int scan_number) const override; virtual void parseTo(Project* p_project) override; - + + virtual const bool isValid(const PeptideEvidence * p_peptide_evidence, const AutomaticFilterParameters & automatic_filter_parameters) const override; + private: const QFileInfo _mascot_dat_file; }; diff --git a/src/core/identificationgroup.cpp b/src/core/identificationgroup.cpp index 9825c9f18..82ab9dd38 100644 --- a/src/core/identificationgroup.cpp +++ b/src/core/identificationgroup.cpp @@ -159,6 +159,8 @@ void IdentificationGroup::updateAutomaticFilters(const AutomaticFilterParameters for (IdentificationDataSource * p_identification_source_list:_id_source_list) { p_identification_source_list->getPeptideEvidenceStore().updateAutomaticFilters(automatic_filter_parameters); } + + qDebug() << "IdentificationGroup::updateAutomaticFilters begin p_protein_match" ; for (auto & p_protein_match : _protein_match_list) { p_protein_match->updateAutomaticFilters(automatic_filter_parameters); } diff --git a/src/core/peptideevidence.cpp b/src/core/peptideevidence.cpp index 438c254da..986307e0d 100644 --- a/src/core/peptideevidence.cpp +++ b/src/core/peptideevidence.cpp @@ -66,9 +66,7 @@ PeptideEvidenceSp PeptideEvidence::makePeptideEvidenceSp() const { void PeptideEvidence::updateAutomaticFilters(const AutomaticFilterParameters & automatic_filter_parameters) { _proxy_valid = false; - if (_evalue <= automatic_filter_parameters.getFilterPeptideEvalue()) { - _proxy_valid = true; - } + _proxy_valid = this->_p_identification_source->isValid(this, automatic_filter_parameters); } void PeptideEvidence::setRetentionTime(pappso::pappso_double rt) { _rt = rt; diff --git a/src/input/mascot/mascotdatparser.cpp b/src/input/mascot/mascotdatparser.cpp index fc06c24f2..be26914d0 100644 --- a/src/input/mascot/mascotdatparser.cpp +++ b/src/input/mascot/mascotdatparser.cpp @@ -73,6 +73,8 @@ void MascotDatParser::parse(QIODevice * in_stream) { while(!mime_parser.getCurrentTextStream().atEnd()) { parsePeptidesLine( mime_parser.getCurrentTextStream().readLine()); } + + saveAndClearPeptide(); } else if (mime_parser.getCurrentFileName().startsWith("query")) { _current_query_index = mime_parser.getCurrentFileName().mid(5).toUInt(); diff --git a/src/input/mascot/mimeparser.cpp b/src/input/mascot/mimeparser.cpp index d922f3471..2b566bd0e 100644 --- a/src/input/mascot/mimeparser.cpp +++ b/src/input/mascot/mimeparser.cpp @@ -56,15 +56,18 @@ bool MimeParser::close() { _priv_file_string = ""; if (_p_current_file_content != nullptr) { delete _p_current_file_content; + _p_current_file_content = nullptr; } + qDebug() << "MimeParser::close delete _real_in"; if (_real_in !=nullptr) { delete _real_in; _real_in =nullptr; } + qDebug() << "MimeParser::close delete _p_inputstream"; if (_p_inputstream !=nullptr) { _p_inputstream->close(); - delete _p_inputstream; + //delete _p_inputstream; _p_inputstream =nullptr; } qDebug() << "MimeParser::close end"; -- GitLab