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_ */