compomics / peptide-shaker

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

StringIndexOutOfBoundsException #485

Open jcanderan opened 2 years ago

jcanderan commented 2 years ago

Hello,

I've been getting this error on a particular file with two different combinations of search engines:

Comet + MSGF + MetaMorpheus or Comet + MSGF + MetaMorpheus + XTandem

(10 PPM precursor/fragment error)

It should be noted that I've gotten the file to work at 5 PPM with those combinations and also with a different (larger) FASTA file in the past.

I dumped the output here

Thanks!

Full log message below:

Fri Jun 24 09:46:10 UTC 2022 Inferring PI Status and Sorting Proteins. Please Wait...
10% 20% 30% 40%
Fri Jun 24 09:46:11 UTC 2022 An error occurred while creating the PeptideShaker project. Please see the PeptideShaker log file: 
Fri Jun 24 09:44:53 UTC 2022: PeptideShaker version 2.2.9.
Memory given to the Java virtual machine: 57982058496.
Total amount of memory in the Java virtual machine: 57982058496.
Free memory: 57940113408.
Java version: 11.0.13.
java.lang.StringIndexOutOfBoundsException
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
        at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:603)
        at java.base/java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:678)
        at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:737)
        at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:159)
        at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:173)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
        at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
        at eu.isas.peptideshaker.protein_inference.ProteinInference.inferPiStatus(ProteinInference.java:115)
        at eu.isas.peptideshaker.PeptideShaker.createProject(PeptideShaker.java:626)
        at eu.isas.peptideshaker.cmd.PeptideShakerCLI.createProject(PeptideShakerCLI.java:1261)
        at eu.isas.peptideshaker.cmd.PeptideShakerCLI.call(PeptideShakerCLI.java:245)
        at eu.isas.peptideshaker.cmd.PeptideShakerCLI.main(PeptideShakerCLI.java:1465)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 397
        at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:47)
        at java.base/java.lang.String.charAt(String.java:693)
        at com.compomics.util.experiment.identification.utils.PeptideUtils.getNEnzymaticTermini(PeptideUtils.java:638)
        at com.compomics.util.experiment.identification.utils.PeptideUtils.lambda$null$16(PeptideUtils.java:680)
        at java.base/java.util.stream.IntPipeline$4$1.accept(IntPipeline.java:246)
        at java.base/java.util.Spliterators$IntArraySpliterator.tryAdvance(Spliterators.java:1041)
        at java.base/java.util.stream.IntPipeline.forEachWithCancel(IntPipeline.java:163)
        at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
        at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
        at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.IntPipeline.anyMatch(IntPipeline.java:513)
        at com.compomics.util.experiment.identification.utils.PeptideUtils.lambda$isEnzymatic$18(PeptideUtils.java:687)
        at java.base/java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
        at java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1632)
        at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127)
        at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
        at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
        at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:528)
        at com.compomics.util.experiment.identification.utils.PeptideUtils.isEnzymatic(PeptideUtils.java:677)
        at eu.isas.peptideshaker.protein_inference.ProteinInference.lambda$compareMainProtein$4(ProteinInference.java:403)
        at java.base/java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
        at java.base/java.util.stream.LongPipeline$1$1.accept(LongPipeline.java:177)
        at java.base/java.util.Spliterators$LongArraySpliterator.tryAdvance(Spliterators.java:1124)
        at java.base/java.util.stream.LongPipeline.forEachWithCancel(LongPipeline.java:161)
        at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
        at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
        at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:528)
        at eu.isas.peptideshaker.protein_inference.ProteinInference.compareMainProtein(ProteinInference.java:402)
        at eu.isas.peptideshaker.protein_inference.ProteinInference.inferPiStatus(ProteinInference.java:173)
        at eu.isas.peptideshaker.protein_inference.ProteinInference.lambda$inferPiStatus$1(ProteinInference.java:116)
        at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
        at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1621)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
        at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:290)
        at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
hbarsnes commented 2 years ago

I can confirm that I'm able to reproduce the issue. Seems to be an error with the indexing of protein c-terminal peptides. I will have to dig deeper and get back to you.

hbarsnes commented 2 years ago

I've uploaded a beta version here with a quick fix that should allow you to process and open the given data: https://filesender.uninett.no/?s=download&token=0cb4f3b0-20e9-48c8-9d88-530c5e22d362.

I will still need to locate and properly fix the error. When this is done, I will release an official new version and let you know.