From 9225e6b9d29cbe6081e75b06de685738ab56bb4d Mon Sep 17 00:00:00 2001 From: Olivier Langella <olivier.langella@u-psud.fr> Date: Sun, 9 Jun 2019 20:25:17 +0200 Subject: [PATCH] WIP: using msrunretention object --- src/core/msrun.cpp | 44 +++++++++++++++---- src/core/msrun.h | 6 ++- .../exportmasschroqdialog.cpp | 21 +++++++-- 3 files changed, 58 insertions(+), 13 deletions(-) diff --git a/src/core/msrun.cpp b/src/core/msrun.cpp index 124e89dcc..6c3cb0fe0 100644 --- a/src/core/msrun.cpp +++ b/src/core/msrun.cpp @@ -309,18 +309,46 @@ MsRun::getMsRunXicExtractorInterfaceSp() } void -MsRun::initializeMsRunRetentionTime( +MsRun::buildMsRunRetentionTime( const PeptideEvidenceStore &peptide_evidence_store) { pappso::MsRunReaderSPtr reader = getMsRunReaderSPtr(); - mpa_msrunRetentionTime = - new pappso::MsRunRetentionTime<const pappso::Peptide *>(reader); - + if(mpa_msrunRetentionTime == nullptr) + { + mpa_msrunRetentionTime = + new pappso::MsRunRetentionTime<const pappso::Peptide *>(reader); + } for(auto &peptide_evidence : peptide_evidence_store.getPeptideEvidenceList()) { - mpa_msrunRetentionTime->addPeptideAsSeamark( - peptide_evidence.get()->getPeptideXtpSp().get()->getNativePeptideP(), - reader.get()->scanNumber2SpectrumIndex( - peptide_evidence.get()->getScanNumber())); + if(peptide_evidence.get()->getMsRunP() == this) + { + mpa_msrunRetentionTime->addPeptideAsSeamark( + peptide_evidence.get() + ->getPeptideXtpSp() + .get() + ->getNativePeptideP(), + reader.get()->scanNumber2SpectrumIndex( + peptide_evidence.get()->getScanNumber())); + } + } + // mpa_msrunRetentionTime->computePeptideRetentionTimes(); +} + +void +MsRun::computeMsRunRetentionTime() +{ + if(mpa_msrunRetentionTime == nullptr) + { + mpa_msrunRetentionTime->computePeptideRetentionTimes(); + } +} + +void +MsRun::clearMsRunRetentionTime() +{ + if(mpa_msrunRetentionTime == nullptr) + { + delete mpa_msrunRetentionTime; + mpa_msrunRetentionTime = nullptr; } } diff --git a/src/core/msrun.h b/src/core/msrun.h index 4038311ee..2d1e1ed26 100644 --- a/src/core/msrun.h +++ b/src/core/msrun.h @@ -81,8 +81,10 @@ class MsRun : public pappso::MsRunId pappso::MsRunXicExtractorInterfaceSp getMsRunXicExtractorInterfaceSp(); - void initializeMsRunRetentionTime( - const PeptideEvidenceStore &peptide_evidence_store); + void + buildMsRunRetentionTime(const PeptideEvidenceStore &peptide_evidence_store); + void computeMsRunRetentionTime(); + void clearMsRunRetentionTime(); private: std::map<MsRunStatistics, QVariant> _param_stats; diff --git a/src/gui/export/export_masschroq_dialog/exportmasschroqdialog.cpp b/src/gui/export/export_masschroq_dialog/exportmasschroqdialog.cpp index 4e2643b0f..6d615df0b 100644 --- a/src/gui/export/export_masschroq_dialog/exportmasschroqdialog.cpp +++ b/src/gui/export/export_masschroq_dialog/exportmasschroqdialog.cpp @@ -277,22 +277,22 @@ ExportMasschroqDialog::doFindBestMsrunForAlignment() // p_identification_group = // mp_project->getIdentificationGroupList()[0]->get } - std::vector<MsRunSp> msrun_list; + bool is_ok = true; for(IdentificationDataSourceSp p_ident_data_source : mp_project->getIdentificationDataSourceStore() .getIdentificationDataSourceList()) { MsRunSp msrun_sp = p_ident_data_source->getMsRunSp(); - msrun_list.push_back(msrun_sp); if(msrun_sp->findMsRunFile()) { // msrun_sp->checkMsRunStatistics(); - msrun_sp->initializeMsRunRetentionTime( + msrun_sp->buildMsRunRetentionTime( p_ident_data_source->getPeptideEvidenceStore()); } else { + is_ok = false; ui->warningDirectoryLabel->setText( tr("%1 not found : Please choose the directory to look for this MS " "run file.") @@ -301,4 +301,19 @@ ExportMasschroqDialog::doFindBestMsrunForAlignment() break; } } + if(is_ok) + { + for(auto &msrun_sp : mp_project->getMsRunStore().getMsRunList()) + { + msrun_sp->computeMsRunRetentionTime(); + } + //find the best reference + } + else + { + for(auto &msrun_sp : mp_project->getMsRunStore().getMsRunList()) + { + msrun_sp->clearMsRunRetentionTime(); + } + } } -- GitLab