From e618fd14ad29db8a782cd9048c7eaf1dca56c753 Mon Sep 17 00:00:00 2001 From: Olivier Langella <olivier.langella@u-psud.fr> Date: Mon, 8 Jan 2018 22:16:10 +0100 Subject: [PATCH] look for msrun and scan number in protein list --- src/CMakeLists.txt | 4 +- src/gui/protein_list_view/protein_view.ui | 40 ++++++++++++++++++- .../protein_list_view/proteinlistwindow.cpp | 8 ++++ src/gui/protein_list_view/proteinlistwindow.h | 2 + .../proteintableproxymodel.cpp | 30 ++++++++++++++ .../proteintableproxymodel.h | 1 + 6 files changed, 82 insertions(+), 3 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8df429b3..74c5329c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -28,8 +28,8 @@ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Xml_EXECUTABLE_COMPILE_FLAGS} ${Qt5 #sudo apt-get install libpappsomspp-dev #FIND_PACKAGE( Pappsomspp REQUIRED ) -#SET (PAPPSOMSPP_DIR "/home/olivier/eclipse/git/pappsomspp") - SET (PAPPSOMSPP_DIR "/home/langella/developpement/git/pappsomspp") +SET (PAPPSOMSPP_DIR "/home/olivier/eclipse/git/pappsomspp") +# SET (PAPPSOMSPP_DIR "/home/langella/developpement/git/pappsomspp") SET (PAPPSOMSPP_INCLUDE_DIR "${PAPPSOMSPP_DIR}/src") SET (PAPPSOMSPP_QT5_LIBRARY "${PAPPSOMSPP_DIR}/cbuild/src/libpappsomspp-qt5.so") SET (PAPPSOMSPP_WIDGET_QT5_LIBRARY "${PAPPSOMSPP_DIR}/cbuild/src/pappsomspp/widget/libpappsomspp-widget-qt5.so") diff --git a/src/gui/protein_list_view/protein_view.ui b/src/gui/protein_list_view/protein_view.ui index 7934ff6a..5541225b 100644 --- a/src/gui/protein_list_view/protein_view.ui +++ b/src/gui/protein_list_view/protein_view.ui @@ -110,7 +110,11 @@ <widget class="QLineEdit" name="msrun_auto_completion"/> </item> <item> - <widget class="QSpinBox" name="scan_number_edit"/> + <widget class="QSpinBox" name="scan_number_edit"> + <property name="maximum"> + <number>9999999</number> + </property> + </widget> </item> </layout> </item> @@ -210,6 +214,38 @@ </hint> </hints> </connection> + <connection> + <sender>msrun_auto_completion</sender> + <signal>textChanged(QString)</signal> + <receiver>ProteinView</receiver> + <slot>doMsrunFileSearch(QString)</slot> + <hints> + <hint type="sourcelabel"> + <x>574</x> + <y>360</y> + </hint> + <hint type="destinationlabel"> + <x>860</x> + <y>501</y> + </hint> + </hints> + </connection> + <connection> + <sender>scan_number_edit</sender> + <signal>valueChanged(int)</signal> + <receiver>ProteinView</receiver> + <slot>doScanNumberSearch(int)</slot> + <hints> + <hint type="sourcelabel"> + <x>782</x> + <y>346</y> + </hint> + <hint type="destinationlabel"> + <x>1091</x> + <y>324</y> + </hint> + </hints> + </connection> </connections> <slots> <slot>doNotValidHide(bool)</slot> @@ -217,5 +253,7 @@ <slot>doNotGroupedHide(bool)</slot> <slot>onProteinSearchEdit(QString)</slot> <slot>doSearchOn(QString)</slot> + <slot>doMsrunFileSearch(QString)</slot> + <slot>doScanNumberSearch(int)</slot> </slots> </ui> diff --git a/src/gui/protein_list_view/proteinlistwindow.cpp b/src/gui/protein_list_view/proteinlistwindow.cpp index 4acadde0..e3e84d72 100644 --- a/src/gui/protein_list_view/proteinlistwindow.cpp +++ b/src/gui/protein_list_view/proteinlistwindow.cpp @@ -241,6 +241,14 @@ void ProteinListWindow::doSearchOn(QString search_on) { emit proteinDataChanged(); } +void ProteinListWindow::doMsrunFileSearch(QString msr_run_file_search) { + //_p_proxy_model->setMsrunFileSearch(msr_run_file_search); + emit proteinDataChanged(); +} + +void ProteinListWindow::doScanNumberSearch(int scan_num) { + emit proteinDataChanged(); +} void ProteinListWindow::onProteinSearchEdit(QString protein_search_string) { qDebug() << "ProteinTableProxyModel::onProteinSearchEdit begin " << protein_search_string; diff --git a/src/gui/protein_list_view/proteinlistwindow.h b/src/gui/protein_list_view/proteinlistwindow.h index 0b30860f..a5966bca 100644 --- a/src/gui/protein_list_view/proteinlistwindow.h +++ b/src/gui/protein_list_view/proteinlistwindow.h @@ -85,6 +85,8 @@ protected slots: void doNotValidHide(bool hide); void doNotCheckedHide(bool hide); void doNotGroupedHide(bool hide); + void doMsrunFileSearch(QString msr_run_file_search); + void doScanNumberSearch(int scan_num); void doProxyLayoutChanged(); void showContextMenu(const QPoint &); void updateStatusBar(); diff --git a/src/gui/protein_list_view/proteintableproxymodel.cpp b/src/gui/protein_list_view/proteintableproxymodel.cpp index e133174c..55f25919 100644 --- a/src/gui/protein_list_view/proteintableproxymodel.cpp +++ b/src/gui/protein_list_view/proteintableproxymodel.cpp @@ -23,6 +23,7 @@ #include <QDebug> #include <pappsomspp/pappsoexception.h> +#include "ui_protein_view.h" #include "proteintableproxymodel.h" #include "proteintablemodel.h" #include "proteinlistwindow.h" @@ -48,6 +49,32 @@ bool ProteinTableProxyModel::filterAcceptsRow(int source_row, ProteinMatch * protein_match = _protein_table_model_p->getIdentificationGroup()->getProteinMatchList().at(source_row); //qDebug() << "ProteinTableProxyModel::filterAcceptsRow protein_match " << source_row; + + if (_search_on == "msrun/scan") { + unsigned int scan_num = this->_p_protein_list_window->ui->scan_number_edit->value(); + QString file_search_string = this->_p_protein_list_window->ui->msrun_auto_completion->text().toLower(); + qDebug() << "ProteinTableProxyModel::filterAcceptsRow msrun/scan " << file_search_string << " " << scan_num; + for (const PeptideMatch & p_peptide_match: protein_match->getPeptideMatchList()) { + bool scan_ok = true; + if (scan_num > 0) { + scan_ok = false; + if (p_peptide_match.getPeptideEvidence()->getScan() == scan_num) { + scan_ok = true; + } + } + bool msrun_ok = true; + if (!file_search_string.isEmpty()) { + msrun_ok = false; + if (p_peptide_match.getPeptideEvidence()->getMsRunP()->getFilename().toLower().contains(file_search_string)) { + msrun_ok = true; + } + } + if (msrun_ok && scan_ok ) { + return true; + } + } + return false; + } if (!_protein_search_string.isEmpty()) { if (_search_on == "accession") { if (!protein_match->getProteinXtpSp().get()->getAccession().contains(_protein_search_string)) { @@ -204,6 +231,9 @@ void ProteinTableProxyModel::hideNotGrouped(bool hide) { void ProteinTableProxyModel::setSearchOn(QString search_on) { _search_on = search_on; } + +void ProteinTableProxyModel::setMsrunFileSearch(QString msrun_file_search) { +} void ProteinTableProxyModel::setProteinSearchString(QString protein_search_string) { _protein_search_string = protein_search_string; } diff --git a/src/gui/protein_list_view/proteintableproxymodel.h b/src/gui/protein_list_view/proteintableproxymodel.h index 082c2d06..a71cf0a2 100644 --- a/src/gui/protein_list_view/proteintableproxymodel.h +++ b/src/gui/protein_list_view/proteintableproxymodel.h @@ -50,6 +50,7 @@ public: void hideNotChecked(bool hide); void hideNotGrouped(bool hide); void setProteinSearchString(QString protein_search_string); + void setMsrunFileSearch(QString msrun_file_search); void setSearchOn(QString search_on); void setProteinListColumnDisplay(ProteinListColumn column, bool toggled); bool getProteinListColumnDisplay(ProteinListColumn column) const; -- GitLab