From 0ad05745610f76d9ff7a3ff2b10c9a0ee05dffa9 Mon Sep 17 00:00:00 2001 From: Olivier Langella <olivier.langella@u-psud.fr> Date: Wed, 3 Oct 2018 19:23:02 +0200 Subject: [PATCH] fix adding modification at position -1 in pwiz reader --- src/input/identificationpwizreader.cpp | 29 ++++++++++++++++++++++---- src/input/mascot/mascotdatparser.cpp | 14 +++++-------- 2 files changed, 30 insertions(+), 13 deletions(-) diff --git a/src/input/identificationpwizreader.cpp b/src/input/identificationpwizreader.cpp index 088b4db08..c3afa93b4 100644 --- a/src/input/identificationpwizreader.cpp +++ b/src/input/identificationpwizreader.cpp @@ -247,7 +247,8 @@ getQVariantDoubleParam(pwiz::data::ParamContainer *item, pwiz::cv::CVID param) void IdentificationPwizReader::read( - IdentificationDataSource *p_identification_data_source, Project *p_project, + IdentificationDataSource *p_identification_data_source, + Project *p_project, IdentificationGroup *p_identification_group) { qDebug() << "IdentificationPwizReader::read begin"; @@ -314,9 +315,29 @@ IdentificationPwizReader::read( pappso::pappso_double mass_delta = mod_ptr.get()->monoisotopicMassDelta; - peptide.addAaModification( - Utils::guessAaModificationPbyMonoisotopicMassDelta(mass_delta), - location - 1); + if(location > 0) + { + location = location - 1; + } + + try + { + peptide.addAaModification( + Utils::guessAaModificationPbyMonoisotopicMassDelta( + mass_delta), + location); + } + catch(pappso::PappsoException &error) + { + throw pappso::PappsoException( + QObject::tr("ERROR adding modification mass delta %1 to " + "peptide %2 at " + "position %3 :\n %4") + .arg(mass_delta) + .arg(peptide.toAbsoluteString()) + .arg(location) + .arg(error.qwhat())); + } // std::vector<CVParam> cvParams; for(const pwiz::data::CVParam ¶m : mod_ptr.get()->cvParams) { diff --git a/src/input/mascot/mascotdatparser.cpp b/src/input/mascot/mascotdatparser.cpp index 5f8140792..2751237a0 100644 --- a/src/input/mascot/mascotdatparser.cpp +++ b/src/input/mascot/mascotdatparser.cpp @@ -911,16 +911,12 @@ MascotDatParser::setVariableModifications(PeptideXtpSp &peptide_sp, [variable_modifications_string.mid(i, 1).toUInt() - 1]; try { - if(i == 0) + if(i > 0) { - peptide_sp.get()->addAaModification( - mascot_modification.modification, 0); - } - else - { - peptide_sp.get()->addAaModification( - mascot_modification.modification, i - 1); + i = i - 1; } + peptide_sp.get()->addAaModification( + mascot_modification.modification, i); } catch(pappso::PappsoException &error) { @@ -929,7 +925,7 @@ MascotDatParser::setVariableModifications(PeptideXtpSp &peptide_sp, "position %3 :\n %4") .arg(mascot_modification.modification->getAccession()) .arg(peptide_sp.get()->toAbsoluteString()) - .arg(i - 1) + .arg(i) .arg(error.qwhat())); } } -- GitLab