libpappsomspp
Library for mass spectrometry
Toggle main menu visibility
Loading...
Searching...
No Matches
obolistmodel.cpp
Go to the documentation of this file.
1
/**
2
* \file pappsomspp/widget/obo/obolistwidget/obolistmodel.h
3
* \date 19/04/2021
4
* \author Olivier Langella
5
* \brief MVC model of OBO term list
6
*/
7
8
9
/*******************************************************************************
10
* Copyright (c) 2021 Olivier Langella
11
*<Olivier.Langella@universite-paris-saclay.fr>.
12
*
13
* This file is part of the PAPPSOms++ library.
14
*
15
* PAPPSOms++ is free software: you can redistribute it and/or modify
16
* it under the terms of the GNU General Public License as published by
17
* the Free Software Foundation, either version 3 of the License, or
18
* (at your option) any later version.
19
*
20
* PAPPSOms++ is distributed in the hope that it will be useful,
21
* but WITHOUT ANY WARRANTY; without even the implied warranty of
22
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23
* GNU General Public License for more details.
24
*
25
* You should have received a copy of the GNU General Public License
26
* along with PAPPSOms++. If not, see <http://www.gnu.org/licenses/>.
27
*
28
******************************************************************************/
29
30
#include "
obolistmodel.h
"
31
#include "
pappsomspp/core/obo/obopsimod.h
"
32
#include "
pappsomspp/core/obo/obounimod.h
"
33
#include "
obolistwidget.h
"
34
#include "
pappsomspp/core/exception/exceptionnotfound.h
"
35
#include "
pappsomspp/core/amino_acid/chemicalformula.h
"
36
37
#include <QColor>
38
#include <QDebug>
39
40
using namespace
pappso
;
41
42
OboListModel::OboListModel
(QObject *parent) : QStringListModel(parent)
43
{
44
}
45
46
OboListModel::~OboListModel
()
47
{
48
}
49
50
pappso::OboListModel::OboPsiModHandler::OboPsiModHandler
(
pappso::OboListModel
*parent)
51
{
52
mp_parent
= parent;
53
}
54
55
pappso::OboListModel::OboPsiModHandler::~OboPsiModHandler
()
56
{
57
}
58
59
void
60
pappso::OboListModel::OboPsiModHandler::setOboPsiModTerm
(
const
pappso::OboPsiModTerm
&term)
61
{
62
mp_parent
->m_oboPsiModTermList.push_back(term);
63
}
64
65
66
void
67
OboListModel::loadPsiMod
()
68
{
69
OboPsiModHandler
handler(
this
);
70
OboPsiMod
reader(handler);
71
OboUnimod
unimod_reader(handler);
72
73
74
// https://pubchem.ncbi.nlm.nih.gov/compound/640368
75
OboPsiModTerm
term;
76
term.
setAccession
(
"USER:2-Ethynylbenzaldehyde"
);
77
term.
m_diffFormula
=
"H 4 C 9 O 0"
;
// C9H6O
78
term.
m_name
=
"2-Ethynylbenzaldehyde"
;
79
ChemicalFormula
formula;
80
formula.
setOboPsiModTerm
(term);
81
term.
m_diffMono
= formula.
getMass
();
82
83
m_oboPsiModTermList
.push_back(term);
84
85
qDebug() <<
m_oboPsiModTermList
.size();
86
}
87
88
QVariant
89
pappso::OboListModel::data
(
const
QModelIndex &index,
int
role)
const
90
{
91
92
// generate a log message when this method gets called
93
std::size_t row = index.row();
94
// int col = index.column();
95
// qDebug() << QString("row %1, col%2, role %3")
96
// .arg(row).arg(col).arg(role);
97
if
(row <
m_oboPsiModTermList
.size())
98
{
99
100
switch
(role)
101
{
102
case
Qt::CheckStateRole:
103
104
break
;
105
case
Qt::BackgroundRole:
106
// return QVariant(QColor("grey"));
107
break
;
108
case
Qt::SizeHintRole:
109
// qDebug() << "ProteinTableModel::headerData " <<
110
// ProteinTableModel::getColumnWidth(section);
111
// return QSize(PeptideTableModel::getColumnWidth(col), 30);
112
break
;
113
case
Qt::ToolTipRole:
114
break
;
115
case
Qt::DisplayRole:
116
return
QVariant(QString(
"%1 %2 %3"
)
117
.arg(
m_oboPsiModTermList
[row].getAccession())
118
.arg(
m_oboPsiModTermList
[row].m_diffMono)
119
.arg(
m_oboPsiModTermList
[row].m_name));
120
break
;
121
case
Qt::UserRole:
122
QVariant value;
123
value.setValue(
m_oboPsiModTermList
[row]);
124
return
value;
125
break
;
126
}
127
}
128
return
QVariant();
129
}
130
131
int
132
pappso::OboListModel::rowCount
(
const
QModelIndex &parent [[maybe_unused]])
const
133
{
134
return
(
int
)
m_oboPsiModTermList
.size();
135
}
136
137
const
pappso::OboPsiModTerm
&
138
pappso::OboListModel::getOboPsiModTerm
(
int
row)
const
139
{
140
if
(row < (
int
)
m_oboPsiModTermList
.size())
141
{
142
return
m_oboPsiModTermList
[row];
143
}
144
else
145
{
146
throw
pappso::ExceptionNotFound
(tr(
"OBO term not found"
));
147
}
148
}
chemicalformula.h
pappso::ChemicalFormula
Definition
chemicalformula.h:44
pappso::ChemicalFormula::setOboPsiModTerm
void setOboPsiModTerm(const OboPsiModTerm &term)
get formula from an Obo term
Definition
chemicalformula.cpp:352
pappso::ChemicalFormula::getMass
double getMass() const
Definition
chemicalformula.cpp:296
pappso::ExceptionNotFound
Definition
exceptionnotfound.h:32
pappso::OboListModel::OboPsiModHandler
Definition
obolistmodel.h:71
pappso::OboListModel::OboPsiModHandler::~OboPsiModHandler
virtual ~OboPsiModHandler()
Definition
obolistmodel.cpp:55
pappso::OboListModel::OboPsiModHandler::mp_parent
pappso::OboListModel * mp_parent
Definition
obolistmodel.h:80
pappso::OboListModel::OboPsiModHandler::OboPsiModHandler
OboPsiModHandler(OboListModel *parent)
Definition
obolistmodel.cpp:50
pappso::OboListModel::OboPsiModHandler::setOboPsiModTerm
void setOboPsiModTerm(const OboPsiModTerm &term) override
triggered function on each obo term when parsing obo file
Definition
obolistmodel.cpp:60
pappso::OboListModel
Definition
obolistmodel.h:46
pappso::OboListModel::data
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
Definition
obolistmodel.cpp:89
pappso::OboListModel::getOboPsiModTerm
const OboPsiModTerm & getOboPsiModTerm(int row) const
Definition
obolistmodel.cpp:138
pappso::OboListModel::OboListModel
OboListModel(QObject *parent=nullptr)
Definition
obolistmodel.cpp:42
pappso::OboListModel::m_oboPsiModTermList
std::vector< OboPsiModTerm > m_oboPsiModTermList
Definition
obolistmodel.h:83
pappso::OboListModel::rowCount
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Definition
obolistmodel.cpp:132
pappso::OboListModel::~OboListModel
~OboListModel()
Definition
obolistmodel.cpp:46
pappso::OboListModel::loadPsiMod
void loadPsiMod()
Definition
obolistmodel.cpp:67
pappso::OboPsiModTerm
Definition
obopsimodterm.h:34
pappso::OboPsiModTerm::setAccession
void setAccession(const QString &accession)
Definition
obopsimodterm.cpp:267
pappso::OboPsiModTerm::m_diffFormula
QString m_diffFormula
Definition
obopsimodterm.h:62
pappso::OboPsiModTerm::m_diffMono
double m_diffMono
Definition
obopsimodterm.h:66
pappso::OboPsiModTerm::m_name
QString m_name
Definition
obopsimodterm.h:58
pappso::OboPsiMod
Definition
obopsimod.h:35
pappso::OboUnimod
Definition
obounimod.h:39
exceptionnotfound.h
pappso
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition
aa.cpp:39
obolistmodel.h
obolistwidget.h
obopsimod.h
obounimod.h
pappsomspp
gui
obo
obolistwidget
obolistmodel.cpp
Generated on
for libpappsomspp by
1.17.0