libpappsomspp
Library for mass spectrometry
pappso::TandemWrapperRun Class Reference

#include <tandemwrapperrun.h>

Inheritance diagram for pappso::TandemWrapperRun:

Signals

void tandemProgressMessage (QString message)
 

Public Member Functions

 TandemWrapperRun (const QString &tandem_binary, const QString &tmp_dir)
 prepare a tandem run More...
 
void run (UiMonitorInterface &monitor, const QString &tandem_input_file)
 run a tandem job More...
 
void readTandemPresetFile (const QString &tandem_preset_file)
 
QString getMs2FilterSuiteString () const
 gets the list of filters used on MS2 spectrum More...
 
 ~TandemWrapperRun ()
 

Private Slots

void readyReadStandardOutput ()
 
void readyReadStandardError ()
 

Private Member Functions

void setTandemBinaryPath (const QString &tandem_binary_path)
 
const QString checkXtandemVersion (const QString &tandem_bin_path)
 
void wrapTandemInputFile (const QString &tandem_input_file)
 
bool convertOrginalMsData2mzXmlData (const QString &origin, const QString &target)
 
void runTandem (const QString &tandem_input_file)
 run a tandem job More...
 
void writeFinalTandemOutput (const QString &tmp_tandem_output, const QString &final_tandem_output, const QString &original_msdata_file_name)
 tandem output modification tandem output is modified to contain the Bruker's file as input and centroidization parameters More...
 

Private Attributes

UiMonitorInterfacemp_monitor
 
QString m_tandemBinary
 
QString m_tandemVersion
 
QString m_tmpDir
 
int m_maxTandemRunTimeMs
 
QProcess * m_xtProcess = nullptr
 
std::shared_ptr< FilterSuiteStringmsp_ms2FilterSuiteString = nullptr
 
QTemporaryDir * mpa_temporaryDirectory = nullptr
 
bool m_convertMzDataUsingSpectrumIndex = false
 
pappso::MzFormat m_mzFormat = pappso::MzFormat::unknown
 
qint64 m_conversionTime =0
 

Detailed Description

Definition at line 61 of file tandemwrapperrun.h.

Constructor & Destructor Documentation

◆ TandemWrapperRun()

pappso::TandemWrapperRun::TandemWrapperRun ( const QString &  tandem_binary,
const QString &  tmp_dir 
)

prepare a tandem run

Parameters
tandem_binaryfile path to tandem.exe if not set, a default value is given in QSettings
tmp_dirtemporary directory, where to write mzXML file conversion if not set, a default value is given in QSettings

Definition at line 49 of file tandemwrapperrun.cpp.

51 {
52 
53  setTandemBinaryPath(tandem_binary);
54 
55  if(!tmp_dir.isEmpty())
56  {
57  mpa_temporaryDirectory = new QTemporaryDir(tmp_dir + "/xtpwrp");
58  }
59  else
60  {
61  mpa_temporaryDirectory = new QTemporaryDir(QDir::tempPath() + "/xtpwrp");
62  }
63  mpa_temporaryDirectory->setAutoRemove(true);
64  if(!mpa_temporaryDirectory->isValid())
65  {
67  QObject::tr("ERROR: unable to create temporary directory %1\n Please "
68  "check file system permissions")
69  .arg(mpa_temporaryDirectory->path()));
70  }
71 }
QTemporaryDir * mpa_temporaryDirectory
void setTandemBinaryPath(const QString &tandem_binary_path)

References mpa_temporaryDirectory, and setTandemBinaryPath().

◆ ~TandemWrapperRun()

pappso::TandemWrapperRun::~TandemWrapperRun ( )

Destructor

Definition at line 73 of file tandemwrapperrun.cpp.

74 {
75  if(mpa_temporaryDirectory != nullptr)
76  {
78  }
79 
80  if(m_xtProcess != nullptr)
81  {
82  m_xtProcess->deleteLater();
83  }
84 }

References m_xtProcess, and mpa_temporaryDirectory.

Member Function Documentation

◆ checkXtandemVersion()

const QString pappso::TandemWrapperRun::checkXtandemVersion ( const QString &  tandem_bin_path)
private

Definition at line 107 of file tandemwrapperrun.cpp.

108 {
109  qDebug();
110  // check tandem path
111  QFileInfo tandem_exe(tandem_bin_path);
112  if(!tandem_exe.exists())
113  {
114  // dir.path() returns the unique directory path
116  QObject::tr(
117  "X!Tandem software not found at %1.\nPlease check the X!Tandem "
118  "installation on your computer and set tandem.exe path.")
119  .arg(tandem_exe.absoluteFilePath()));
120  }
121  if(!tandem_exe.isReadable())
122  {
123  // dir.path() returns the unique directory path
125  QObject::tr("Please check permissions on X!Tandem software found at %1 "
126  "(file not readable).")
127  .arg(tandem_exe.absoluteFilePath()));
128  }
129  if(!tandem_exe.isExecutable())
130  {
131  // dir.path() returns the unique directory path
133  QObject::tr("Please check permissions on X!Tandem software found at %1 "
134  "(file not executable).")
135  .arg(tandem_exe.absoluteFilePath()));
136  }
137 
138 
139  QString version_return;
140  QStringList arguments;
141 
142  arguments << "-v";
143 
144  QProcess *xt_process = new QProcess();
145  // hk_process->setWorkingDirectory(QFileInfo(_hardklor_exe).absolutePath());
146 
147  xt_process->start(tandem_bin_path, arguments);
148 
149  if(!xt_process->waitForStarted())
150  {
152  QObject::tr("X!Tandem %1 process failed to start")
153  .arg(m_tandemVersion));
154  }
155 
156  while(xt_process->waitForReadyRead(1000))
157  {
158  }
159  /*
160  if (!xt_process->waitForFinished(_max_xt_time_ms)) {
161  throw pappso::PappsoException(QObject::tr("can't wait for X!Tandem process
162  to finish : timeout at %1").arg(_max_xt_time_ms));
163  }
164  */
165  QByteArray result = xt_process->readAll();
166 
167 
168  qDebug() << result.constData();
169 
170  // X! TANDEM Jackhammer TPP (2013.06.15.1 - LabKey, Insilicos, ISB)
171 
172  QRegularExpression parse_version(
173  "(.*) TANDEM ([A-Z,a-z, ]+) \\(([^ ,^\\)]*)(.*)");
174  qDebug() << parse_version;
175  // Pattern patt = Pattern.compile("X! TANDEM [A-Z]+ \\‍((.*)\\‍)",
176  // Pattern.CASE_INSENSITIVE);
177  QRegularExpressionMatch match_parse_version =
178  parse_version.match(result.constData());
179  if(match_parse_version.hasMatch())
180  {
181  version_return = QString("X!Tandem %1 %2")
182  .arg(match_parse_version.captured(2))
183  .arg(match_parse_version.captured(3)); //.join(" ");
184  }
185  else
186  {
188  QObject::tr("This executable %1 may not be a valid X!Tandem software. "
189  "Please check your X!Tandem installation.")
190  .arg(tandem_bin_path));
191  }
192 
193  QProcess::ExitStatus Status = xt_process->exitStatus();
194  delete xt_process;
195  if(Status != 0)
196  {
197  // != QProcess::NormalExit
199  QObject::tr("error executing X!Tandem Status != 0 : %1 %2\n%3")
200  .arg(tandem_bin_path)
201  .arg(arguments.join(" ").arg(result.data())));
202  }
203  qDebug();
204  return version_return;
205 }

References m_tandemVersion.

Referenced by setTandemBinaryPath().

◆ convertOrginalMsData2mzXmlData()

bool pappso::TandemWrapperRun::convertOrginalMsData2mzXmlData ( const QString &  origin,
const QString &  target 
)
private

Definition at line 425 of file tandemwrapperrun.cpp.

427 {
428  qDebug();
429  pappso::MsFileAccessor origin_access(origin, "runa1");
430  origin_access.setPreferedFileReaderType(pappso::MzFormat::brukerTims,
432  origin_access.getMsRunIds();
433  m_mzFormat = origin_access.getFileFormat();
435  {
437  QObject::tr("%1 file format not known").arg(origin));
438  }
439 
440  if(origin_access.getFileFormat() == pappso::MzFormat::brukerTims)
441  {
443  }
444 
445  if((origin_access.getFileFormat() == pappso::MzFormat::mzML) ||
446  (origin_access.getFileFormat() == pappso::MzFormat::brukerTims))
447  {
449  QObject::tr("Converting %1 to mzXML %2").arg(origin).arg(target));
450  pappso::MsRunReaderSPtr p_reader;
451  p_reader =
452  origin_access.msRunReaderSp(origin_access.getMsRunIds().front());
453 
454  pappso::TimsMsRunReaderMs2 *tims2_reader =
455  dynamic_cast<pappso::TimsMsRunReaderMs2 *>(p_reader.get());
456  if(tims2_reader != nullptr)
457  {
458  qDebug();
459  tims2_reader->setMs2BuiltinCentroid(true);
460 
461  if(msp_ms2FilterSuiteString != nullptr)
462  {
464  }
465  qDebug();
466  }
467 
468 
469  pappso::MzxmlOutput *p_mzxml_output;
470  QFile output_file(target);
471  // qDebug() << " TsvDirectoryWriter::writeSheet " <<
472  // QFileInfo(*_p_ofile).absoluteFilePath();
473  if(output_file.open(QIODevice::WriteOnly))
474  {
475  QElapsedTimer timer;
476  m_conversionTime = 0;
477  timer.start();
478  p_mzxml_output = new pappso::MzxmlOutput(
479  *mp_monitor, QTextStream(&output_file).device());
480 
481  p_mzxml_output->maskMs1(true);
482 
483  p_mzxml_output->setReadAhead(true);
484 
485  p_mzxml_output->write(p_reader.get());
486 
487  p_mzxml_output->close();
488 
489  delete p_mzxml_output;
490  m_conversionTime = timer.elapsed();
491 
492  mp_monitor->setStatus(QObject::tr("Conversion finished in %1 seconds")
493  .arg(m_conversionTime / 1000));
494  }
495  else
496  {
498  QObject::tr("unable to write into %1 mzXML output file")
499  .arg(target));
500  }
501 
502  qDebug();
503  return true;
504  }
505  else
506  { // other mz data formats
507  return false;
508  }
509  return true;
510 }
void setReadAhead(bool read_ahead)
Definition: mzxmloutput.cpp:93
void write(MsRunReader *p_msrunreader)
Definition: mzxmloutput.cpp:98
void maskMs1(bool mask_ms1)
pappso::MzFormat m_mzFormat
UiMonitorInterface * mp_monitor
std::shared_ptr< FilterSuiteString > msp_ms2FilterSuiteString
void setMs2FilterCstSPtr(pappso::FilterInterfaceCstSPtr filter)
void setMs2BuiltinCentroid(bool centroid)
enable or disable simple centroid filter on raw tims data for MS2
virtual void setStatus(const QString &status)=0
current status of the process
std::shared_ptr< MsRunReader > MsRunReaderSPtr
Definition: msrunreader.h:185
@ unknown
unknown format

References pappso::brukerTims, pappso::MzxmlOutput::close(), pappso::MsFileAccessor::getFileFormat(), pappso::MsFileAccessor::getMsRunIds(), m_conversionTime, m_convertMzDataUsingSpectrumIndex, m_mzFormat, pappso::MzxmlOutput::maskMs1(), mp_monitor, msp_ms2FilterSuiteString, pappso::MsFileAccessor::msRunReaderSp(), pappso::mzML, pappso::TimsMsRunReaderMs2::setMs2BuiltinCentroid(), pappso::TimsMsRunReaderMs2::setMs2FilterCstSPtr(), pappso::MsFileAccessor::setPreferedFileReaderType(), pappso::MzxmlOutput::setReadAhead(), pappso::UiMonitorInterface::setStatus(), pappso::tims_ms2, pappso::unknown, and pappso::MzxmlOutput::write().

Referenced by wrapTandemInputFile().

◆ getMs2FilterSuiteString()

QString pappso::TandemWrapperRun::getMs2FilterSuiteString ( ) const

gets the list of filters used on MS2 spectrum

Returns
string describing filters and associated parameters

Definition at line 591 of file tandemwrapperrun.cpp.

592 {
593  if(msp_ms2FilterSuiteString == nullptr)
594  return "";
595  return msp_ms2FilterSuiteString.get()->toString();
596 }

References msp_ms2FilterSuiteString.

Referenced by writeFinalTandemOutput().

◆ readTandemPresetFile()

void pappso::TandemWrapperRun::readTandemPresetFile ( const QString &  tandem_preset_file)

Definition at line 285 of file tandemwrapperrun.cpp.

286 {
287  // get number of threads and centroid parameters from tandem preset
288 
289  XtandemPresetReader preset_handler;
290 
291 
292  if(preset_handler.readFile(tandem_preset_file))
293  {
294 
295  int ideal_number_of_thread = QThread::idealThreadCount();
296  int cpu_number = preset_handler.getNumberOfThreads();
297  qDebug() << " cpu_number=" << cpu_number;
298  // QThreadPool::globalInstance()->setMaxThreadCount(1);
299  if(cpu_number > ideal_number_of_thread)
300  {
301  cpu_number = ideal_number_of_thread;
302  }
303  else
304  {
305  if(cpu_number > 0)
306  {
307  QThreadPool::globalInstance()->setMaxThreadCount(cpu_number);
308 
309  qDebug() << " maxThreadCount="
310  << QThreadPool::globalInstance()->maxThreadCount();
311  }
312  }
313 
314  QString ms2_filters_str = preset_handler.getMs2FiltersOptions();
315  if(!ms2_filters_str.isEmpty())
316  {
318  std::make_shared<pappso::FilterSuiteString>(ms2_filters_str);
319  }
320  else
321  {
323  std::make_shared<pappso::FilterSuiteString>(
324  "chargeDeconvolution|0.02dalton mzExclusion|0.01dalton");
325  }
326  }
327  else
328  {
330  QObject::tr("Error reading %1 X!Tandem preset file :\n %2")
331  .arg(tandem_preset_file)
332  .arg(preset_handler.errorString()));
333  }
334 }

References pappso::XmlStreamReaderInterface::errorString(), pappso::XtandemPresetReader::getMs2FiltersOptions(), pappso::XtandemPresetReader::getNumberOfThreads(), msp_ms2FilterSuiteString, and pappso::XmlStreamReaderInterface::readFile().

Referenced by wrapTandemInputFile().

◆ readyReadStandardError

void pappso::TandemWrapperRun::readyReadStandardError ( )
privateslot

Definition at line 229 of file tandemwrapperrun.cpp.

230 {
231  mp_monitor->appendText(m_xtProcess->readAllStandardError());
232  if(mp_monitor->shouldIstop())
233  {
234  m_xtProcess->kill();
235  delete m_xtProcess;
236  m_xtProcess = nullptr;
238  QObject::tr("X!Tandem stopped by the user"));
239  }
240 }
virtual void appendText(const QString &text)=0
append a text to a long report
virtual bool shouldIstop()=0
should the procces be stopped ? If true, then cancel process Use this function at strategic point of ...

References pappso::UiMonitorInterface::appendText(), m_xtProcess, mp_monitor, and pappso::UiMonitorInterface::shouldIstop().

Referenced by runTandem().

◆ readyReadStandardOutput

void pappso::TandemWrapperRun::readyReadStandardOutput ( )
privateslot

Definition at line 208 of file tandemwrapperrun.cpp.

209 {
210  QString message(m_xtProcess->readAllStandardOutput());
211  mp_monitor->appendText(message);
212 
213  if(message.toLower().contains("error"))
214  {
215  throw pappso::XtandemError(message);
216  }
217 
218  if(mp_monitor->shouldIstop())
219  {
220  m_xtProcess->kill();
221  delete m_xtProcess;
222  m_xtProcess = nullptr;
224  QObject::tr("X!Tandem stopped by the user"));
225  }
226 }

References pappso::UiMonitorInterface::appendText(), m_xtProcess, mp_monitor, and pappso::UiMonitorInterface::shouldIstop().

Referenced by runTandem().

◆ run()

void pappso::TandemWrapperRun::run ( UiMonitorInterface monitor,
const QString &  tandem_input_file 
)

run a tandem job

The tandem input file should contain an additional input parameter called "spectrum, timstof MS2 filters". The value of this parameters must contain a string describing the FilterSuiteString to apply on TimsTOF MS2. A default value of "chargeDeconvolution|0.02dalton" is recommended for this additional tandem input parameter

Parameters
monitoruser interface monitor
tandem_input_filetandem xml input file

Definition at line 513 of file tandemwrapperrun.cpp.

515 {
516  mp_monitor = &monitor;
517 
518  wrapTandemInputFile(tandem_input_file);
519  mp_monitor = nullptr;
520 }
void wrapTandemInputFile(const QString &tandem_input_file)

References mp_monitor, and wrapTandemInputFile().

◆ runTandem()

void pappso::TandemWrapperRun::runTandem ( const QString &  tandem_input_file)
private

run a tandem job

Parameters
tandem_input_filetandem xml input file

Definition at line 522 of file tandemwrapperrun.cpp.

523 {
524  if(mp_monitor->shouldIstop())
525  {
527  QObject::tr("X!Tandem stopped by the user processing on file %1")
528  .arg(tandem_input_file));
529  }
530  m_xtProcess = new QProcess();
531  QStringList arguments;
532 
533  qDebug() << m_tandemBinary << " " << m_xtProcess->arguments();
534 
535  arguments << tandem_input_file;
536  // hk_process->setWorkingDirectory(QFileInfo(_hardklor_exe).absolutePath());
537  m_xtProcess->start(m_tandemBinary, arguments);
538 
539  qDebug() << m_tandemBinary << " " << m_xtProcess->arguments();
540 
541  connect(m_xtProcess,
542  &QProcess::readyReadStandardOutput,
543  this,
545  connect(m_xtProcess,
546  &QProcess::readyReadStandardError,
547  this,
549 
550 
551  qDebug() << m_tandemBinary << " " << m_xtProcess->arguments();
552 
553  mp_monitor->setStatus(QObject::tr("Running X!Tandem"));
554 
555  if(!m_xtProcess->waitForStarted())
556  {
558  QObject::tr("X!Tandem process failed to start"));
559  }
560 
561  qDebug() << m_tandemBinary << " " << m_xtProcess->arguments();
562  while(m_xtProcess->waitForFinished(m_maxTandemRunTimeMs) == false)
563  {
564  //_p_monitor->appendText(xt_process->readAll().data());
565  // data.append(xt_process->readAll());
566  if(mp_monitor->shouldIstop())
567  {
568  m_xtProcess->kill();
569  delete m_xtProcess;
570  m_xtProcess = nullptr;
572  QObject::tr("X!Tandem stopped by the user processing on file %1")
573  .arg(tandem_input_file));
574  }
575  }
576 
577  QProcess::ExitStatus Status = m_xtProcess->exitStatus();
578 
579  delete m_xtProcess;
580  if(Status != QProcess::ExitStatus::NormalExit)
581  {
582  // != QProcess::NormalExit
584  QObject::tr("error executing X!Tandem Status != 0 : %1")
585  .arg(m_tandemBinary));
586  }
587  m_xtProcess = nullptr;
588 }

References m_maxTandemRunTimeMs, m_tandemBinary, m_xtProcess, mp_monitor, readyReadStandardError(), readyReadStandardOutput(), pappso::UiMonitorInterface::setStatus(), and pappso::UiMonitorInterface::shouldIstop().

Referenced by wrapTandemInputFile().

◆ setTandemBinaryPath()

void pappso::TandemWrapperRun::setTandemBinaryPath ( const QString &  tandem_binary_path)
private

Definition at line 87 of file tandemwrapperrun.cpp.

88 {
89 
90 
91  m_tandemBinary = tandem_binary_path;
92  QSettings settings;
93  if(m_tandemBinary.isEmpty())
94  {
96  settings.value("path/tandem_binary", "/usr/bin/tandem").toString();
97  }
98  // check for tandem executable
100 
101  qDebug() << m_tandemVersion;
102  settings.setValue("path/tandem_binary", m_tandemBinary);
103 }
const QString checkXtandemVersion(const QString &tandem_bin_path)

References checkXtandemVersion(), m_tandemBinary, and m_tandemVersion.

Referenced by TandemWrapperRun().

◆ tandemProgressMessage

void pappso::TandemWrapperRun::tandemProgressMessage ( QString  message)
signal

◆ wrapTandemInputFile()

void pappso::TandemWrapperRun::wrapTandemInputFile ( const QString &  tandem_input_file)
private

Definition at line 338 of file tandemwrapperrun.cpp.

339 {
340  // read original tandem input file
341  // store original ms data file name
342  // create new mzXML data file in temporary directory
343  // create new tandem input file based on new mzXML file
344 
345 
346  QString mzxml_data_file_name =
347  mpa_temporaryDirectory->filePath("msdata.mzxml");
348  QString wrapped_tandem_input =
349  mpa_temporaryDirectory->filePath("input_tandem.xml");
350  QString wrapped_tandem_output =
351  mpa_temporaryDirectory->filePath("output_tandem.xml");
352 
353  WrapTandemInput wrap_tandem_input(
354  mzxml_data_file_name, wrapped_tandem_input, wrapped_tandem_output);
355 
356 
357  if(wrap_tandem_input.readFile(tandem_input_file))
358  {
359  }
360  else
361  {
363  QObject::tr("Error reading %1 X!Tandem input file :\n %2")
364  .arg(tandem_input_file)
365  .arg(wrap_tandem_input.errorString()));
366  }
367 
368 
369  /*
370  *
371  XtandemInputSaxHandler wrap_input(
372  mzxml_data_file_name, wrapped_tandem_input, wrapped_tandem_output);
373  QFile qfile(tandem_input_file);
374  if(!qfile.exists())
375  {
376  throw pappso::PappsoException(
377  QObject::tr("Tandem input file %1 does not exists")
378  .arg(QFileInfo(tandem_input_file).absoluteFilePath()));
379  }
380  QXmlInputSource xmlInputSource(&qfile);
381  QXmlSimpleReader simplereader;
382  simplereader.setContentHandler(&wrap_input);
383  simplereader.setErrorHandler(&wrap_input);
384 
385  if(simplereader.parse(xmlInputSource))
386  {
387  }
388  else
389  {
390  throw pappso::PappsoException(
391  QObject::tr("Error reading %1 X!Tandem input file :\n %2")
392  .arg(tandem_input_file)
393  .arg(wrap_input.errorString()));
394  }
395 */
396  // get number of threads and centroid parameters from tandem preset
397  readTandemPresetFile(wrap_tandem_input.getOriginalTandemPresetFileName());
398 
399 
400  // convert to mzXML
401  QString original_msdata_file_name =
402  wrap_tandem_input.getOriginalMsDataFileName();
403  if(convertOrginalMsData2mzXmlData(original_msdata_file_name,
404  mzxml_data_file_name))
405  {
406 
407 
408  // launch tandem
409  runTandem(wrapped_tandem_input);
410 
411  // rewrite tandem result file
413  wrapped_tandem_output,
414  wrap_tandem_input.getOriginalTandemOutputFileName(),
415  original_msdata_file_name);
416  }
417  else
418  {
419  // launch tandem on original file
420  runTandem(tandem_input_file);
421  }
422 }
bool convertOrginalMsData2mzXmlData(const QString &origin, const QString &target)
void readTandemPresetFile(const QString &tandem_preset_file)
void writeFinalTandemOutput(const QString &tmp_tandem_output, const QString &final_tandem_output, const QString &original_msdata_file_name)
tandem output modification tandem output is modified to contain the Bruker's file as input and centro...
void runTandem(const QString &tandem_input_file)
run a tandem job

References convertOrginalMsData2mzXmlData(), pappso::XmlStreamReaderInterface::errorString(), pappso::WrapTandemInput::getOriginalMsDataFileName(), pappso::WrapTandemInput::getOriginalTandemOutputFileName(), pappso::WrapTandemInput::getOriginalTandemPresetFileName(), mpa_temporaryDirectory, pappso::XmlStreamReaderInterface::readFile(), readTandemPresetFile(), runTandem(), and writeFinalTandemOutput().

Referenced by run().

◆ writeFinalTandemOutput()

void pappso::TandemWrapperRun::writeFinalTandemOutput ( const QString &  tmp_tandem_output,
const QString &  final_tandem_output,
const QString &  original_msdata_file_name 
)
private

tandem output modification tandem output is modified to contain the Bruker's file as input and centroidization parameters

Parameters
tmp_tandem_outputraw tandem output filename
final_tandem_outputfinal destination file for modified tandem output

Definition at line 243 of file tandemwrapperrun.cpp.

247 {
248  mp_monitor->setStatus(QObject::tr("Rewriting X!Tandem XML result file"));
249 
250  WrapTandemResults wrap_output(final_tandem_output, original_msdata_file_name);
251 
252  wrap_output.setInputParameters("spectrum, timstof MS2 filters",
254  wrap_output.setInputParameters("spectrum, mzFormat",
255  QString("%1").arg((int)m_mzFormat));
256 
258  {
259  wrap_output.setInputParameters("output, spectrum index", "true");
260  }
261  else
262  {
263  }
264 
265  if(m_conversionTime != 0)
266  {
267  wrap_output.setInputParameters(
268  "timing, tandemwrapper conversion time (sec)",
269  QString("%1").arg(m_conversionTime / 1000));
270  }
271 
272  if(wrap_output.readFile(tmp_tandem_output))
273  {
274  }
275  else
276  {
278  QObject::tr("Error reading %1 X!Tandem output file :\n %2")
279  .arg(tmp_tandem_output)
280  .arg(wrap_output.errorString()));
281  }
282 }
QString getMs2FilterSuiteString() const
gets the list of filters used on MS2 spectrum

References pappso::XmlStreamReaderInterface::errorString(), getMs2FilterSuiteString(), m_conversionTime, m_convertMzDataUsingSpectrumIndex, m_mzFormat, mp_monitor, pappso::XmlStreamReaderInterface::readFile(), pappso::WrapTandemResults::setInputParameters(), and pappso::UiMonitorInterface::setStatus().

Referenced by wrapTandemInputFile().

Member Data Documentation

◆ m_conversionTime

qint64 pappso::TandemWrapperRun::m_conversionTime =0
private

Definition at line 150 of file tandemwrapperrun.h.

Referenced by convertOrginalMsData2mzXmlData(), and writeFinalTandemOutput().

◆ m_convertMzDataUsingSpectrumIndex

bool pappso::TandemWrapperRun::m_convertMzDataUsingSpectrumIndex = false
private

Definition at line 146 of file tandemwrapperrun.h.

Referenced by convertOrginalMsData2mzXmlData(), and writeFinalTandemOutput().

◆ m_maxTandemRunTimeMs

int pappso::TandemWrapperRun::m_maxTandemRunTimeMs
private
Initial value:
=
1000

Definition at line 138 of file tandemwrapperrun.h.

Referenced by runTandem().

◆ m_mzFormat

pappso::MzFormat pappso::TandemWrapperRun::m_mzFormat = pappso::MzFormat::unknown
private

Definition at line 148 of file tandemwrapperrun.h.

Referenced by convertOrginalMsData2mzXmlData(), and writeFinalTandemOutput().

◆ m_tandemBinary

QString pappso::TandemWrapperRun::m_tandemBinary
private

Definition at line 135 of file tandemwrapperrun.h.

Referenced by runTandem(), and setTandemBinaryPath().

◆ m_tandemVersion

QString pappso::TandemWrapperRun::m_tandemVersion
private

Definition at line 136 of file tandemwrapperrun.h.

Referenced by checkXtandemVersion(), and setTandemBinaryPath().

◆ m_tmpDir

QString pappso::TandemWrapperRun::m_tmpDir
private

Definition at line 137 of file tandemwrapperrun.h.

◆ m_xtProcess

QProcess* pappso::TandemWrapperRun::m_xtProcess = nullptr
private

◆ mp_monitor

UiMonitorInterface* pappso::TandemWrapperRun::mp_monitor
private

◆ mpa_temporaryDirectory

QTemporaryDir* pappso::TandemWrapperRun::mpa_temporaryDirectory = nullptr
private

Definition at line 144 of file tandemwrapperrun.h.

Referenced by TandemWrapperRun(), ~TandemWrapperRun(), and wrapTandemInputFile().

◆ msp_ms2FilterSuiteString

std::shared_ptr<FilterSuiteString> pappso::TandemWrapperRun::msp_ms2FilterSuiteString = nullptr
private

The documentation for this class was generated from the following files: