I am trying to run COSS with a pretty large library (3.5M Peptides, where 1/3 are decoys).
When using a .msp file with a very small set it runs just normal. However, the above large set throws an error when trying to initialize some index list. Below is the error:
Starting COSS-V2
Rescoring with Percolator is set on by default in this version
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/LeIssar/Desktop/Software/COSS-2.0/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/LeIssar/Desktop/Software/COSS-2.0/lib/logback-classic-1.1.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
2022-06-19 19:56:25 INFO MainConsoleController:213 - Configuring Spectrum Reader ....
Jun 19, 2022 7:57:13 PM com.compomics.coss.controller.ConfigSpecReaders dispatcher
SEVERE: null
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Requested array size exceeds VM limit
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
at com.compomics.coss.controller.ConfigSpecReaders.dispatcher(ConfigSpecReaders.java:171)
at com.compomics.coss.controller.ConfigSpecReaders.startConfig(ConfigSpecReaders.java:78)
at com.compomics.coss.controller.MainConsoleController.configReader(MainConsoleController.java:215)
at com.compomics.coss.controller.MainConsoleController.startRunning(MainConsoleController.java:108)
at com.compomics.main.ProjectMain.launch(ProjectMain.java:91)
at com.compomics.main.ProjectMain.access$000(ProjectMain.java:16)
at com.compomics.main.ProjectMain$1.run(ProjectMain.java:71)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.OutOfMemoryError: Requested array size exceeds VM limit
at java.base/java.util.Arrays.copyOf(Arrays.java:3537)
at java.base/java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:229)
at java.base/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:789)
at java.base/java.lang.StringBuilder.append(StringBuilder.java:246)
at com.compomics.ms2io.controller.BufferedRAF.getNextLine(BufferedRAF.java:141)
at com.compomics.ms2io.controller.BufferedRAF.getNextLine(BufferedRAF.java:98)
at com.compomics.ms2io.controller.Indexer.mspIndexer(Indexer.java:174)
at com.compomics.ms2io.controller.Indexer.generate(Indexer.java:71)
at com.compomics.coss.controller.ConfigSpecReaders$GetIndexList.call(ConfigSpecReaders.java:330)
at com.compomics.coss.controller.ConfigSpecReaders$GetIndexList.call(ConfigSpecReaders.java:309)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
I tried to increase the heap size of the JVM but it doesn't seem to solve the problem.
Any suggestions?
Some env context:
I am running the search on a VM running Windows 10 with 64Gb of RAM. That is 3 times the size of your VM reported on the original paper. Also, I am running the software using the following command: java -jar COSS-2.0.jar
Hi,
I am trying to run COSS with a pretty large library (3.5M Peptides, where 1/3 are decoys). When using a .msp file with a very small set it runs just normal. However, the above large set throws an error when trying to initialize some index list. Below is the error:
Starting COSS-V2 Rescoring with Percolator is set on by default in this version SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/C:/Users/LeIssar/Desktop/Software/COSS-2.0/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/C:/Users/LeIssar/Desktop/Software/COSS-2.0/lib/logback-classic-1.1.6.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] 2022-06-19 19:56:25 INFO MainConsoleController:213 - Configuring Spectrum Reader .... Jun 19, 2022 7:57:13 PM com.compomics.coss.controller.ConfigSpecReaders dispatcher SEVERE: null java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Requested array size exceeds VM limit at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) at com.compomics.coss.controller.ConfigSpecReaders.dispatcher(ConfigSpecReaders.java:171) at com.compomics.coss.controller.ConfigSpecReaders.startConfig(ConfigSpecReaders.java:78) at com.compomics.coss.controller.MainConsoleController.configReader(MainConsoleController.java:215) at com.compomics.coss.controller.MainConsoleController.startRunning(MainConsoleController.java:108) at com.compomics.main.ProjectMain.launch(ProjectMain.java:91) at com.compomics.main.ProjectMain.access$000(ProjectMain.java:16) at com.compomics.main.ProjectMain$1.run(ProjectMain.java:71) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) Caused by: java.lang.OutOfMemoryError: Requested array size exceeds VM limit at java.base/java.util.Arrays.copyOf(Arrays.java:3537) at java.base/java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:229) at java.base/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:789) at java.base/java.lang.StringBuilder.append(StringBuilder.java:246) at com.compomics.ms2io.controller.BufferedRAF.getNextLine(BufferedRAF.java:141) at com.compomics.ms2io.controller.BufferedRAF.getNextLine(BufferedRAF.java:98) at com.compomics.ms2io.controller.Indexer.mspIndexer(Indexer.java:174) at com.compomics.ms2io.controller.Indexer.generate(Indexer.java:71) at com.compomics.coss.controller.ConfigSpecReaders$GetIndexList.call(ConfigSpecReaders.java:330) at com.compomics.coss.controller.ConfigSpecReaders$GetIndexList.call(ConfigSpecReaders.java:309) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833)
I tried to increase the heap size of the JVM but it doesn't seem to solve the problem. Any suggestions?
Some env context: I am running the search on a VM running Windows 10 with 64Gb of RAM. That is 3 times the size of your VM reported on the original paper. Also, I am running the software using the following command: java -jar COSS-2.0.jar
Your input is much appreciated. Regards, AI