libpappsomspp
Library for mass spectrometry
Toggle main menu visibility
Loading...
Searching...
No Matches
tandemwrapperrun.h
Go to the documentation of this file.
1
/**
2
* \file pappsomspp/processing/tandemwrapper/tandemwrapperrun.h
3
* \date 25/01/2020
4
* \author Olivier Langella
5
* \brief actually does really run tandem directly on Bruker's data
6
*/
7
8
/*******************************************************************************
9
* Copyright (c) 2020 Olivier Langella <Olivier.Langella@u-psud.fr>.
10
*
11
* This file is part of PAPPSOms-tools.
12
*
13
* PAPPSOms-tools is free software: you can redistribute it and/or modify
14
* it under the terms of the GNU General Public License as published by
15
* the Free Software Foundation, either version 3 of the License, or
16
* (at your option) any later version.
17
*
18
* PAPPSOms-tools is distributed in the hope that it will be useful,
19
* but WITHOUT ANY WARRANTY; without even the implied warranty of
20
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
* GNU General Public License for more details.
22
*
23
* You should have received a copy of the GNU General Public License
24
* along with PAPPSOms-tools. If not, see <http://www.gnu.org/licenses/>.
25
*
26
******************************************************************************/
27
28
#pragma once
29
30
#include <QDebug>
31
#include <QObject>
32
#include <QProcess>
33
#include <QTemporaryDir>
34
#include <QMutex>
35
36
#include "
../filters/filtersuitestring.h
"
37
#include "
../uimonitor/uimonitorinterface.h
"
38
#include "
pappsomspp/core/pappsoexception.h
"
39
#include "
../../types.h
"
40
#include "
pappsomspp/export-import-config.h
"
41
42
/**
43
* @todo write docs
44
*/
45
namespace
pappso
46
{
47
class
XtandemError
:
public
PappsoException
48
{
49
public
:
50
XtandemError
(
const
QString &message)
throw
() :
PappsoException
(message)
51
{
52
}
53
54
virtual
QException *
55
clone
()
const override
56
{
57
return
new
XtandemError
(*
this
);
58
}
59
};
60
61
class
PMSPP_LIB_DECL
TandemWrapperRun
:
public
QObject
62
{
63
Q_OBJECT
64
public
:
65
/** @brief prepare a tandem run
66
* @param tandem_binary file path to tandem.exe if not set, a default value is
67
* given in QSettings
68
* @param tmp_dir temporary directory, where to write mzXML file conversion if
69
* not set, a default value is given in QSettings
70
*/
71
TandemWrapperRun
(
const
QString &tandem_binary,
const
QString &tmp_dir);
72
73
/** @brief run a tandem job
74
*
75
* The tandem input file *should* contain an additional input parameter called
76
* "spectrum, timstof MS2 filters". The value of this parameters *must*
77
* contain a string describing the FilterSuiteString to apply on TimsTOF MS2.
78
* A default value of "chargeDeconvolution|0.02dalton" is recommended for this
79
* additional tandem input parameter
80
*
81
* @param monitor user interface monitor
82
* @param tandem_input_file tandem xml input file
83
*/
84
void
run
(
UiMonitorInterface
&monitor,
const
QString &tandem_input_file);
85
86
void
readTandemPresetFile
(
const
QString &tandem_preset_file);
87
88
/** @brief gets the list of filters used on MS2 spectrum
89
*
90
* @return string describing filters and associated parameters
91
*/
92
QString
getMs2FilterSuiteString
()
const
;
93
94
/**
95
* Destructor
96
*/
97
~TandemWrapperRun
();
98
99
signals:
100
void
tandemProgressMessage
(QString message);
101
102
103
private
:
104
void
setTandemBinaryPath
(
const
QString &tandem_binary_path);
105
const
QString
checkXtandemVersion
(
const
QString &tandem_bin_path);
106
void
wrapTandemInputFile
(
const
QString &tandem_input_file);
107
108
bool
convertOrginalMsData2mzXmlData
(
const
QString &origin,
109
const
QString &target);
110
111
112
/** @brief run a tandem job
113
* @param tandem_input_file tandem xml input file
114
*/
115
void
runTandem
(
const
QString &tandem_input_file);
116
117
/** @brief tandem output modification
118
* tandem output is modified to contain the Bruker's file as input and
119
* centroidization parameters
120
* @param tmp_tandem_output raw tandem output filename
121
* @param final_tandem_output final destination file for modified tandem
122
* output
123
*/
124
void
writeFinalTandemOutput
(
const
QString &tmp_tandem_output,
125
const
QString &final_tandem_output,
126
const
QString &original_msdata_file_name);
127
128
129
private
slots:
130
void
readyReadStandardOutput
();
131
void
readyReadStandardError
();
132
133
private
:
134
UiMonitorInterface
*
mp_monitor
;
135
QString
m_tandemBinary
;
136
QString
m_tandemVersion
;
137
QString
m_tmpDir
;
138
int
m_maxTandemRunTimeMs
=
139
1000;
// If msecs is -1, this function will not time out.
140
QProcess *
m_xtProcess
=
nullptr
;
141
142
std::shared_ptr<FilterSuiteString>
msp_ms2FilterSuiteString
=
nullptr
;
143
144
QTemporaryDir *
mpa_temporaryDirectory
=
nullptr
;
145
146
bool
m_convertMzDataUsingSpectrumIndex
=
false
;
147
148
Enums::MsDataFormat
m_mzFormat
=
Enums::MsDataFormat::unknown
;
149
150
qint64
m_conversionTime
= 0;
151
};
152
}
// namespace pappso
pappso::PappsoException::PappsoException
PappsoException(const QString &message)
Definition
pappsoexception.h:43
pappso::TandemWrapperRun::mpa_temporaryDirectory
QTemporaryDir * mpa_temporaryDirectory
Definition
tandemwrapperrun.h:144
pappso::TandemWrapperRun::m_conversionTime
qint64 m_conversionTime
Definition
tandemwrapperrun.h:150
pappso::TandemWrapperRun::m_maxTandemRunTimeMs
int m_maxTandemRunTimeMs
Definition
tandemwrapperrun.h:138
pappso::TandemWrapperRun::run
void run(UiMonitorInterface &monitor, const QString &tandem_input_file)
run a tandem job
Definition
tandemwrapperrun.cpp:494
pappso::TandemWrapperRun::m_xtProcess
QProcess * m_xtProcess
Definition
tandemwrapperrun.h:140
pappso::TandemWrapperRun::m_tandemBinary
QString m_tandemBinary
Definition
tandemwrapperrun.h:135
pappso::TandemWrapperRun::setTandemBinaryPath
void setTandemBinaryPath(const QString &tandem_binary_path)
Definition
tandemwrapperrun.cpp:87
pappso::TandemWrapperRun::readyReadStandardError
void readyReadStandardError()
Definition
tandemwrapperrun.cpp:222
pappso::TandemWrapperRun::m_convertMzDataUsingSpectrumIndex
bool m_convertMzDataUsingSpectrumIndex
Definition
tandemwrapperrun.h:146
pappso::TandemWrapperRun::mp_monitor
UiMonitorInterface * mp_monitor
Definition
tandemwrapperrun.h:134
pappso::TandemWrapperRun::m_tandemVersion
QString m_tandemVersion
Definition
tandemwrapperrun.h:136
pappso::TandemWrapperRun::readyReadStandardOutput
void readyReadStandardOutput()
Definition
tandemwrapperrun.cpp:202
pappso::TandemWrapperRun::m_tmpDir
QString m_tmpDir
Definition
tandemwrapperrun.h:137
pappso::TandemWrapperRun::convertOrginalMsData2mzXmlData
bool convertOrginalMsData2mzXmlData(const QString &origin, const QString &target)
Definition
tandemwrapperrun.cpp:412
pappso::TandemWrapperRun::readTandemPresetFile
void readTandemPresetFile(const QString &tandem_preset_file)
Definition
tandemwrapperrun.cpp:272
pappso::TandemWrapperRun::msp_ms2FilterSuiteString
std::shared_ptr< FilterSuiteString > msp_ms2FilterSuiteString
Definition
tandemwrapperrun.h:142
pappso::TandemWrapperRun::wrapTandemInputFile
void wrapTandemInputFile(const QString &tandem_input_file)
Definition
tandemwrapperrun.cpp:321
pappso::TandemWrapperRun::tandemProgressMessage
void tandemProgressMessage(QString message)
pappso::TandemWrapperRun::writeFinalTandemOutput
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...
Definition
tandemwrapperrun.cpp:235
pappso::TandemWrapperRun::TandemWrapperRun
TandemWrapperRun(const QString &tandem_binary, const QString &tmp_dir)
prepare a tandem run
Definition
tandemwrapperrun.cpp:50
pappso::TandemWrapperRun::getMs2FilterSuiteString
QString getMs2FilterSuiteString() const
gets the list of filters used on MS2 spectrum
Definition
tandemwrapperrun.cpp:568
pappso::TandemWrapperRun::runTandem
void runTandem(const QString &tandem_input_file)
run a tandem job
Definition
tandemwrapperrun.cpp:502
pappso::TandemWrapperRun::m_mzFormat
Enums::MsDataFormat m_mzFormat
Definition
tandemwrapperrun.h:148
pappso::TandemWrapperRun::checkXtandemVersion
const QString checkXtandemVersion(const QString &tandem_bin_path)
Definition
tandemwrapperrun.cpp:106
pappso::UiMonitorInterface
Definition
uimonitorinterface.h:50
pappso::XtandemError::clone
virtual QException * clone() const override
Definition
tandemwrapperrun.h:55
pappso::XtandemError::XtandemError
XtandemError(const QString &message)
Definition
tandemwrapperrun.h:50
export-import-config.h
PMSPP_LIB_DECL
#define PMSPP_LIB_DECL
Definition
export-import-config.h:14
filtersuitestring.h
pappso::Enums::MsDataFormat
MsDataFormat
Definition
types.h:141
pappso::Enums::MsDataFormat::unknown
@ unknown
unknown format
Definition
types.h:142
pappso
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition
aa.cpp:39
pappsoexception.h
types.h
uimonitorinterface.h
pappsomspp
core
processing
tandemwrapper
tandemwrapperrun.h
Generated on
for libpappsomspp by
1.17.0