From cecf80938ed76084fa0ef6e31701b6f22970d8e0 Mon Sep 17 00:00:00 2001
From: Olivier Langella <Olivier.Langella@moulon.inra.fr>
Date: Sun, 23 Jul 2017 08:33:29 +0200
Subject: [PATCH] WIP: new class to handle ptm sample scan ambiguity

---
 src/grouping/ptm/ptmisland.cpp     | 14 +++++++++++++-
 src/grouping/ptm/ptmsamplescan.cpp |  5 ++++-
 src/grouping/ptm/ptmsamplescan.h   |  3 ++-
 3 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/src/grouping/ptm/ptmisland.cpp b/src/grouping/ptm/ptmisland.cpp
index bdc27f1d0..26854b499 100644
--- a/src/grouping/ptm/ptmisland.cpp
+++ b/src/grouping/ptm/ptmisland.cpp
@@ -172,6 +172,18 @@ bool PtmIsland::merge(PtmIslandSp ptm_island_sp) {
 
 std::vector<PtmSampleScanSp> PtmIsland::getPtmSampleScanSpList() const {
     std::vector<PtmSampleScanSp> sample_scan_list;
-    
+    for (const PeptideMatch * p_peptide_match:_peptide_match_list) {
+        
+        std::vector<PtmSampleScanSp>::iterator it_ptm = sample_scan_list.begin();
+        std::vector<PtmSampleScanSp>::iterator it_ptm_end = sample_scan_list.end();
+        while ((it_ptm != it_ptm_end) && (it_ptm->get()->add(p_peptide_match) == false)) {
+            //peptide added
+        }
+        if (it_ptm == it_ptm_end) {
+            //peptide NOT added
+            sample_scan_list.push_back(std::make_shared<PtmSampleScan>(p_peptide_match));
+        }
+    }
+
     return sample_scan_list;
 }
diff --git a/src/grouping/ptm/ptmsamplescan.cpp b/src/grouping/ptm/ptmsamplescan.cpp
index 8df90dec6..986bc7f36 100644
--- a/src/grouping/ptm/ptmsamplescan.cpp
+++ b/src/grouping/ptm/ptmsamplescan.cpp
@@ -29,7 +29,7 @@
 
 #include "ptmsamplescan.h"
 
-PtmSampleScan::PtmSampleScan() {
+PtmSampleScan::PtmSampleScan(const PeptideMatch * p_peptide_match) {
 }
 
 PtmSampleScan::PtmSampleScan(const PtmSampleScan& other){
@@ -37,3 +37,6 @@ PtmSampleScan::PtmSampleScan(const PtmSampleScan& other){
 
 PtmSampleScan::~PtmSampleScan() {
 }
+bool PtmSampleScan::add(const PeptideMatch * p_peptide_match) {
+    return false;
+}
diff --git a/src/grouping/ptm/ptmsamplescan.h b/src/grouping/ptm/ptmsamplescan.h
index 1ce8a4eb1..498933e81 100644
--- a/src/grouping/ptm/ptmsamplescan.h
+++ b/src/grouping/ptm/ptmsamplescan.h
@@ -43,10 +43,11 @@ typedef std::shared_ptr<PtmSampleScan> PtmSampleScanSp;
 class PtmSampleScan
 {
 public:
-        PtmSampleScan();
+    PtmSampleScan(const PeptideMatch * p_peptide_match);
     PtmSampleScan(const PtmSampleScan& other);
     ~PtmSampleScan();
     
+    bool add(const PeptideMatch * p_peptide_match);
 private:
     std::vector<const PeptideMatch *> _peptide_match_list;
 
-- 
GitLab