diff --git a/src/grouping/ptm/ptmisland.cpp b/src/grouping/ptm/ptmisland.cpp index 0603f9fba323823301659a6cac9d9575d0c9ca6e..6d588704ea6116da97470134e10726ab72f969b6 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 62f13ac63b5c4b6c42ed0459408bcd503fdada9c..a06a6f17c0ecb8e3e7639ac842680d52bf6dcced 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 bfd6082bf401aa778217bc173a89edee91a82991..43ed0b6de2b373d875c6855550b904885fc99da0 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 11ee41c3e54d15a78bc0e03bd0a4adc1e9e71193..7cb1ca9307bb42f887daf6b7d9833219d3f403aa 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 9bf617565658a83712b894d44a73cc3ed75252ad..a3934d2f62e045586653df77df377fe60f67f54f 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_ */