From 812d8c83b34b902beb3ad62c42dc00feb1bb76d9 Mon Sep 17 00:00:00 2001 From: Olivier Langella <Olivier.Langella@moulon.inra.fr> Date: Tue, 30 May 2017 17:28:51 +0200 Subject: [PATCH] ptm position list added --- src/grouping/ptm/ptmisland.cpp | 3 +++ src/grouping/ptm/ptmisland.h | 1 + .../ptmislandtablemodel.cpp | 23 ++++++++++++++++--- .../ptmislandtablemodel.h | 5 ++++ src/utils/types.h | 12 ++++++++++ 5 files changed, 41 insertions(+), 3 deletions(-) diff --git a/src/grouping/ptm/ptmisland.cpp b/src/grouping/ptm/ptmisland.cpp index 0603f9fba..6d588704e 100644 --- a/src/grouping/ptm/ptmisland.cpp +++ b/src/grouping/ptm/ptmisland.cpp @@ -47,6 +47,9 @@ PtmIsland::~PtmIsland() } + const std::vector<unsigned int> & PtmIsland::getPositionList() const { + return _position_list; + } const QString PtmIsland::getGroupingId() const { if(_prot_number==0) { return ""; diff --git a/src/grouping/ptm/ptmisland.h b/src/grouping/ptm/ptmisland.h index 62f13ac63..a06a6f17c 100644 --- a/src/grouping/ptm/ptmisland.h +++ b/src/grouping/ptm/ptmisland.h @@ -63,6 +63,7 @@ public: const QString getGroupingId() const; + const std::vector<unsigned int> & getPositionList() const; private: const ProteinMatch * _protein_match_p; diff --git a/src/gui/ptm_island_list_view/ptmislandtablemodel.cpp b/src/gui/ptm_island_list_view/ptmislandtablemodel.cpp index bfd6082bf..43ed0b6de 100644 --- a/src/gui/ptm_island_list_view/ptmislandtablemodel.cpp +++ b/src/gui/ptm_island_list_view/ptmislandtablemodel.cpp @@ -30,6 +30,16 @@ #include "ptmislandtablemodel.h" #include "ptmislandlistwindow.h" +#include "../../utils/types.h" + + +PtmIslandTableModel::columnMap PtmIslandTableModel::_column_assignment = { + (std::int8_t)PtmIslandListColumn::ptm_island_id, + (std::int8_t)PtmIslandListColumn::accession, + (std::int8_t)PtmIslandListColumn::ptm_position_list +}; + + PtmIslandTableModel::PtmIslandTableModel(PtmIslandListWindow * p_ptm_island_list_window) { @@ -87,12 +97,19 @@ QVariant PtmIslandTableModel::data(const QModelIndex &index, int role ) const { if (_p_identification_group == nullptr) { return QVariant(); } - switch (col) { - case 0: + switch (_column_assignment [col]) { + case (std::int8_t) PtmIslandListColumn::ptm_island_id: return QVariant(getPtmGroupingExperiment()->getPtmIslandList().at(row).get()->getGroupingId()); break; - case 1: + case (std::int8_t) PtmIslandListColumn::accession: return QVariant(getPtmGroupingExperiment()->getPtmIslandList().at(row).get()->getProteinMatch()->getProteinXtpSp().get()->getAccession()); + break; + case (std::int8_t) PtmIslandListColumn::ptm_position_list: + QStringList position_list; + for (unsigned int position :getPtmGroupingExperiment()->getPtmIslandList().at(row).get()->getPositionList()) { + position_list << QString("%1").arg(position+1); + } + return QVariant(position_list.join(" ")); break; } } diff --git a/src/gui/ptm_island_list_view/ptmislandtablemodel.h b/src/gui/ptm_island_list_view/ptmislandtablemodel.h index 11ee41c3e..7cb1ca930 100644 --- a/src/gui/ptm_island_list_view/ptmislandtablemodel.h +++ b/src/gui/ptm_island_list_view/ptmislandtablemodel.h @@ -48,6 +48,9 @@ public: virtual int columnCount(const QModelIndex &parent = QModelIndex()) const override; virtual QVariant headerData(int section, Qt::Orientation orientation, int role) const override; virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; + + + using columnMap = std::int8_t[20]; public slots: void onPtmIslandDataChanged(); @@ -55,6 +58,8 @@ private : const PtmGroupingExperiment * getPtmGroupingExperiment() const; private : IdentificationGroup * _p_identification_group=nullptr; + + static columnMap _column_assignment; }; #endif // PTMISLANDTABLEMODEL_H diff --git a/src/utils/types.h b/src/utils/types.h index 9bf617565..a3934d2f6 100644 --- a/src/utils/types.h +++ b/src/utils/types.h @@ -113,4 +113,16 @@ enum class ProteinListColumn { pai, ///< PAI }; + +/** \def PtmIslandListColumn list of available fields to display in ptm island list + * + */ + +enum class PtmIslandListColumn: std::int8_t { + ptm_island_id=0, ///< ptm_island_id + accession=1, ///< protein accession + description=2, ///< protein description + ptm_position_list=3, ///< protein description +}; + #endif /* _TYPES_H_ */ -- GitLab