Skip to content
Snippets Groups Projects
Commit 0f0e4d5e authored by Olivier Langella's avatar Olivier Langella
Browse files

ptm position list for each ptm peptide

parent 3255bdf0
No related branches found
No related tags found
No related merge requests found
......@@ -28,6 +28,7 @@
******************************************************************************/
#include "ptmgroupingexperiment.h"
#include "../../grouping/ptm/ptmgroupingexperiment.h"
PtmGroupingExperiment::PtmGroupingExperiment()
{
......@@ -162,23 +163,38 @@ unsigned int PtmGroupingExperiment::countPeptideMatchPtm(const PeptideMatch* p_p
}
return number;
}
std::vector<unsigned int> PtmGroupingExperiment::getPtmPositions(const ProteinMatch * protein_match) const {
std::vector<unsigned int> PtmGroupingExperiment::getPtmPositions(const PeptideMatch * p_peptide_match) const {
std::vector<unsigned int> position_list;
for (PeptideMatch * p_peptide_match: protein_match->getPeptideMatchList(_peptide_validation_state)) {
unsigned int start = p_peptide_match->getStart();
for (const ModificationAndAa & modification: _modification_list) {
if (modification.aa_list.size() == 0) {
for (unsigned int position : p_peptide_match->getPeptideXtpSp().get()->getModificationPositionList(modification.modification)) {
position_list.push_back(start+position);
position_list.push_back(position);
}
}
else {
for (unsigned int position : p_peptide_match->getPeptideXtpSp().get()->getModificationPositionList(modification.modification, modification.aa_list)) {
position_list.push_back(start+position);
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;
}
std::vector<unsigned int> PtmGroupingExperiment::getPtmPositions(const ProteinMatch * protein_match) const {
std::vector<unsigned int> position_list;
for (const PeptideMatch * p_peptide_match: protein_match->getPeptideMatchList(_peptide_validation_state)) {
unsigned int start = p_peptide_match->getStart();
std::vector<unsigned int> positionb_list = this->getPtmPositions(p_peptide_match);
for (unsigned int position: positionb_list) {
position_list.push_back(start+position);
}
}
std::sort(position_list.begin(), position_list.end());
auto last = std::unique(position_list.begin(), position_list.end());
......
......@@ -35,6 +35,7 @@
#include "ptmisland.h"
#include "ptmislandsubgroup.h"
#include "ptmislandgroup.h"
class PtmSampleScan;
struct ModificationAndAa {
pappso::AaModificationP modification;
......@@ -43,6 +44,7 @@ struct ModificationAndAa {
class PtmGroupingExperiment
{
friend PtmSampleScan;
public:
PtmGroupingExperiment();
~PtmGroupingExperiment();
......@@ -60,6 +62,7 @@ public:
private:
std::vector<unsigned int> getPtmPositions(const ProteinMatch * protein_match) const;
std::vector<unsigned int> getPtmPositions(const PeptideMatch * p_peptide_match) const;
std::vector< PtmIslandSp > mergePeptideMatchPtmIslandList(vector< PtmIslandSp > ptm_island_list);
void addPtmIsland(PtmIslandSp ptm_island);
......
......@@ -28,6 +28,7 @@
******************************************************************************/
#include "ptmsamplescan.h"
#include "../../grouping/ptm/ptmgroupingexperiment.h"
PtmSampleScan::PtmSampleScan(const PeptideMatch * p_peptide_match) {
_peptide_match_list.push_back(p_peptide_match);
......@@ -61,7 +62,11 @@ bool PtmSampleScan::add(const PeptideMatch * p_peptide_match) {
return true;
}
std::vector<unsigned int> PtmSampleScan::getBestPtmPositionList() const {
std::vector<unsigned int> PtmSampleScan::getBestPtmPositionList(const PtmGroupingExperiment * p_ptm_grouping_experiment) const {
return p_ptm_grouping_experiment->getPtmPositions(getRepresentativePeptideMatch());
}
std::vector<unsigned int> PtmSampleScan::getObservedPtmPositionList(const PtmGroupingExperiment * p_ptm_grouping_experiment) const {
std::vector<unsigned int> list;
return list;
......
......@@ -33,6 +33,7 @@
#include <memory>
#include "../../core/peptidematch.h"
class PtmGroupingExperiment;
class PtmSampleScan;
/** \brief shared pointer on a PtmSampleScan object
......@@ -49,7 +50,9 @@ public:
const PeptideMatch * getRepresentativePeptideMatch() const;
bool add(const PeptideMatch * p_peptide_match);
std::vector<unsigned int> getBestPtmPositionList() const;
std::vector<unsigned int> getBestPtmPositionList(const PtmGroupingExperiment * p_ptm_grouping_experiment) const;
std::vector<unsigned int> getObservedPtmPositionList(const PtmGroupingExperiment * p_ptm_grouping_experiment) const;
private:
std::vector<const PeptideMatch *> _peptide_match_list;
......
......@@ -150,3 +150,7 @@ void PtmIslandListWindow::askViewPtmPeptideList(PtmIsland * ptm_island) {
_p_current_ptm_peptide_list_window->show();
}
const IdentificationGroup * PtmIslandListWindow::getIdentificationGroup() const {
return _p_identification_group;
}
......@@ -50,6 +50,7 @@ public:
~PtmIslandListWindow();
void setIdentificationGroup(IdentificationGroup * p_identification_group);
void resizeColumnsToContents();
const IdentificationGroup * getIdentificationGroup() const;
public slots:
......
......@@ -72,5 +72,5 @@ PtmPeptideListWindow::~PtmPeptideListWindow() {
}
void PtmPeptideListWindow::setPtmIsland(PtmIsland * p_ptm_island) {
_p_ptm_island = p_ptm_island;
_ptm_table_model_p->setPtmIsland(_p_ptm_island);
_ptm_table_model_p->setPtmIsland(_p_ptm_island_list_window->getIdentificationGroup()->getPtmGroupingExperiment(), _p_ptm_island);
}
......@@ -29,6 +29,7 @@
#include "ptmpeptidetablemodel.h"
#include "ptmpeptidelistwindow.h"
#include <QDebug>
#include <QStringList>
PtmPeptideTableModel::PtmPeptideTableModel(PtmPeptideListWindow * p_ptm_peptide_list_window) {
}
......@@ -153,7 +154,7 @@ int PtmPeptideTableModel::rowCount(const QModelIndex &parent ) const {
}
int PtmPeptideTableModel::columnCount(const QModelIndex &parent ) const {
//qDebug() << "ProteinTableModel::columnCount begin ";
return 12;
return 15;
}
QVariant PtmPeptideTableModel::headerData(int section, Qt::Orientation orientation, int role) const
{
......@@ -175,6 +176,7 @@ QVariant PtmPeptideTableModel::data(const QModelIndex &index, int role ) const {
// generate a log message when this method gets called
int row = index.row();
int col = index.column();
QStringList position_list;
if (row >= _ptm_sample_scan_list.size()) return QVariant();
switch(role) {
......@@ -221,10 +223,17 @@ QVariant PtmPeptideTableModel::data(const QModelIndex &index, int role ) const {
return _ptm_sample_scan_list.at(row).get()->getRepresentativePeptideMatch()->getParam(PeptideMatchParam::tandem_hyperscore);
break;
case (std::int8_t)PtmPeptideListColumn::bestposition:
//return _ptm_sample_scan_list.at(row).get()->getBestPtmPositionList();
for (unsigned int position :_ptm_sample_scan_list.at(row).get()->getBestPtmPositionList(_p_ptm_grouping_experiment)) {
position_list << QString("%1").arg(position+1);
}
return QVariant(position_list.join(" "));
break;
case (std::int8_t)PtmPeptideListColumn::allobservedposition:
//return _ptm_sample_scan_list.at(row).get()->getObservedPtmPositionList();
for (unsigned int position :_ptm_sample_scan_list.at(row).get()->getObservedPtmPositionList(_p_ptm_grouping_experiment)) {
position_list << QString("%1").arg(position+1);
}
return QVariant(position_list.join(" "));
break;
}
......@@ -232,10 +241,11 @@ QVariant PtmPeptideTableModel::data(const QModelIndex &index, int role ) const {
return QVariant();
}
void PtmPeptideTableModel::setPtmIsland(PtmIsland * ptm_island) {
void PtmPeptideTableModel::setPtmIsland(const PtmGroupingExperiment * p_ptm_grouping_experiment, PtmIsland * ptm_island) {
qDebug() << "tmPeptideTableModel::setPtmIsland begin ";
beginResetModel();
_p_ptm_grouping_experiment = p_ptm_grouping_experiment;
_p_ptm_island = ptm_island;
_ptm_sample_scan_list = ptm_island->getPtmSampleScanSpList();
//emit headerDataChanged(Qt::Horizontal, 0,11);
......
......@@ -73,7 +73,7 @@ public:
static const QString getDescription(PtmPeptideListColumn column);
~PtmPeptideTableModel();
void setPtmIsland(PtmIsland * ptm_island);
void setPtmIsland(const PtmGroupingExperiment * p_ptm_grouping_experiment, PtmIsland * ptm_island);
private :
static const QString getTitle(std::int8_t column);
......@@ -82,6 +82,7 @@ private :
private:
std::vector<PtmSampleScanSp> _ptm_sample_scan_list;
const PtmIsland * _p_ptm_island;
const PtmGroupingExperiment * _p_ptm_grouping_experiment;
};
#endif // PTMPEPTIDETABLEMODEL_H
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment