diff --git a/src/grouping/ptm/ptmsamplescan.cpp b/src/grouping/ptm/ptmsamplescan.cpp index 6e2d347b643c4b4f76d0bcce3027f140ff3d068b..e2b5b6a8468729dbdc241a73afc3ffc6efa574a7 100644 --- a/src/grouping/ptm/ptmsamplescan.cpp +++ b/src/grouping/ptm/ptmsamplescan.cpp @@ -67,7 +67,16 @@ bool PtmSampleScan::add(const PeptideMatch * p_peptide_match) { } std::vector<unsigned int> PtmSampleScan::getObservedPtmPositionList(const PtmGroupingExperiment * p_ptm_grouping_experiment) const { - std::vector<unsigned int> list; - - return list; + std::vector<unsigned int> position_list; + + for (const PeptideMatch * p_peptide_match: _peptide_match_list) { + std::vector<unsigned int> positionb_list = p_ptm_grouping_experiment->getPtmPositions(p_peptide_match); + for (unsigned int position: positionb_list) { + position_list.push_back(position); + } + } + std::sort(position_list.begin(), position_list.end()); + auto last = std::unique(position_list.begin(), position_list.end()); + position_list.erase(last, position_list.end()); + return position_list; }