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

PTM search on description, groups, peptides, sequences

parent e38289d2
No related branches found
No related tags found
No related merge requests found
......@@ -83,7 +83,7 @@ const std::vector<PtmIslandGroupSp> & PtmGroupingExperiment::getPtmIslandGroupLi
}
const std::vector<PtmIslandSp> & PtmGroupingExperiment::getPtmIslandList() const {
qDebug() << "PtmGroupingExperiment::getPtmIslandList begin" << _ptm_island_list.size();
//qDebug() << "PtmGroupingExperiment::getPtmIslandList begin" << _ptm_island_list.size();
return _ptm_island_list;
}
......
......@@ -67,7 +67,7 @@
</widget>
</item>
<item>
<widget class="QLineEdit" name="protein_search_edit"/>
<widget class="QLineEdit" name="ptm_search_edit"/>
</item>
</layout>
</item>
......@@ -79,19 +79,52 @@
<x>0</x>
<y>0</y>
<width>826</width>
<height>23</height>
<height>25</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
<connections>
<connection>
<sender>ptm_search_edit</sender>
<signal>textChanged(QString)</signal>
<receiver>PtmIslandListWindow</receiver>
<slot>doPtmSearchEdit(QString)</slot>
<hints>
<hint type="sourcelabel">
<x>485</x>
<y>357</y>
</hint>
<hint type="destinationlabel">
<x>1025</x>
<y>289</y>
</hint>
</hints>
</connection>
<connection>
<sender>search_combobox</sender>
<signal>activated(QString)</signal>
<receiver>PtmIslandListWindow</receiver>
<slot>doSearchOn(QString)</slot>
<hints>
<hint type="sourcelabel">
<x>76</x>
<y>352</y>
</hint>
<hint type="destinationlabel">
<x>988</x>
<y>347</y>
</hint>
</hints>
</connection>
</connections>
<slots>
<slot>doNotValidHide(bool)</slot>
<slot>doNotCheckedHide(bool)</slot>
<slot>doNotGroupedHide(bool)</slot>
<slot>onProteinSearchEdit(QString)</slot>
<slot>doPtmSearchEdit(QString)</slot>
<slot>doSearchOn(QString)</slot>
</slots>
</ui>
......@@ -55,7 +55,7 @@ PtmIslandListWindow::PtmIslandListWindow(ProjectWindow *parent):
ui->ptm_island_tableview->setAlternatingRowColors(true);
_statusbar_ptm_islands_label = new QLabel("");
ui->statusbar->addWidget(_statusbar_ptm_islands_label);
......@@ -177,3 +177,12 @@ void PtmIslandListWindow::updateStatusBar() {
}
}
void PtmIslandListWindow::doPtmSearchEdit(QString ptm_search_string) {
_ptm_proxy_model_p->setPtmSearchString(ptm_search_string);
emit ptmIslandDataChanged();
}
void PtmIslandListWindow::doSearchOn(QString search_on) {
_ptm_proxy_model_p->setSearchOn(search_on);
emit ptmIslandDataChanged();
}
......@@ -61,6 +61,9 @@ public slots:
protected slots:
void updateStatusBar();
void doPtmSearchEdit(QString ptm_search_string);
void doSearchOn(QString search_on);
signals:
void ptmIslandDataChanged();
......
......@@ -36,8 +36,10 @@
PtmIslandProxyModel::PtmIslandProxyModel(PtmIslandListWindow * p_ptm_island_list_window, PtmIslandTableModel* ptm_table_model_p)
{
_p_ptm_island_list_window = p_ptm_island_list_window;
_p_ptm_island_table_model = ptm_table_model_p;
_p_ptm_island_list_window = p_ptm_island_list_window;
_p_ptm_island_table_model = ptm_table_model_p;
_ptm_search_string = "";
_search_on = "accession";
}
PtmIslandProxyModel::~PtmIslandProxyModel()
......@@ -52,6 +54,40 @@ bool PtmIslandProxyModel::filterAcceptsRow(int source_row,
PtmIslandSp sp_ptm_island = _p_ptm_island_table_model->getPtmGroupingExperiment()->getPtmIslandList().at(source_row);
//qDebug() << "ProteinTableProxyModel::filterAcceptsRow protein_match " << source_row;
if (!_ptm_search_string.isEmpty()) {
if (_search_on == "accession") {
if (!sp_ptm_island.get()->getProteinMatch()->getProteinXtpSp().get()->getAccession().contains(_ptm_search_string)) {
return false;
}
}
else if (_search_on == "group") {
if (!sp_ptm_island.get()->getGroupingId().startsWith(QString("ptm%1").arg(_ptm_search_string))) {
return false;
}
}
else if (_search_on == "sequence") {
if (!sp_ptm_island.get()->getProteinMatch()->getProteinXtpSp().get()->getSequence().contains(_ptm_search_string)) {
return false;
}
}
else if (_search_on == "peptide") {
QString peptide_search_string = QString(_ptm_search_string).replace("L","I");
for (const PeptideMatch & p_peptide_match: sp_ptm_island.get()->getProteinMatch()->getPeptideMatchList()) {
if (p_peptide_match.getPeptideEvidence()->getPeptideXtpSp().get()->getSequenceLi().contains(peptide_search_string)) {
return true;
}
}
return false;
}
else if (_search_on == "description") {
//description
if (!sp_ptm_island.get()->getProteinMatch()->getProteinXtpSp().get()->getDescription().contains(_ptm_search_string)) {
return false;
}
}
}
if (sp_ptm_island != nullptr) {
return true;
}
......@@ -84,16 +120,25 @@ void PtmIslandProxyModel::onTableClicked(const QModelIndex &index)
QModelIndex source_index(this->mapToSource(index));
int row = source_index.row();
int col = source_index.column();
//ProteinMatch* p_protein_match = _p_ptm_island_table_model->getIdentificationGroup()->getProteinMatchList().at(row);
if ((col == (std::int8_t) PtmIslandListColumn::accession)||(col == (std::int8_t) PtmIslandListColumn::description)) {
//_p_ptm_island_table_model->askPtmProteinDetailView(p_protein_match);
}
else {
_p_ptm_island_list_window->askViewPtmPeptideList(_p_ptm_island_table_model->getPtmGroupingExperiment()->getPtmIslandList().at(row).get());
}
if ((col == (std::int8_t) PtmIslandListColumn::accession)||(col == (std::int8_t) PtmIslandListColumn::description)) {
//_p_ptm_island_table_model->askPtmProteinDetailView(p_protein_match);
}
else {
_p_ptm_island_list_window->askViewPtmPeptideList(_p_ptm_island_table_model->getPtmGroupingExperiment()->getPtmIslandList().at(row).get());
}
qDebug() << "PtmIslandProxyModel::onTableClicked end " << index.row();
}
void PtmIslandProxyModel::setSearchOn(QString search_on) {
_search_on = search_on;
}
void PtmIslandProxyModel::setPtmSearchString(QString ptm_search_string) {
_ptm_search_string = ptm_search_string;
}
......@@ -45,14 +45,20 @@ public:
~PtmIslandProxyModel();
bool filterAcceptsRow(int source_row,
const QModelIndex &source_parent) const override;
void setSearchOn(QString search_on);
void setPtmSearchString(QString ptm_search_string) ;
public slots:
void onTableClicked(const QModelIndex &index);
private:
PtmIslandListWindow * _p_ptm_island_list_window;
PtmIslandTableModel * _p_ptm_island_table_model;
QString _search_on;
QString _ptm_search_string;
};
#endif // PTMISLANDPROXYMODEL_H
......@@ -143,9 +143,9 @@ const PtmGroupingExperiment * PtmIslandTableModel::getPtmGroupingExperiment() co
return _p_identification_group->getPtmGroupingExperiment();
}
int PtmIslandTableModel::rowCount(const QModelIndex &parent ) const {
qDebug() << "PtmIslandTableModel::rowCount begin ";
//qDebug() << "PtmIslandTableModel::rowCount begin ";
if (getPtmGroupingExperiment() != nullptr) {
qDebug() << "PtmIslandTableModel::rowCount(const QModelIndex &parent ) " << getPtmGroupingExperiment()->getPtmIslandList().size();
//qDebug() << "PtmIslandTableModel::rowCount(const QModelIndex &parent ) " << getPtmGroupingExperiment()->getPtmIslandList().size();
return (int) getPtmGroupingExperiment()->getPtmIslandList().size();
}
return 0;
......
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