diff --git a/src/core/identificationgroup.cpp b/src/core/identificationgroup.cpp index 267c9e895281c899815abb62d8da4b7d4aecdbef..9825c9f18cebf7773a1fa850979c3dd3a09bd83f 100644 --- a/src/core/identificationgroup.cpp +++ b/src/core/identificationgroup.cpp @@ -321,11 +321,11 @@ pappso::pappso_double IdentificationGroup::getProteinFdr(ValidationState state) } -void IdentificationGroup::getSameXicPeptideEvidenceList(const PeptideEvidence * p_peptide_evidence, std::vector<const PeptideEvidence *> & peptide_evidence_list) const { - if (!contains(p_peptide_evidence->getMsRunP())) return; +void IdentificationGroup::getSameXicPeptideEvidenceList(std::vector<const PeptideEvidence *> & peptide_evidence_list, const MsRun * p_msrun, const PeptideXtp * p_peptide, unsigned int charge) const { + if (!contains(p_msrun)) return; for (const IdentificationDataSource * p_identification_source:_id_source_list) { - if (p_peptide_evidence->getMsRunP() == p_identification_source->getMsRunSp().get()) { - p_identification_source->getPeptideEvidenceStore().getSameXicPeptideEvidenceList(p_peptide_evidence, peptide_evidence_list); + if (p_msrun == p_identification_source->getMsRunSp().get()) { + p_identification_source->getPeptideEvidenceStore().getSameXicPeptideEvidenceList(peptide_evidence_list, p_msrun, p_peptide, charge); } } } diff --git a/src/core/identificationgroup.h b/src/core/identificationgroup.h index ea4ade657f3367ecc159fcb049b16aa190084ece..110d7d9aff63e6becc661ef62fada025a455cf7d 100644 --- a/src/core/identificationgroup.h +++ b/src/core/identificationgroup.h @@ -135,10 +135,12 @@ public: /** @brief look for a peptide in the same XIC - * @param p_peptide_evidence the peptide to look for * @param peptide_evidence_list the peptide evidence list to build + * @param p_msrun MSrun to look for + * @param p_peptide peptide to look for + * @param charge charge to look for */ - void getSameXicPeptideEvidenceList(const PeptideEvidence * p_peptide_evidence, std::vector<const PeptideEvidence *> & peptide_evidence_list) const; + void getSameXicPeptideEvidenceList(std::vector<const PeptideEvidence *> & peptide_evidence_list, const MsRun * p_msrun, const PeptideXtp * p_peptide, unsigned int charge) const; private : diff --git a/src/core/project.cpp b/src/core/project.cpp index 1bd84997c9bdb48d716f3c484a23bd702ec4c389..9beaae9a6d818bd42ca39fa7f0ad15781359aeb4 100644 --- a/src/core/project.cpp +++ b/src/core/project.cpp @@ -201,8 +201,8 @@ bool Project::hasPtmExperiment() const { return false; } -void Project::getSameXicPeptideEvidenceList(const PeptideEvidence * p_peptide_evidence, std::vector<const PeptideEvidence *> & peptide_evidence_list) const { +void Project::getSameXicPeptideEvidenceList(std::vector<const PeptideEvidence *> & peptide_evidence_list, const MsRun * p_msrun, const PeptideXtp * p_peptide, unsigned int charge) const { for (const IdentificationGroup * p_ident_group: _identification_goup_list) { - p_ident_group->getSameXicPeptideEvidenceList(p_peptide_evidence, peptide_evidence_list); + p_ident_group->getSameXicPeptideEvidenceList(peptide_evidence_list, p_msrun, p_peptide, charge); } } diff --git a/src/core/project.h b/src/core/project.h index b21d48385538d70e4d7b858bba6066d0fe4b2482..3710b3d3e51e5ba73f87c2c655ae8e2ad077170a 100644 --- a/src/core/project.h +++ b/src/core/project.h @@ -88,10 +88,12 @@ public: bool hasPtmExperiment() const; /** @brief look for a peptide in the same XIC - * @param p_peptide_evidence the peptide to look for * @param peptide_evidence_list the peptide evidence list to build + * @param p_msrun MSrun to look for + * @param p_peptide peptide to look for + * @param charge charge to look for */ - void getSameXicPeptideEvidenceList(const PeptideEvidence * p_peptide_evidence, std::vector<const PeptideEvidence *> & peptide_evidence_list) const; + void getSameXicPeptideEvidenceList(std::vector<const PeptideEvidence *> & peptide_evidence_list, const MsRun * p_msrun, const PeptideXtp * p_peptide, unsigned int charge) const; private : LabelingMethodSp _labeling_method_sp; diff --git a/src/gui/xic_view/xic_box/xicbox.cpp b/src/gui/xic_view/xic_box/xicbox.cpp index 6abf1eaae2e5f27465b40f869433ec36c3dd7ffe..8f7dd617cf0d15fe69d974c93975bd180a05d977 100644 --- a/src/gui/xic_view/xic_box/xicbox.cpp +++ b/src/gui/xic_view/xic_box/xicbox.cpp @@ -167,14 +167,14 @@ void XicBox::setPeptideEvidence(const PeptideEvidence * p_peptide_evidence) { //get same xic peptide evidence (msrun, peptide, charge) //p_projet _peptide_evidence_list.clear(); - _p_xic_window->getProjectWindow()->getProjectP()->getSameXicPeptideEvidenceList(p_peptide_evidence, _peptide_evidence_list); + _p_xic_window->getProjectWindow()->getProjectP()->getSameXicPeptideEvidenceList(_peptide_evidence_list, _msrun_sp.get(),_p_peptide_evidence->getPeptideXtpSp().get(),_p_peptide_evidence->getCharge()); emit computeIsotopeMassList(_p_peptide_evidence->getPeptideXtpSp(), _p_peptide_evidence->getCharge(), _p_xic_window->getXicExtractPrecision(), 0.8); } void XicBox::setPeptideEvidenceInMsRun(const PeptideEvidence * p_peptide_evidence, MsRunSp msrun_sp) { - _p_peptide_evidence = p_peptide_evidence; + _p_peptide_evidence = p_peptide_evidence; _msrun_sp = msrun_sp; ui->peptide_label->setText(_p_peptide_evidence->getPeptideXtpSp().get()->toString()); @@ -185,6 +185,8 @@ void XicBox::setPeptideEvidenceInMsRun(const PeptideEvidence * p_peptide_evidenc //get same xic peptide evidence (msrun, peptide, charge) //p_projet _peptide_evidence_list.clear(); + + _p_xic_window->getProjectWindow()->getProjectP()->getSameXicPeptideEvidenceList(_peptide_evidence_list, _msrun_sp.get(),_p_peptide_evidence->getPeptideXtpSp().get(),_p_peptide_evidence->getCharge()); //_p_xic_window->getProjectWindow()->getProjectP()->getSameXicPeptideEvidenceList(p_peptide_evidence, _peptide_evidence_list); emit computeIsotopeMassList(_p_peptide_evidence->getPeptideXtpSp(), _p_peptide_evidence->getCharge(), _p_xic_window->getXicExtractPrecision(), 0.8); diff --git a/src/utils/peptideevidencestore.cpp b/src/utils/peptideevidencestore.cpp index 28b2928f639bcfc18646f74a261bc0b75b4e5480..c6ab7295f3b4a5bea287824327b175a70424cd69 100644 --- a/src/utils/peptideevidencestore.cpp +++ b/src/utils/peptideevidencestore.cpp @@ -95,11 +95,11 @@ const std::vector<std::shared_ptr<PeptideEvidence>> & PeptideEvidenceStore::getP } -void PeptideEvidenceStore::getSameXicPeptideEvidenceList(const PeptideEvidence * p_peptide_evidence, std::vector<const PeptideEvidence *> & peptide_evidence_list) const { +void PeptideEvidenceStore::getSameXicPeptideEvidenceList(std::vector<const PeptideEvidence *> & peptide_evidence_list, const MsRun * p_msrun, const PeptideXtp * p_peptide, unsigned int charge) const { for (const PeptideEvidenceSp & peptide_evidence_sp:_peptide_evidence_list) { - if (p_peptide_evidence->getMsRunP() != peptide_evidence_sp.get()->getMsRunP()) continue; - if (p_peptide_evidence->getPeptideXtpSp().get() != peptide_evidence_sp.get()->getPeptideXtpSp().get()) continue; - if (p_peptide_evidence->getCharge() != peptide_evidence_sp.get()->getCharge()) continue; + if (p_msrun != peptide_evidence_sp.get()->getMsRunP()) continue; + else if (p_peptide != peptide_evidence_sp.get()->getPeptideXtpSp().get()) continue; + else if (charge != peptide_evidence_sp.get()->getCharge()) continue; peptide_evidence_list.push_back(peptide_evidence_sp.get()); } } diff --git a/src/utils/peptideevidencestore.h b/src/utils/peptideevidencestore.h index c1d4ff894e4666d6ac8014b3f3021f1348914679..1ae1889c3778f7f611744407a651d9d9d6854a7d 100644 --- a/src/utils/peptideevidencestore.h +++ b/src/utils/peptideevidencestore.h @@ -35,6 +35,8 @@ #include <vector> #include <map> #include "../core/automaticfilterparameters.h" +#include "../core/peptidextp.h" +#include "../core/msrun.h" class PeptideEvidence; @@ -56,10 +58,12 @@ public: /** @brief look for a peptide in the same XIC - * @param p_peptide_evidence the peptide to look for * @param peptide_evidence_list the peptide evidence list to build + * @param p_msrun MSrun to look for + * @param p_peptide peptide to look for + * @param charge charge to look for */ - void getSameXicPeptideEvidenceList(const PeptideEvidence * p_peptide_evidence, std::vector<const PeptideEvidence *> & peptide_evidence_list) const; + void getSameXicPeptideEvidenceList(std::vector<const PeptideEvidence *> & peptide_evidence_list, const MsRun * p_msrun, const PeptideXtp * p_peptide, unsigned int charge) const; private: std::vector<std::shared_ptr<PeptideEvidence>> _peptide_evidence_list;