compomics / peptide-shaker

Interpretation of proteomics identification results
http://compomics.github.io/projects/peptide-shaker.html
48 stars 18 forks source link

PhosphoRS probability >100% #149

Closed chpaul closed 8 years ago

chpaul commented 8 years ago

Hi I tried to use peptideShaker to merge results from SearchGUI, and I got an error from PeptideShaker.

Error log Mon Apr 04 10:58:16 CDT 2016: PeptideShaker version 1.9.2. Memory given to the Java virtual machine: 23861395456. Total amount of memory in the Java virtual machine: 163053568. Free memory: 116437736. Java version: 1.8.0_77. java.lang.IllegalArgumentException: PhosphoRS probability >100% at com.compomics.util.experiment.identification.ptm.ptmscores.PhosphoRS.getSequenceProbabilities(PhosphoRS.java:401) at eu.isas.peptideshaker.ptm.PtmScorer.attachProbabilisticScore(PtmScorer.java:316) at eu.isas.peptideshaker.ptm.PtmScorer.scorePTMs(PtmScorer.java:415) at eu.isas.peptideshaker.ptm.PtmScorer$PsmPtmScorerRunnable.run(PtmScorer.java:2365) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

Here is the data set I used http://proteomecentral.proteomexchange.org/cgi/GetDataset?ID=PXD003478

Thank you

mvaudel commented 8 years ago

Hi,

Thank you for reporting this issue and sharing the data with us. I will try to reproduce it on our side and come back to you.

Best regards,

Marc

mvaudel commented 8 years ago

Hi again,

Can you send me the database you used and the search parameters so that I can reproduce the error on my side? The search parameters can be exported to a file from the parameters edition dialog.

Thank you,

Marc

chpaul commented 8 years ago

Thank you for replaying

I downloaded the data set from Proteomexchange, and use the parameters that describe in the webpage.

http://proteomecentral.proteomexchange.org/cgi/GetDataset?ID=PXD003478 Data set description http://www.ebi.ac.uk/pride/archive/projects/PXD003478 Data set download ftp://ftp.pride.ebi.ac.uk/pride/data/archive/2016/02/PXD003478/

Enzyme :trypsin
two missed cleavages were allowed.

Fix modification: Cysteine carboxamidomethylation (Cys, +57.021464 Da)

Variable modification: methionine oxidation (Met,+15.994915 Da) N-terminal acetylation (N-terminal, +42.010565 Da)

search tolerance MS: 4.5 ppm MS/MS: 20 ppm

Chuan-Yih

mvaudel commented 8 years ago

Hi and thank you for this additional piece of information.

In order to reproduce the error, I would need the fasta file you used. Can you also specify which search engines you were using? If you could send me the SearchGUI results that would be very useful.

Thank you,

Marc

jj-umn commented 8 years ago

This is a precision error.
I encountered a number of these errors.
In each case: pInvMap.get(profileKey) == pInvTotal but: pInvMap.get(profileKey) * 100 / pInvTotal == 100.00000000000001

This could likely be fixed in: com.compomics.util.experiment.identification.ptm.ptmscores.PhosphoRS.getSequenceProbabilities(PhosphoRS.java:390)
with: Double phosphoRsProbability = pInvMap.get(profileKey) != pInvTotal ? pInvMap.get(profileKey) * 100 / pInvTotal : 100.; //in percent

jj-umn commented 8 years ago

Unless there is some issue with phosphoRsProbability close to zero, it is probably more straight forward to use: Double phosphoRsProbability = pInvMap.get(profileKey) / pInvTotal * 100;

mvaudel commented 8 years ago

Hi JJ,

A fix was already in GitHub (https://github.com/compomics/compomics-utilities/commit/820ccb05d92ed49c6e3a437a65eb8d787e58560f), basically your second proposition. We are running tests and will release new versions later this week :)

Thanks for the input, it is much appreciated. This code and all our code in general deserves improvements so if you have suggestions we will be happy to implement them!

Best regards,

Marc

hbarsnes commented 8 years ago

Hi JJ,

These issues have been corrected in the new releases.

Best regards, Harald