I see. From what I remember, there will be a warning in this case. So I guess it’s the best we can do.

 

From: Hannes Roest [mailto:notifications@github.com] 
Sent: Tuesday, April 22, 2014 5:42 PM
To: OpenMS/OpenMS
Cc: cbielow
Subject: Re: [OpenMS] [FIX] AASequence refactoring (#792)

 

In src/openms/include/OpenMS/CHEMISTRY/AASequence.h:

>        are specified by writing the modification as prefix to the sequence. C-terminal modifications are specified by
>        writing the modification as suffix. C-terminal modifications are distinguished from modifications of the last amino
>        acid by considering the specificity of the modification as stored in ModificationsDB.
>  
> -      Note there is a subtle difference between AASequence("DFPIAM[+16]GER") and AASequence("DFPIAM[+15.9949]GER") - while
> +      Note there is a subtle difference between AASequence::fromString("DFPIAM[+16]GER") and AASequence::fromString("DFPIAM[+15.9949]GER") - while

@cbielow <https://github.com/cbielow>  yes, this is unfortunate but true. The underlying problem is that some programs output integers and they can be ambiguous. There is currently no good way to resolve the ambiguity and we noticed that matching by exact mass was a bad way to resolve the ambiguity. This is the case since the integer mass maps to modifications by some biologists intuition as far as I could tell.

For example, some search engines from the TPP report modifications such as M[+16] since "it is known" that this is an oxidation or Y[243] since this is "clearly" a phosphorylation. However, for OpenMS this is not so easy to know and there may be some modification matching better to +243.0 than a phosphorylation -- in this case "UniMod 40" (Sulfo) matches better since it is +243.02 while Phospho is +243.03. Therefore, we take the "first" hit which is the one that was entered first into UniMod. This is not perfect, but works for most cases.

If you have a better idea how to solve this problem, I would be happy to hear it - one idea that we had was to hardcode a few modifications (does not sound better to me) or to let the user specify a "preferred" order by which the modifications should be matched but this seemed somewhat overkill to me.

—
Reply to this email directly or view it on GitHub <https://github.com/OpenMS/OpenMS/pull/792/files#r11859655> .  <https://github.com/notifications/beacon/6008722__eyJzY29wZSI6Ik5ld3NpZXM6QmVhY29uIiwiZXhwaXJlcyI6MTcxMzgwMDUxNCwiZGF0YSI6eyJpZCI6MjkzNDk5NzF9fQ==--bcc97eb2b3cf2f4b46b82c8f7df0b170c793b9ee.gif>