Skip to content
Snippets Groups Projects
Commit 0fe79a33 authored by Renne Thomas's avatar Renne Thomas
Browse files

Handle different Tandem Parameters file type

parent c9e22c3c
No related branches found
No related tags found
1 merge request!22Willy's issues
...@@ -42,31 +42,41 @@ TandemParametersFile::TandemParametersFile(const QString &fasta_source) ...@@ -42,31 +42,41 @@ TandemParametersFile::TandemParametersFile(const QString &fasta_source)
qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__ << " " qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__ << " "
<< fasta_source; << fasta_source;
setMethodName(_param_source.baseName());
} }
TandemParametersFile::TandemParametersFile(const QFileInfo &fasta_source) TandemParametersFile::TandemParametersFile(const QFileInfo &fasta_source)
: _param_source(fasta_source) : _param_source(fasta_source)
{ {
setMethodName(_param_source.baseName());
} }
TandemParametersFile::TandemParametersFile(const TandemParametersFile &other) TandemParametersFile::TandemParametersFile(const TandemParametersFile &other)
: _param_source(other._param_source) : _param_source(other._param_source)
{ {
setMethodName(_param_source.baseName());
} }
TandemParametersFile::~TandemParametersFile() TandemParametersFile::~TandemParametersFile()
{ {
} }
const QString const QString
TandemParametersFile::getMethodName() const TandemParametersFile::getMethodName()
{ {
return m_methodName; setTandemParametersFileType();
} if(m_fileType == ParamFileType::preset)
{
void return _param_source.baseName();
TandemParametersFile::setMethodName(QString method_name) }
{ else if(m_fileType == ParamFileType::result)
m_methodName = method_name; {
return m_presetFileInfo.baseName();
}
else if(m_fileType == ParamFileType::not_xtandem)
{
throw pappso::PappsoException(
QObject::tr("error : %1 is not a TandemParameters file\n")
.arg(_param_source.fileName()));
}
else // m_fileType == ParamFileType::no_file
{
throw pappso::PappsoException(QObject::tr("error : %1 Doesn't exist'\n")
.arg(_param_source.fileName()));
}
} }
const QString const QString
...@@ -162,6 +172,8 @@ TandemParametersFile::getTandemParameters() ...@@ -162,6 +172,8 @@ TandemParametersFile::getTandemParameters()
TandemParameters parameters; TandemParameters parameters;
XtandemParamSaxHandler *parser = new XtandemParamSaxHandler(&parameters); XtandemParamSaxHandler *parser = new XtandemParamSaxHandler(&parameters);
setTandemParametersFileType();
QXmlSimpleReader simplereader; QXmlSimpleReader simplereader;
simplereader.setContentHandler(parser); simplereader.setContentHandler(parser);
simplereader.setErrorHandler(parser); simplereader.setErrorHandler(parser);
...@@ -192,44 +204,26 @@ TandemParametersFile::getTandemParameters() ...@@ -192,44 +204,26 @@ TandemParametersFile::getTandemParameters()
.arg(_param_source.absoluteFilePath()) .arg(_param_source.absoluteFilePath())
.arg(parser->errorString())); .arg(parser->errorString()));
} }
if(m_isTandemParameterFile)
{ m_presetFileInfo = parser->getTandemPresetFileInfo();
setMethodName(parser->getTandemPresetName());
}
delete parser; delete parser;
parameters.setMethodName(getMethodName()); parameters.setMethodName(getMethodName());
return parameters; return parameters;
} }
bool bool
TandemParametersFile::isTandemPresetFile() TandemParametersFile::isTandemPresetFile()
{ {
getTandemParameters();
if(this->exists()) if(m_fileType == ParamFileType::result || m_fileType == ParamFileType::preset)
{ {
try
{
TandemParameters param = getTandemParameters();
if(!m_isTandemParameterFile)
return false;
param.getValue("spectrum, threads");
}
catch(pappso::ExceptionNotFound &error)
{
if(!m_isTandemParameterFile)
return false;
}
catch(pappso::PappsoException &error)
{
if(!m_isTandemParameterFile)
return false;
}
return true; return true;
} }
return false; else
{
return false;
}
} }
void void
...@@ -258,3 +252,40 @@ TandemParametersFile::writeXmlParametersFile( ...@@ -258,3 +252,40 @@ TandemParametersFile::writeXmlParametersFile(
p_out->writeEndElement(); p_out->writeEndElement();
p_out->writeEndDocument(); p_out->writeEndDocument();
} }
void
TandemParametersFile::setTandemParametersFileType()
{
if(this->exists())
{
try
{
TandemParameters param;
XtandemParamSaxHandler *parser = new XtandemParamSaxHandler(&param);
if(parser->getTandemPresetFileInfo().exists())
{
m_fileType = ParamFileType::result;
}
else
{
m_fileType = ParamFileType::preset;
}
delete parser;
}
catch(pappso::ExceptionNotFound &error)
{
throw pappso::ExceptionNotFound(
QObject::tr("error : %1 Doesn't exist'\n")
.arg(_param_source.fileName()));
m_fileType = ParamFileType::no_file;
}
catch(pappso::PappsoException &error)
{
throw pappso::PappsoException(
QObject::tr("error : %1 Doesn't exist'\n")
.arg(_param_source.fileName()));
m_fileType = ParamFileType::not_xtandem;
}
}
}
...@@ -34,6 +34,15 @@ ...@@ -34,6 +34,15 @@
#include <QXmlStreamWriter> #include <QXmlStreamWriter>
#include "../core/tandem_run/tandemparameters.h" #include "../core/tandem_run/tandemparameters.h"
enum class ParamFileType : std::int8_t
{
preset = 0, ///< Preset file type
result = 1, ///< Result file type
not_xtandem = 2, ///< Not XTandem file type
no_file = 3, ///< No parameters file found
};
class TandemParametersFile class TandemParametersFile
{ {
...@@ -47,7 +56,7 @@ class TandemParametersFile ...@@ -47,7 +56,7 @@ class TandemParametersFile
* File name if its a TandemPresetFile * File name if its a TandemPresetFile
* or "list path, default parameters" value if its a Tandem result * or "list path, default parameters" value if its a Tandem result
*/ */
const QString getMethodName() const; const QString getMethodName();
const QString getFilename() const; const QString getFilename() const;
const QDir getAbsoluteDir() const; const QDir getAbsoluteDir() const;
const QString getAbsoluteFilePath() const; const QString getAbsoluteFilePath() const;
...@@ -68,14 +77,15 @@ class TandemParametersFile ...@@ -68,14 +77,15 @@ class TandemParametersFile
/** @brief set param file directory /** @brief set param file directory
*/ */
void setDirectory(const QDir &directory); void setDirectory(const QDir &directory);
void setMethodName(const QString method_name);
private: private:
void writeXmlParametersFile(QXmlStreamWriter *p_out, void writeXmlParametersFile(QXmlStreamWriter *p_out,
const TandemParameters &parameters) const; const TandemParameters &parameters) const;
void setTandemParametersFileType();
private: private:
QFileInfo _param_source; QFileInfo _param_source;
bool m_isTandemParameterFile = false; bool m_isTandemParameterFile = false;
QString m_methodName; ParamFileType m_fileType;
QFileInfo m_presetFileInfo;
}; };
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
#include "xtandemparamsaxhandler.h" #include "xtandemparamsaxhandler.h"
#include <pappsomspp/pappsoexception.h> #include <pappsomspp/pappsoexception.h>
#include <QDebug> #include <QDebug>
#include <QFileInfo>
XtandemParamSaxHandler::XtandemParamSaxHandler( XtandemParamSaxHandler::XtandemParamSaxHandler(
...@@ -244,8 +243,7 @@ XtandemParamSaxHandler::endElement_note() ...@@ -244,8 +243,7 @@ XtandemParamSaxHandler::endElement_note()
{ {
if(_current_label == "list path, default parameters") if(_current_label == "list path, default parameters")
{ {
m_presetFileName = m_presetFileInfo = QFileInfo(_current_text.simplified());
QFileInfo(_current_text.simplified()).baseName();
} }
_p_tandem_parameters->setParamLabelValue(_current_label, _p_tandem_parameters->setParamLabelValue(_current_label,
_current_text.simplified()); _current_text.simplified());
...@@ -264,8 +262,8 @@ XtandemParamSaxHandler::endElement_note() ...@@ -264,8 +262,8 @@ XtandemParamSaxHandler::endElement_note()
return true; return true;
} }
QString QFileInfo
XtandemParamSaxHandler::getTandemPresetName() const XtandemParamSaxHandler::getTandemPresetFileInfo() const
{ {
return m_presetFileName; return m_presetFileInfo;
} }
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#include <QXmlDefaultHandler> #include <QXmlDefaultHandler>
#include <vector> #include <vector>
#include "../core/tandem_run/tandemparameters.h" #include "../core/tandem_run/tandemparameters.h"
#include <QFileInfo>
class XtandemParamSaxHandler : public QXmlDefaultHandler class XtandemParamSaxHandler : public QXmlDefaultHandler
{ {
...@@ -62,7 +63,7 @@ class XtandemParamSaxHandler : public QXmlDefaultHandler ...@@ -62,7 +63,7 @@ class XtandemParamSaxHandler : public QXmlDefaultHandler
bool isTandemParameter() const; bool isTandemParameter() const;
QString getTandemPresetName() const; QFileInfo getTandemPresetFileInfo() const;
private: private:
bool startElement_note(QXmlAttributes attributes); bool startElement_note(QXmlAttributes attributes);
...@@ -77,5 +78,5 @@ class XtandemParamSaxHandler : public QXmlDefaultHandler ...@@ -77,5 +78,5 @@ class XtandemParamSaxHandler : public QXmlDefaultHandler
QString _current_label; QString _current_label;
bool m_isTandemParameter = false; bool m_isTandemParameter = false;
QString m_presetFileName; QFileInfo m_presetFileInfo;
}; };
File mode changed from 100755 to 100644
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