From 2d9326586f03ba4cd767cadffc72234fa364c37b Mon Sep 17 00:00:00 2001
From: Olivier Langella <olivier.langella@u-psud.fr>
Date: Tue, 22 Jun 2021 14:39:10 +0200
Subject: [PATCH 1/8] limit tandem run wrapper to 60 days

---
 src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.h b/src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.h
index 5dda3f579..5bead2066 100644
--- a/src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.h
+++ b/src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.h
@@ -134,7 +134,7 @@ class PMSPP_LIB_DECL TandemWrapperRun : public QObject
   QString m_tandemBinary;
   QString m_tandemVersion;
   QString m_tmpDir;
-  int m_maxTandemRunTimeMs = (60000 * 60 * 24); // 1 day
+  int m_maxTandemRunTimeMs = (60000 * 60 * 24 * 60); // 60 days
   QProcess *m_xtProcess    = nullptr;
 
   std::shared_ptr<FilterSuiteString> msp_ms2FilterSuiteString = nullptr;
-- 
GitLab


From 06d82cd8a627618e19bd49d7bb597f03f6add10e Mon Sep 17 00:00:00 2001
From: Olivier Langella <olivier.langella@u-psud.fr>
Date: Tue, 22 Jun 2021 15:49:51 +0200
Subject: [PATCH 2/8] no timeout limit

---
 src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.h b/src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.h
index 5bead2066..1b1365b9f 100644
--- a/src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.h
+++ b/src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.h
@@ -134,8 +134,9 @@ class PMSPP_LIB_DECL TandemWrapperRun : public QObject
   QString m_tandemBinary;
   QString m_tandemVersion;
   QString m_tmpDir;
-  int m_maxTandemRunTimeMs = (60000 * 60 * 24 * 60); // 60 days
-  QProcess *m_xtProcess    = nullptr;
+  int m_maxTandemRunTimeMs =
+    -1; // If msecs is -1, this function will not time out.
+  QProcess *m_xtProcess = nullptr;
 
   std::shared_ptr<FilterSuiteString> msp_ms2FilterSuiteString = nullptr;
 
-- 
GitLab


From 5d7987991cbe5084fdd65fec185116b10f6e9c58 Mon Sep 17 00:00:00 2001
From: Olivier Langella <olivier.langella@u-psud.fr>
Date: Wed, 23 Jun 2021 10:24:39 +0200
Subject: [PATCH 3/8] flush output as soon as possible

---
 src/pappsomspp/processing/uimonitor/uimonitortext.cpp | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/pappsomspp/processing/uimonitor/uimonitortext.cpp b/src/pappsomspp/processing/uimonitor/uimonitortext.cpp
index 7bfe75a22..8ba8ce86b 100644
--- a/src/pappsomspp/processing/uimonitor/uimonitortext.cpp
+++ b/src/pappsomspp/processing/uimonitor/uimonitortext.cpp
@@ -50,12 +50,14 @@ void
 pappso::UiMonitorText::setTitle(const QString &title)
 {
   m_outputStream << title << endl;
+  m_outputStream.flush();
 }
 
 void
 pappso::UiMonitorText::setStatus(const QString &status)
 {
   m_outputStream << status << endl;
+  m_outputStream.flush();
 }
 
 void
@@ -71,10 +73,12 @@ pappso::UiMonitorText::count()
       m_outputStream << QObject::tr("%1 on %2").arg(m_count).arg(m_totalSteps)
                      << " ";
     }
+  m_outputStream.flush();
 }
 
 void
 pappso::UiMonitorText::appendText(const QString &text)
 {
   m_outputStream << text;
+  m_outputStream.flush();
 }
-- 
GitLab


From 4d582976fa679dc0f149bb2c2c8ad0dc541d49ef Mon Sep 17 00:00:00 2001
From: Olivier Langella <olivier.langella@u-psud.fr>
Date: Wed, 23 Jun 2021 10:26:13 +0200
Subject: [PATCH 4/8] wait until process X\!Tandem has finished

---
 src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.cpp | 2 +-
 src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.h   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.cpp b/src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.cpp
index b6a0853f7..252b667ee 100644
--- a/src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.cpp
+++ b/src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.cpp
@@ -512,7 +512,7 @@ TandemWrapperRun::runTandem(const QString &tandem_input_file)
     }
 
   qDebug() << m_tandemBinary << " " << m_xtProcess->arguments();
-  while(m_xtProcess->waitForFinished(m_maxTandemRunTimeMs))
+  while(m_xtProcess->waitForFinished(m_maxTandemRunTimeMs) == false)
     {
       //_p_monitor->appendText(xt_process->readAll().data());
       // data.append(xt_process->readAll());
diff --git a/src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.h b/src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.h
index 1b1365b9f..17e3e0e62 100644
--- a/src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.h
+++ b/src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.h
@@ -135,7 +135,7 @@ class PMSPP_LIB_DECL TandemWrapperRun : public QObject
   QString m_tandemVersion;
   QString m_tmpDir;
   int m_maxTandemRunTimeMs =
-    -1; // If msecs is -1, this function will not time out.
+    1000; // If msecs is -1, this function will not time out.
   QProcess *m_xtProcess = nullptr;
 
   std::shared_ptr<FilterSuiteString> msp_ms2FilterSuiteString = nullptr;
-- 
GitLab


From 4bcbf05e7cc3e77571069b4b7fd28f2c9aa36f64 Mon Sep 17 00:00:00 2001
From: Olivier Langella <olivier.langella@u-psud.fr>
Date: Wed, 23 Jun 2021 11:19:49 +0200
Subject: [PATCH 5/8] libpappsomspp (0.8.30-1~buster+1) buster

---
 CMakeLists.txt           |  4 ++--
 debian/changelog         |  6 ++++++
 debian/rules             |  2 +-
 tests/test_timsframe.cpp | 12 ++++++------
 4 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index a0d70df34..366d0ab72 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -13,10 +13,10 @@ project(libpappsomspp)
 
 set(PAPPSOMSPP_VERSION_MAJOR "0")
 set(PAPPSOMSPP_VERSION_MINOR "8")
-set(PAPPSOMSPP_VERSION_PATCH "29")
+set(PAPPSOMSPP_VERSION_PATCH "30")
 set(PAPPSOMSPP_VERSION "${PAPPSOMSPP_VERSION_MAJOR}.${PAPPSOMSPP_VERSION_MINOR}.${PAPPSOMSPP_VERSION_PATCH}")
 # This *NUMERICAL* VERSION is parseable by the makeOrigTarball script.
-set(VERSION 0.8.29)
+set(VERSION 0.8.30)
 
 # Command to enable debug and tests
 # cmake -DCMAKE_BUILD_TYPE=Debug  -DMAKE_TESTS=1 -DUSEPAPPSOTREE=0 ..
diff --git a/debian/changelog b/debian/changelog
index d371b580d..b512e23a3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+libpappsomspp (0.8.30-1~buster+1) buster; urgency=medium
+
+  * fix QProcess mecanism to execute tandem
+
+ -- Olivier Langella <olivier.langella@u-psud.fr>  Wed, 23 Jun 2021 10:35:48 +0200
+
 libpappsomspp (0.8.29-1~buster+1) buster; urgency=medium
 
   * issue #9 fixed : conversion problem between uint and ulong
diff --git a/debian/rules b/debian/rules
index 302346004..4929780e9 100755
--- a/debian/rules
+++ b/debian/rules
@@ -27,7 +27,7 @@ override_dh_auto_configure:
 		-DUSEPAPPSOTREE=0
 		
 override_dh_auto_build:
-	dh_auto_build --no-parallel
+	dh_auto_build
 	dh_auto_build -- doc
 	dh_auto_test
 # Required because it would not run automatically
diff --git a/tests/test_timsframe.cpp b/tests/test_timsframe.cpp
index c216daa05..3ff3949e2 100644
--- a/tests/test_timsframe.cpp
+++ b/tests/test_timsframe.cpp
@@ -204,6 +204,8 @@ TEST_CASE("test tims frames", "[timsframe]")
     cout << endl << "..:: test 2 OK ::.." << endl;
   }
 
+
+#if USEPAPPSOTREE == 1
   SECTION("test TIMS TDF parsing issue #61")
   {
     INFO("Test case ERROR reading TIMS frame 58581");
@@ -254,18 +256,16 @@ TEST_CASE("test tims frames", "[timsframe]")
     REQUIRE_NOTHROW(mass_spectrum = tims2_reader->qualifiedMassSpectrum(35460));
   }
 
-#if USEPAPPSOTREE == 1
-
 
   SECTION("test TIMS TDF parsing")
   {
     INFO("Test case pappso::FileReaderType::tims_ms2 start");
-    /*
+    
         pappso::MsFileAccessor accessor(
           "/gorgone/pappso/jouy/raw/2020_Tims_TOF/20201102_HeLa/"
           "11-2-2020_1_QC_HeLa10ng_219.d/analysis.tdf",
           "a1");
-    */
+    
     /*
         pappso::MsFileAccessor accessor(
           "/gorgone/pappso/fichiers_fabricants/Bruker/tims_doc/tdf-sdk/"
@@ -273,10 +273,10 @@ TEST_CASE("test tims frames", "[timsframe]")
           "200ngHeLaPASEF_2min_compressed.d/analysis.tdf",
           "a1");
     */
-
+/*
     pappso::MsFileAccessor accessor(
       "/data/test_tdf_quality/2-3-2021_1_HeLa10ng_871.d/analysis.tdf", "a1");
-
+*/
 
     accessor.setPreferedFileReaderType(pappso::MzFormat::brukerTims,
                                        pappso::FileReaderType::tims_ms2);
-- 
GitLab


From 72c1515aa30b2f48ab4e21ae73864fecff72d812 Mon Sep 17 00:00:00 2001
From: Olivier Langella <olivier.langella@u-psud.fr>
Date: Thu, 24 Jun 2021 13:09:42 +0200
Subject: [PATCH 6/8] QProcess exit enumeration

---
 src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.cpp b/src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.cpp
index 252b667ee..c8da4e609 100644
--- a/src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.cpp
+++ b/src/pappsomspp/processing/tandemwrapper/tandemwrapperrun.cpp
@@ -530,7 +530,7 @@ TandemWrapperRun::runTandem(const QString &tandem_input_file)
   QProcess::ExitStatus Status = m_xtProcess->exitStatus();
 
   delete m_xtProcess;
-  if(Status != 0)
+  if(Status != QProcess::ExitStatus::NormalExit)
     {
       // != QProcess::NormalExit
       throw pappso::PappsoException(
-- 
GitLab


From 61067eaffbc1a50ad69f8e3d502827bb4988123d Mon Sep 17 00:00:00 2001
From: Olivier Langella <olivier.langella@u-psud.fr>
Date: Fri, 25 Jun 2021 16:31:00 +0200
Subject: [PATCH 7/8] qdebug messages fixed

---
 src/pappsomspp/amino_acid/aamodification.cpp | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/pappsomspp/amino_acid/aamodification.cpp b/src/pappsomspp/amino_acid/aamodification.cpp
index a31dd261b..7fdc23018 100644
--- a/src/pappsomspp/amino_acid/aamodification.cpp
+++ b/src/pappsomspp/amino_acid/aamodification.cpp
@@ -91,7 +91,7 @@ const QString &
 AaModification::getAccession() const
 {
 
-  qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__;
+  qDebug();
   return m_accession;
 }
 const QString &
@@ -145,8 +145,7 @@ AaModification::createInstance(const QString &accession)
       QRegExp regexp_mutation("^MUTATION:([A-Z])=>([A-Z])$");
       if(regexp_mutation.exactMatch(accession))
         {
-          qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__ << " "
-                   << regexp_mutation.capturedTexts()[1].at(0) << " "
+          qDebug() << regexp_mutation.capturedTexts()[1].at(0) << " "
                    << regexp_mutation.capturedTexts()[2].at(0);
 
           Aa aa_from(
@@ -332,8 +331,7 @@ AaModification::calculateMassFromChemicalComponents()
   if(diff < 0.001)
     {
       m_mass = theoreticalm_mass;
-      qDebug() << "AaModification::calculateMassFromChemicalComponents "
-               << diff;
+      qDebug() << diff;
     }
   else
     {
@@ -348,7 +346,7 @@ AaModificationP
 AaModification::getInstanceCustomizedMod(pappso_double modificationMass)
 {
   QString accession = QString("%1").arg(modificationMass);
-  qDebug() << "AaModification::getInstanceCustomizedMod " << accession;
+  qDebug() << accession;
   QMutexLocker locker(&m_mutex);
   if(m_mapAccessionModifications.find(accession) ==
      m_mapAccessionModifications.end())
-- 
GitLab


From b5b734d5e386ed2ff9a2bd99ea157cca0ad9ac36 Mon Sep 17 00:00:00 2001
From: Thomas Renne <thomas.renne@u-psud.fr>
Date: Mon, 2 Aug 2021 14:23:55 +0200
Subject: [PATCH 8/8] Add method to return switch value in R comprehensive
 format

---
 .../switchbuttonwidget/switchbuttonwidget.cpp | 19 ++++++++++++++++---
 .../switchbuttonwidget/switchbuttonwidget.h   |  1 +
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/src/pappsomspp/widget/switchbuttonwidget/switchbuttonwidget.cpp b/src/pappsomspp/widget/switchbuttonwidget/switchbuttonwidget.cpp
index b586d34e6..7d40afda8 100644
--- a/src/pappsomspp/widget/switchbuttonwidget/switchbuttonwidget.cpp
+++ b/src/pappsomspp/widget/switchbuttonwidget/switchbuttonwidget.cpp
@@ -31,13 +31,12 @@
 
 #include "switchbuttonwidget.h"
 
-pappso::SwitchWidget::SwitchWidget(QWidget *parent)
-  : QPushButton(parent)
+pappso::SwitchWidget::SwitchWidget(QWidget *parent) : QPushButton(parent)
 {
   setSwitchValue(false);
   setIconSize(QSize(40, 16));
   setFlat(true);
-  setMaximumSize(40,16);
+  setMaximumSize(40, 16);
 
   connect(this, &SwitchWidget::clicked, this, &SwitchWidget::updateSwitchValue);
 }
@@ -67,6 +66,20 @@ pappso::SwitchWidget::getSwitchValue()
   return m_switchButtonValue;
 }
 
+QString
+pappso::SwitchWidget::getSwitchValueInQStringFormat()
+{
+  if(m_switchButtonValue)
+    {
+      return "TRUE";
+    }
+  else
+    {
+      return "FALSE";
+    }
+}
+
+
 void
 pappso::SwitchWidget::updateSwitchValue()
 {
diff --git a/src/pappsomspp/widget/switchbuttonwidget/switchbuttonwidget.h b/src/pappsomspp/widget/switchbuttonwidget/switchbuttonwidget.h
index 521dfc19d..c1f44dfea 100644
--- a/src/pappsomspp/widget/switchbuttonwidget/switchbuttonwidget.h
+++ b/src/pappsomspp/widget/switchbuttonwidget/switchbuttonwidget.h
@@ -45,6 +45,7 @@ class PMSPP_LIB_DECL SwitchWidget : public QPushButton
   ~SwitchWidget();
 
   bool getSwitchValue();
+  QString getSwitchValueInQStringFormat();
   void setSwitchValue(bool switch_value);
 
   public slots:
-- 
GitLab