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

wait for spectrum loader thread

parent 044ff91c
No related branches found
No related tags found
No related merge requests found
......@@ -165,6 +165,9 @@ PeptideWindow::PeptideWindow(ProjectWindow *parent)
PeptideWindow::~PeptideWindow()
{
_spectrum_loader_thread.quit();
_spectrum_loader_thread.wait();
delete ui;
}
......
......@@ -48,7 +48,7 @@ class WorkerThread : public QObject
public:
WorkerThread(MainWindow *parent);
WorkerThread(ProjectWindow *parent);
~WorkerThread();
virtual ~WorkerThread();
protected:
......
......@@ -114,7 +114,7 @@ XicBox::XicBox(XicWindow *parent) : QWidget(parent), ui(new Ui::XicBox)
_p_xic_window = parent;
ui->setupUi(this);
XicWorkerThread *p_worker = new XicWorkerThread();
XicWorkerThread *p_worker = new XicWorkerThread(this);
p_worker->moveToThread(&_xic_thread);
_xic_thread.start();
......@@ -139,19 +139,29 @@ XicBox::XicBox(XicWindow *parent) : QWidget(parent), ui(new Ui::XicBox)
connect(p_worker, &XicWorkerThread::operationFailed, this, &XicBox::error);
connect(this, &XicBox::computeIsotopeMassList, p_worker,
connect(this,
&XicBox::computeIsotopeMassList,
p_worker,
&XicWorkerThread::doComputeIsotopeMassList);
connect(p_worker, &XicWorkerThread::isotopeMassListComputed, this,
connect(p_worker,
&XicWorkerThread::isotopeMassListComputed,
this,
&XicBox::setIsotopeMassList);
connect(_p_xic_window, &XicWindow::reExtractXicNeeded, this,
&XicBox::reExtractXic);
connect(ui->xic_widget, &pappso::XicWidget::xicPeakListChanged, this,
connect(
_p_xic_window, &XicWindow::reExtractXicNeeded, this, &XicBox::reExtractXic);
connect(ui->xic_widget,
&pappso::XicWidget::xicPeakListChanged,
this,
&XicBox::setXicPeakList);
connect(ui->xic_widget, &pappso::XicWidget::clicked, this,
connect(ui->xic_widget,
&pappso::XicWidget::clicked,
this,
&XicBox::onXicWidgetClick);
connect(_p_xic_window, &XicWindow::rtUnitChangeNeeded, this,
connect(_p_xic_window,
&XicWindow::rtUnitChangeNeeded,
this,
&XicBox::onRtUnitChanged);
#else
// Qt4 code
......@@ -259,13 +269,15 @@ XicBox::setPeptideEvidence(const PeptideEvidence *p_peptide_evidence)
_p_xic_window->getProjectWindow()
->getProjectP()
->getSameXicPeptideEvidenceList(
_peptide_evidence_list, _msrun_sp.get(),
_peptide_evidence_list,
_msrun_sp.get(),
_p_peptide_evidence->getPeptideXtpSp().get(),
_p_peptide_evidence->getCharge());
emit computeIsotopeMassList(_p_peptide_evidence->getPeptideXtpSp(),
_p_peptide_evidence->getCharge(),
_p_xic_window->getXicExtractPrecision(), 0.8);
_p_xic_window->getXicExtractPrecision(),
0.8);
}
void
......@@ -290,7 +302,8 @@ XicBox::setPeptideEvidenceInMsRun(const PeptideEvidence *p_peptide_evidence,
_p_xic_window->getProjectWindow()
->getProjectP()
->getSameXicPeptideEvidenceList(
_peptide_evidence_list, _msrun_sp.get(),
_peptide_evidence_list,
_msrun_sp.get(),
_p_peptide_evidence->getPeptideXtpSp().get(),
_p_peptide_evidence->getCharge());
//_p_xic_window->getProjectWindow()->getProjectP()->getSameXicPeptideEvidenceList(p_peptide_evidence,
......@@ -298,7 +311,8 @@ XicBox::setPeptideEvidenceInMsRun(const PeptideEvidence *p_peptide_evidence,
emit computeIsotopeMassList(_p_peptide_evidence->getPeptideXtpSp(),
_p_peptide_evidence->getCharge(),
_p_xic_window->getXicExtractPrecision(), 0.8);
_p_xic_window->getXicExtractPrecision(),
0.8);
}
void
......@@ -491,7 +505,9 @@ XicBox::setIsotopeMassList(
{nullptr, natural_isotope_average, nullptr, nullptr});
}
emit loadXic(_msrun_sp, mass_list, _p_xic_window->getXicExtractPrecision(),
emit loadXic(_msrun_sp,
mass_list,
_p_xic_window->getXicExtractPrecision(),
pappso::XicExtractMethod::max);
// histogram
......@@ -565,7 +581,9 @@ XicBox::reExtractXic()
mass_list.push_back(
xic_isotope.peptide_natural_isotope_sp.get()->getMz());
}
emit loadXic(_msrun_sp, mass_list, _p_xic_window->getXicExtractPrecision(),
emit loadXic(_msrun_sp,
mass_list,
_p_xic_window->getXicExtractPrecision(),
pappso::XicExtractMethod::max);
qDebug() << "XicBox::reExtractXic end";
}
......
......@@ -34,8 +34,15 @@
#include <pappsomspp/exception/exceptionnotfound.h>
#include <QDebug>
XicWorkerThread::XicWorkerThread(XicBox *parent)
{
}
XicWorkerThread::~XicWorkerThread()
{
}
void
XicWorkerThread::doXicLoad(MsRunSp p_msrun, std::vector<pappso::mz> mz_list,
XicWorkerThread::doXicLoad(MsRunSp p_msrun,
std::vector<pappso::mz> mz_list,
pappso::PrecisionP precision,
pappso::XicExtractMethod method)
{
......@@ -91,7 +98,8 @@ XicWorkerThread::doComputeIsotopeMassList(pappso::PeptideSp peptide_sp,
isotope_mass_list = isotope_list.getByIntensityRatio(
charge, precision, minimum_isotope_pattern_ratio);
std::sort(isotope_mass_list.begin(), isotope_mass_list.end(),
std::sort(isotope_mass_list.begin(),
isotope_mass_list.end(),
[](const pappso::PeptideNaturalIsotopeAverageSp &m,
const pappso::PeptideNaturalIsotopeAverageSp &n) -> bool {
unsigned int mn(m.get()->getIsotopeNumber()),
......
......@@ -35,11 +35,13 @@
#include "../../core/msrun.h"
#include <pappsomspp/xic/xic.h>
#include <pappsomspp/xicextractor/msrunxicextractor.h>
#include "xic_box/xicbox.h"
class XicWorkerThread : public QObject
{
Q_OBJECT
public:
XicWorkerThread(XicBox *parent);
virtual ~XicWorkerThread();
public slots:
void doXicLoad(MsRunSp p_msrun, std::vector<pappso::mz> mz_list,
pappso::PrecisionP precision, pappso::XicExtractMethod method);
......
......@@ -113,7 +113,7 @@ class MascotDatParser
unsigned int _number_of_residues = 0;
QString _error_str;
bool _is_decoy_section = false;
bool _take_only_first_peptide_rank = true;
bool _take_only_first_peptide_rank = false;
PeptideLine _current_peptide;
QueryLine _current_query;
......
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