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

new columns and titles

parent 812d8c83
No related branches found
No related tags found
No related merge requests found
......@@ -150,6 +150,13 @@ std::vector< PtmIslandSp > PtmGroupingExperiment::mergePeptideMatchPtmIslandList
}
unsigned int PtmGroupingExperiment::countPeptideMatchPtm(const PeptideMatch* p_peptide_match)const {
unsigned int number=0;
for (pappso::AaModificationP modification: _modification_list) {
number += p_peptide_match->getPeptideXtpSp().get()->getNumberOfModification(modification);
}
return number;
}
std::vector<unsigned int> PtmGroupingExperiment::getPtmPositions(const ProteinMatch * protein_match) const {
std::vector<unsigned int> position_list;
......
......@@ -47,6 +47,9 @@ public:
void startGrouping();
const std::vector<PtmIslandSp> & getPtmIslandList() const;
/** @brief count number of modifications in a PeptideMatch
* */
unsigned int countPeptideMatchPtm(const PeptideMatch* p_peptide_match)const;
private:
std::vector<unsigned int> getPtmPositions(const ProteinMatch * protein_match) const;
......
......@@ -31,7 +31,9 @@
#include <pappsomspp/pappsoexception.h>
#include "ptmislandsubgroup.h"
#include "ptmislandgroup.h"
#include "ptmgroupingexperiment.h"
#include <pappsomspp/utils.h>
#include <set>
PtmIsland::PtmIsland(const ProteinMatch* p_protein_match, unsigned int position):_protein_match_p(p_protein_match)
{
......@@ -47,9 +49,30 @@ PtmIsland::~PtmIsland()
}
const std::vector<unsigned int> & PtmIsland::getPositionList() const {
return _position_list;
unsigned int PtmIsland::countSampleScanMultiPtm(const PtmGroupingExperiment * p_ptm_grouping_experiment) const {
std::set<std::size_t> sample_scan_list;
for (auto & p_peptide_match : _peptide_match_list) {
if (p_ptm_grouping_experiment->countPeptideMatchPtm(p_peptide_match) > 1) {
sample_scan_list.insert(p_peptide_match->getHashSampleScan());
}
}
return sample_scan_list.size();
}
unsigned int PtmIsland::countSequence() const {
std::set<QString> sequence_list;
for (auto & p_peptide_match : _peptide_match_list) {
sequence_list.insert(p_peptide_match->getPeptideXtpSp().get()->getSequence());
}
//qDebug() <<"ProteinMatch::countValidAndCheckedPeptide end " << sequence_list.size();
return sequence_list.size();
}
const PtmIslandSubgroup * PtmIsland::getPtmIslandSubroup() const {
return _ptm_island_subgroup_p;
}
const std::vector<unsigned int> & PtmIsland::getPositionList() const {
return _position_list;
}
const QString PtmIsland::getGroupingId() const {
if(_prot_number==0) {
return "";
......
......@@ -34,6 +34,7 @@
#include "../../core/peptidematch.h"
#include <memory>
class PtmGroupingExperiment;
class PtmIslandSubgroup;
class PtmIsland;
......@@ -64,6 +65,9 @@ public:
const QString getGroupingId() const;
const std::vector<unsigned int> & getPositionList() const;
const PtmIslandSubgroup * getPtmIslandSubroup() const;
unsigned int countSequence() const;
unsigned int countSampleScanMultiPtm(const PtmGroupingExperiment * p_ptm_grouping_experiment) const;
private:
const ProteinMatch * _protein_match_p;
......
......@@ -170,7 +170,7 @@ QVariant ProteinTableModel::data(const QModelIndex &index, int role ) const {
return QVariant ((qreal)_p_identification_group->getProteinMatchList().at(row)->getLogEvalue());
}
if (_column_assignment[col] == (std::int8_t) ProteinListColumn::spectrum ) {
return QVariant ((qreal) _p_identification_group->getProteinMatchList().at(row)->countPeptideMatch(ValidationState::validAndChecked));
return QVariant ((qreal) _p_identification_group->getProteinMatchList().at(row)->countSampleScan(ValidationState::validAndChecked));
}
if (_column_assignment[col] == (std::int8_t) ProteinListColumn::specific_spectrum ) {
......
......@@ -30,13 +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
(std::int8_t)PtmIslandListColumn::description,
(std::int8_t)PtmIslandListColumn::spectrum,
(std::int8_t)PtmIslandListColumn::sequence,
(std::int8_t)PtmIslandListColumn::ptm_position_list,
(std::int8_t)PtmIslandListColumn::multiptm
};
......@@ -48,6 +51,34 @@ PtmIslandTableModel::PtmIslandTableModel(PtmIslandListWindow * p_ptm_island_list
PtmIslandTableModel::~PtmIslandTableModel()
{
}
const QString PtmIslandTableModel::getTitle(std::int8_t column) const {
switch (column) {
case (std::int8_t) PtmIslandListColumn::spectrum:
return "spectrum";
break;
case (std::int8_t) PtmIslandListColumn::description:
return "description";
break;
case (std::int8_t) PtmIslandListColumn::multiptm:
return "multi PTM";
break;
case (std::int8_t) PtmIslandListColumn::sequence:
return "sequence";
break;
case (std::int8_t) PtmIslandListColumn::ptm_island_id:
return "PTM island ID";
break;
case (std::int8_t) PtmIslandListColumn::accession:
return "accession";
break;
case (std::int8_t) PtmIslandListColumn::ptm_position_list:
return "ptm positions";
}
return "";
}
void PtmIslandTableModel::setIdentificationGroup(IdentificationGroup * p_identification_group) {
qDebug() << "PtmIslandTableModel::setIdentificationGroup begin ";
......@@ -75,7 +106,7 @@ int PtmIslandTableModel::rowCount(const QModelIndex &parent ) const {
int PtmIslandTableModel::columnCount(const QModelIndex &parent ) const {
//qDebug() << "ProteinTableModel::columnCount begin ";
if (getPtmGroupingExperiment() != nullptr) {
return 3;
return 7;
}
return 0;
}
......@@ -84,6 +115,10 @@ QVariant PtmIslandTableModel::headerData(int section, Qt::Orientation orientatio
if (getPtmGroupingExperiment() == nullptr) return QVariant();
if (orientation == Qt::Horizontal)
{
if (role == Qt::DisplayRole)
{
return QVariant(getTitle(_column_assignment [section]));
}
}
return QVariant();
}
......@@ -98,6 +133,20 @@ QVariant PtmIslandTableModel::data(const QModelIndex &index, int role ) const {
return QVariant();
}
switch (_column_assignment [col]) {
case (std::int8_t) PtmIslandListColumn::spectrum:
return QVariant(getPtmGroupingExperiment()->getPtmIslandList().at(row).get()->getPtmIslandSubroup()->countSampleScan());
break;
case (std::int8_t) PtmIslandListColumn::description:
return QVariant(getPtmGroupingExperiment()->getPtmIslandList().at(row).get()->getProteinMatch()->getProteinXtpSp().get()->getDescription());
break;
case (std::int8_t) PtmIslandListColumn::multiptm:
return QVariant(getPtmGroupingExperiment()->getPtmIslandList().at(row).get()->countSampleScanMultiPtm(getPtmGroupingExperiment()));
break;
case (std::int8_t) PtmIslandListColumn::sequence:
return QVariant(getPtmGroupingExperiment()->getPtmIslandList().at(row).get()->countSequence());
break;
case (std::int8_t) PtmIslandListColumn::ptm_island_id:
return QVariant(getPtmGroupingExperiment()->getPtmIslandList().at(row).get()->getGroupingId());
break;
......@@ -110,7 +159,6 @@ QVariant PtmIslandTableModel::data(const QModelIndex &index, int role ) const {
position_list << QString("%1").arg(position+1);
}
return QVariant(position_list.join(" "));
break;
}
}
return QVariant();
......@@ -121,4 +169,4 @@ void PtmIslandTableModel::onPtmIslandDataChanged() {
qDebug() << "PtmIslandTableModel::onPtmIslandDataChanged begin " << rowCount();
emit layoutAboutToBeChanged();
emit layoutChanged();
}
\ No newline at end of file
}
......@@ -33,6 +33,7 @@
#include <QAbstractTableModel>
#include "../../core/identificationgroup.h"
#include "../../grouping/ptm/ptmgroupingexperiment.h"
#include "../../utils/types.h"
class PtmIslandListWindow;
class PtmIslandTableModel: public QAbstractTableModel
......@@ -50,6 +51,9 @@ public:
virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
const QString getTitle(std::int8_t column) const;
using columnMap = std::int8_t[20];
public slots:
......
......@@ -118,11 +118,15 @@ enum class ProteinListColumn {
*
*/
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
enum class PtmIslandListColumn {
ptm_island_id, ///< ptm_island_id
accession, ///< protein accession
description, ///< protein description
ptm_position_list, ///< ptm position list
spectrum, ///< count sample scans
sequence, ///< unique sequence count
multiptm, ///< count multi ptm peptide match
};
#endif /* _TYPES_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