diff --git a/src/utils/readspectrum.cpp b/src/utils/readspectrum.cpp index 6fada3cb6a9c0f4bbab48ad2288fab41813ac233..b84e14943b2494ba0f0f74853b1ef48088455e52 100644 --- a/src/utils/readspectrum.cpp +++ b/src/utils/readspectrum.cpp @@ -123,13 +123,28 @@ pappso::QualifiedSpectrum getQualifiedSpectrumFromPwizMSDataFile(pwiz::msdata::M string nativeScanId = pwiz::msdata::id::translateScanNumberToNativeID(native_id_format, QString("%1").arg(scan_num).toStdString()); spectrum_index = spectrum_list_ptr.get()->find(nativeScanId); } - qDebug() << "spectrum_index " << spectrum_index; + qDebug() << "getQualifiedSpectrumFromPwizMSDataFile spectrum_index " << spectrum_index; if (spectrum_index == spectrum_list_ptr.get()->size()) { //pwiz::msdata::SpectrumPtr simple_spectrum_pwiz = spectrum_list_ptr.get()->spectrum(10, getBinaryData); //qDebug() << "spectrum id 10 " << simple_spectrum_pwiz.get()->get; - throw ExceptionNotFound(QObject::tr("scan number %1 not found MS file").arg(scan_num)); + throw ExceptionNotFound(QObject::tr("scan number %1 not found in MS file").arg(scan_num)); } - pwiz::msdata::SpectrumPtr simple_spectrum_pwiz = spectrum_list_ptr.get()->spectrum(spectrum_index, getBinaryData); + pwiz::msdata::SpectrumPtr simple_spectrum_pwiz; + try { + simple_spectrum_pwiz = spectrum_list_ptr.get()->spectrum(spectrum_index, getBinaryData); + } catch (std::runtime_error & error) { + qDebug() << "getQualifiedSpectrumFromPwizMSDataFile error " << error.what() << " " << typeid(error).name(); + throw ExceptionNotFound(QObject::tr("scan number %1 not found in MS file std::runtime_error :\n%2").arg(scan_num).arg(error.what())); + } + catch (std::exception & error) { + qDebug() << "getQualifiedSpectrumFromPwizMSDataFile error " << error.what() << " " << typeid(error).name(); + throw ExceptionNotFound(QObject::tr("scan number %1 not found in MS file :\n%2").arg(scan_num).arg(error.what())); + } + if (simple_spectrum_pwiz.get() == nullptr) { + throw ExceptionNotFound(QObject::tr("scan number %1 not found in MS file : null pointer").arg(scan_num)); + } + + qDebug() << "getQualifiedSpectrumFromPwizMSDataFile precursors.size() " << simple_spectrum_pwiz.get()->precursors.size(); if (simple_spectrum_pwiz.get()->precursors.size() > 0) { pwiz::msdata::Precursor & precursor = *(simple_spectrum_pwiz.get()->precursors.begin()); if (precursor.selectedIons.size() > 0) { @@ -158,7 +173,8 @@ pappso::QualifiedSpectrum getQualifiedSpectrumFromPwizMSDataFile(pwiz::msdata::M } } - unsigned int msLevel(QString(simple_spectrum_pwiz->cvParam(pwiz::msdata::MS_ms_level).value.c_str()).toUInt()); + qDebug() << "getQualifiedSpectrumFromPwizMSDataFile msLevel" ; + unsigned int msLevel(QString(simple_spectrum_pwiz->cvParam(pwiz::msdata::MS_ms_level).value.c_str()).toUInt()); pappso_double retentionTime = QString(simple_spectrum_pwiz->scanList.scans[0].cvParam(pwiz::msdata::MS_scan_start_time).value.c_str()).toDouble(); qspectrum.setRtInSeconds(retentionTime); @@ -185,7 +201,7 @@ pappso::QualifiedSpectrum getQualifiedSpectrumFromPwizMSDataFile(pwiz::msdata::M //qDebug() << "it->mz " << it->mz << " it->intensity" << it->intensity; spectrum.push_back(Peak(it->mz, it->intensity)); } - qDebug() << "spectrum size " << spectrum.size(); + qDebug() << "getQualifiedSpectrumFromPwizMSDataFile spectrum size " << spectrum.size(); if (native_id_format == pwiz::cv::CVID::MS_Mascot_MGF_format) { //sort peaks by mz spectrum = spectrum.takeNmostIntense(1000); @@ -197,6 +213,7 @@ pappso::QualifiedSpectrum getQualifiedSpectrumFromPwizMSDataFile(pwiz::msdata::M //qDebug() << " env=" << localeconv () << " lc->decimal_point " << lc->decimal_point; SpectrumSp spectrum_sp = spectrum.makeSpectrumSp(); qspectrum.setOriginalSpectrumSp(spectrum_sp); + qDebug() << "getQualifiedSpectrumFromPwizMSDataFile end "; return qspectrum; }