Skip to content
Snippets Groups Projects
Commit 8fbf7d14 authored by Langella Olivier's avatar Langella Olivier
Browse files

find psi mod accession with unimod accession

parent 0ad05745
No related branches found
No related tags found
No related merge requests found
......@@ -307,6 +307,8 @@ IdentificationPwizReader::read(
//<Modification monoisotopicMassDelta="42.01056468" location="1">
// <cvParam accession="MOD:00394" cvRef="PSI-MOD" name="acetylated
// residue"/>
//<cvParam cvRef="UNIMOD" accession="UNIMOD:28"
// name="Gln-&gt;pyro-Glu"/>
//</Modification>
for(pwiz::identdata::ModificationPtr mod_ptr :
peptide_pwiz->modification)
......@@ -320,29 +322,28 @@ IdentificationPwizReader::read(
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()));
}
pappso::AaModificationP modification_ptr = nullptr;
// std::vector<CVParam> cvParams;
for(const pwiz::data::CVParam &param : mod_ptr.get()->cvParams)
{
qDebug() << "IdentificationPwizReader::read param "
<< QString::fromStdString(param.name());
//<cvParam cvRef="UNIMOD" accession="UNIMOD:28"
// name="Gln-&gt;pyro-Glu"/>
if(pwiz::cv::cvTermInfo(param.cvid).prefix() == "UNIMOD")
{
modification_ptr =
Utils::translateAaModificationFromUnimod(
QString(pwiz::cv::cvTermInfo(param.cvid).id.c_str()));
/*
if(modification_ptr == nullptr)
{
throw pappso::PappsoException(
QObject::tr("UNIMOD %1 not found ")
.arg(pwiz::cv::cvTermInfo(param.cvid).id.c_str()));
}*/
}
/*
if (pwiz::cv::cvTermInfo(param.cvid).prefix() == "PSI-MOD") {
}
......@@ -354,6 +355,27 @@ IdentificationPwizReader::read(
}
*/
}
if(modification_ptr == nullptr)
{
modification_ptr =
Utils::guessAaModificationPbyMonoisotopicMassDelta(
mass_delta);
}
try
{
peptide.addAaModification(modification_ptr, 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()));
}
for(const pwiz::data::UserParam &param :
mod_ptr.get()->userParams)
......
......@@ -203,3 +203,39 @@ Utils::guessAaModificationPbyMonoisotopicMassDelta(pappso::mz mass)
"modification not found for mass %1")
.arg(mass));
}
pappso::AaModificationP
Utils::translateAaModificationFromUnimod(const QString &unimod_accession)
{
if(unimod_accession == "UNIMOD:1")
{
return pappso::AaModification::getInstance("MOD:00394");
}
if(unimod_accession == "UNIMOD:4")
{
return pappso::AaModification::getInstance("MOD:00397");
}
if(unimod_accession == "UNIMOD:27")
{
return pappso::AaModification::getInstance("MOD:00420");
}
// UNIMOD:28 => MOD:00040
if(unimod_accession == "UNIMOD:28")
{
return pappso::AaModification::getInstance("MOD:00040");
}
if(unimod_accession == "UNIMOD:35")
{
return pappso::AaModification::getInstance("MOD:00425");
}
qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__ << " "
<< unimod_accession << " not found";
return nullptr;
}
......@@ -38,6 +38,8 @@ class Utils
static const QString getXmlDouble(pappso::pappso_double number);
static pappso::AaModificationP
guessAaModificationPbyMonoisotopicMassDelta(pappso::mz mass);
static pappso::AaModificationP
translateAaModificationFromUnimod(const QString &unimod_accession);
static std::vector<std::pair<pappso::pappso_double, size_t>>
getHistogram(std::vector<pappso::pappso_double> data_values,
unsigned int number_of_class);
......
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