From e0594bd8e4d2d8ce2b6c1ed0b80e55297a619d7d Mon Sep 17 00:00:00 2001 From: Olivier Langella <Olivier.Langella@moulon.inra.fr> Date: Tue, 9 May 2017 17:20:21 +0200 Subject: [PATCH] store mz format --- src/core/msrun.cpp | 12 +++++++++--- src/core/msrun.h | 1 + src/utils/readspectrum.cpp | 19 ++++++++++++++++--- src/utils/readspectrum.h | 2 ++ src/utils/types.h | 2 ++ 5 files changed, 30 insertions(+), 6 deletions(-) diff --git a/src/core/msrun.cpp b/src/core/msrun.cpp index 57ee5eb02..52a6c8998 100644 --- a/src/core/msrun.cpp +++ b/src/core/msrun.cpp @@ -49,9 +49,9 @@ MsRun::~MsRun() { } - const QString & MsRun::getSampleName() const { - return _name; - } +const QString & MsRun::getSampleName() const { + return _name; +} void MsRun::setFilename(const QString filename) { _location = filename; @@ -69,3 +69,9 @@ const QString & MsRun::getFilename() const { MzFormat MsRun::getMzFormat() const { return _mz_format; } + + +void MsRun::setMzFormat(MzFormat mz_format) { + _mz_format = mz_format; +} + diff --git a/src/core/msrun.h b/src/core/msrun.h index 25ad79b76..a389390a0 100644 --- a/src/core/msrun.h +++ b/src/core/msrun.h @@ -54,6 +54,7 @@ public: const QString & getXmlId() const; MzFormat getMzFormat() const; + void setMzFormat(MzFormat mz_format); private : QString _xml_id; QString _location; diff --git a/src/utils/readspectrum.cpp b/src/utils/readspectrum.cpp index b04825222..4bece5340 100644 --- a/src/utils/readspectrum.cpp +++ b/src/utils/readspectrum.cpp @@ -27,6 +27,7 @@ #include <QSettings> #include <QFileInfo> #include <QDir> +#include <QString> #include <pappsomspp/spectrum/spectrum.h> #include <pappsomspp/exception/exceptionnotfound.h> @@ -58,6 +59,20 @@ pwiz::msdata::MSDataFile * getPwizMSDataFile(const QString & filename) { return dataFile; } +MzFormat getPwizMSDataFileFormat(pwiz::msdata::MSDataFile * p_ms_data_file) { + pwiz::msdata::CVID native_id_format = pwiz::msdata::id::getDefaultNativeIDFormat(*p_ms_data_file); + if (native_id_format == pwiz::cv::CVID::MS_Mascot_MGF_format) { + return MzFormat::MGF; + } + if (native_id_format == pwiz::cv::CVID::MS_mzML_format) { + return MzFormat::mzML; + } + if (native_id_format == pwiz::cv::CVID::MS_ISB_mzXML_format) { + return MzFormat::mzXML; + } + throw pappso::PappsoException(QObject::tr(" pwiz::msdata::CVID native_id_format %1 not found").arg(native_id_format)); + return MzFormat::unknown; +} SpectrumSp getSpectrumSpFromPwizMSDataFile(pwiz::msdata::MSDataFile * p_ms_data_file, unsigned int scan_num, unsigned int & precursor_charge_state) { @@ -75,9 +90,6 @@ SpectrumSp getSpectrumSpFromPwizMSDataFile(pwiz::msdata::MSDataFile * p_ms_data_ else { // turn our scan numbers into navtieId strings for pwiz native_id_format = pwiz::msdata::id::getDefaultNativeIDFormat(*p_ms_data_file); - if (native_id_format == pwiz::cv::CVID::MS_Mascot_MGF_format) { - scan_num = scan_num-1; - } string nativeScanId = pwiz::msdata::id::translateScanNumberToNativeID(native_id_format, QString("%1").arg(scan_num).toStdString()); spectrum_index = spectrum_list_ptr.get()->find(nativeScanId); } @@ -202,6 +214,7 @@ pappso::SpectrumSp SpectrumStore::getSpectrumSpFromMsRunSp(MsRunSp msrun, unsign } msrun.get()->setFilename(mz_file); p_msdatafile = getPwizMSDataFile(mz_file); + msrun.get()->setMzFormat(getPwizMSDataFileFormat(p_msdatafile)); _map_msrun_msdatafile.insert(std::pair<MsRunSp, pwiz::msdata::MSDataFile *>(msrun, p_msdatafile)); } else { diff --git a/src/utils/readspectrum.h b/src/utils/readspectrum.h index 89eee5bf7..1643e3942 100644 --- a/src/utils/readspectrum.h +++ b/src/utils/readspectrum.h @@ -36,6 +36,8 @@ pwiz::msdata::MSDataFile * getPwizMSDataFile(const QString & filename); pappso::SpectrumSp getSpectrumSpFromPwizMSDataFile(pwiz::msdata::MSDataFile * p_ms_data_file, unsigned int scan_num, unsigned int & precursor_charge_state); +MzFormat getPwizMSDataFileFormat(pwiz::msdata::MSDataFile * p_ms_data_file); + class SpectrumStore { public: static pappso::SpectrumSp getSpectrumSpFromMsRunSp(MsRunSp msrun, unsigned int scan_num); diff --git a/src/utils/types.h b/src/utils/types.h index 7244df994..432f5e157 100644 --- a/src/utils/types.h +++ b/src/utils/types.h @@ -66,8 +66,10 @@ enum class GroupingType { */ enum class MzFormat { + unknown, ///< unknown format mzML, ///< mzML mzXML, ///< mzXML + MGF, ///< Mascot format }; /** \def ValidationState -- GitLab