peptide-shaker
peptide-shaker copied to clipboard
StringIndexOutOfBoundsException
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)
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.
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.