compomics / peptide-shaker-2.0-issue-tracker

Issue tracker for the beta release of PeptideShaker 2.0
Apache License 2.0
0 stars 0 forks source link

Two modifications at the same site #36

Open hbarsnes opened 5 years ago

hbarsnes commented 5 years ago

Related to PS issue 260.

Data to reproduce the issue can be found here: http://vedlegg.uib.no/?id=4ecd6fd34cc85e9f5eb518a12bb0a55a.

java.lang.IllegalArgumentException: Two modifications found (Dioxidation of M and Oxidation of M) at site 15 of peptide QWTCCPCCVCMATEM.
    at com.compomics.util.experiment.biology.proteins.Peptide.getIndexedVariableModifications(Peptide.java:378)
    at com.compomics.util.experiment.biology.ions.IonFactory.getFragmentIons(IonFactory.java:216)
    at com.compomics.util.experiment.identification.modification.scores.PhosphoRS.getPossiblePeptideFragments(PhosphoRS.java:624)
    at com.compomics.util.experiment.identification.modification.scores.PhosphoRS.getSequenceProbabilities(PhosphoRS.java:191)
    at eu.isas.peptideshaker.ptm.ModificationLocalizationScorer.attachProbabilisticScore(ModificationLocalizationScorer.java:252)
    at eu.isas.peptideshaker.ptm.ModificationLocalizationScorer.scorePTMs(ModificationLocalizationScorer.java:369)
    at eu.isas.peptideshaker.processing.PsmProcessor.processPsm(PsmProcessor.java:161)
hbarsnes commented 5 years ago

The link to download the data to reproduce the issue had timed out. Here's an updated link: http://vedlegg.uib.no/?id=9e7cfe34852f509c6195f6d88ef8c38f.

The stack trace is still the same, only it's at Peptide.java:377 now.

hbarsnes commented 5 years ago

@mvaudel I've located the source of this issue, but I need your help on how to fix it correctly.

Basically the PhosphoRS calculation creates peptides with PTM profiles that are not supported, i.e. two PTMs on the same residue, and then complains that this is not supported when trying to score the unsupported option...

Just to be clear, the PTM profiles provided by the search engines are all fine. The problematic profiles are exclusively products of the PhosphoRS calculation.

The unsupported PTM profiles are created in the getPossiblePeptidesMap method in the PhosphoRS class, which then later results in the exception above being thrown when executing the getPossiblePeptideFragments method one line later (lines 190-191 in PhosphoRS).

Unsure how to best correct this? I'm also kind of surprised that this issue does not happen more frequently than what seems to be the case?

hbarsnes commented 5 years ago

The same issue also occurs if setting "Probabilistic Score" to "None" but keeping "Site Alignment" as "Yes".

java.lang.IllegalArgumentException: Two modifications found (Dioxidation of M and Oxidation of M) at site 3 of peptide ESMGFKTVMR.
    at com.compomics.util.experiment.biology.proteins.Peptide.getIndexedVariableModifications(Peptide.java:377)
    at com.compomics.util.experiment.biology.ions.IonFactory.getFragmentIons(IonFactory.java:216)
    at com.compomics.util.experiment.identification.spectrum_annotation.spectrum_annotators.PeptideSpectrumAnnotator.setPeptide(PeptideSpectrumAnnotator.java:103)
    at com.compomics.util.experiment.identification.spectrum_annotation.spectrum_annotators.PeptideSpectrumAnnotator.getSpectrumAnnotationStream(PeptideSpectrumAnnotator.java:288)
    at com.compomics.util.experiment.identification.spectrum_annotation.spectrum_annotators.PeptideSpectrumAnnotator.getSpectrumAnnotationStream(PeptideSpectrumAnnotator.java:219)
    at com.compomics.util.experiment.identification.spectrum_annotation.spectrum_annotators.PeptideSpectrumAnnotator.getSpectrumAnnotationStream(PeptideSpectrumAnnotator.java:191)
    at com.compomics.util.experiment.identification.spectrum_annotation.spectrum_annotators.PeptideSpectrumAnnotator.getCoveredAminoAcids(PeptideSpectrumAnnotator.java:339)
    at com.compomics.util.experiment.identification.filtering.AssumptionFilter.isValidated(AssumptionFilter.java:233)
    at com.compomics.util.experiment.identification.filtering.AssumptionFilter.isValidated(AssumptionFilter.java:102)
    at com.compomics.util.experiment.identification.filtering.PsmFilter.isValidated(PsmFilter.java:103)
    at com.compomics.util.experiment.identification.filtering.MatchFilter.isValidated(MatchFilter.java:433)
    at eu.isas.peptideshaker.validation.MatchesValidator.updateSpectrumMatchValidationLevel(MatchesValidator.java:820)
    at eu.isas.peptideshaker.validation.MatchesValidator$PsmValidatorRunnable.run(MatchesValidator.java:1655)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
java.lang.RuntimeException: java.lang.InterruptedException
    at com.compomics.util.experiment.identification.matches_iterators.MatchesIterator.getIndex(MatchesIterator.java:172)
    at com.compomics.util.experiment.identification.matches_iterators.MatchesIterator.nextObject(MatchesIterator.java:137)
    at com.compomics.util.experiment.identification.matches_iterators.PeptideMatchesIterator.next(PeptideMatchesIterator.java:57)
    at eu.isas.peptideshaker.validation.MatchesValidator$PeptideValidatorRunnable.run(MatchesValidator.java:1899)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
hbarsnes commented 5 years ago

Temporary fix: The issue is avoided if setting the "Probabilistic Score" to "None" and "Confident Sites" under "Site Alignment" to "No" in the "PTM Localization" settings dialog.