milaboratory/mixcr

mixcr exportPlots giving error

LeilaKhajavi opened this issue · 8 comments

bash mixcr exportPlots diversity -Xmx90g --metadata metadata.csv --plot-type violin --primary-group event --primary-group-values NO,YES,none --hide-non-significant --p-adjust-method BenjaminiHochberg --method Wilcoxon postanalysis/PostgEvent.json postanalysis/Figures/eventDIVERSITYplots.pdf

09:37:51.048 INFO - Debug mode enabled.
09:37:51.051 INFO - allocation manager type not specified, using netty as the default type
09:37:51.052 INFO - Using DefaultAllocationManager at memory/DefaultAllocationManagerFactory.class
App version: 4.6.0; built=Sat Dec 09 20:48:42 CET 2023; rev=c9fafa41fe; lib=repseqio.v4.0
java.lang.ExceptionInInitializerError
at org.apache.arrow.memory.UnsafeAllocationManager.(UnsafeAllocationManager.java:27)
at org.apache.arrow.memory.DefaultAllocationManagerFactory.(DefaultAllocationManagerFactory.java:26)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:421)
at java.base/java.lang.Class.forName(Class.java:412)
at org.apache.arrow.memory.DefaultAllocationManagerOption.getFactory(DefaultAllocationManagerOption.java:108)
at org.apache.arrow.memory.DefaultAllocationManagerOption.getDefaultAllocationManagerFactory(DefaultAllocationManagerOption.java:98)
at org.apache.arrow.memory.BaseAllocator$Config.getAllocationManagerFactory(BaseAllocator.java:733)
at org.apache.arrow.memory.ImmutableConfig.access$801(ImmutableConfig.java:24)
at org.apache.arrow.memory.ImmutableConfig$InitShim.getAllocationManagerFactory(ImmutableConfig.java:83)
at org.apache.arrow.memory.ImmutableConfig.(ImmutableConfig.java:47)
at org.apache.arrow.memory.ImmutableConfig.(ImmutableConfig.java:24)
at org.apache.arrow.memory.ImmutableConfig$Builder.build(ImmutableConfig.java:485)
at org.apache.arrow.memory.BaseAllocator.(BaseAllocator.java:61)
at org.jetbrains.kotlinx.dataframe.io.Allocator$ROOT$2.invoke(arrow.kt:74)
at org.jetbrains.kotlinx.dataframe.io.Allocator$ROOT$2.invoke(arrow.kt:73)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at org.jetbrains.kotlinx.dataframe.io.Allocator.getROOT(arrow.kt:73)
at org.jetbrains.kotlinx.dataframe.io.ArrowKt.readArrowFeather$default(arrow.kt:98)
at org.jetbrains.kotlinx.dataframe.io.ArrowKt.readArrowFeather(arrow.kt:245)
at org.jetbrains.kotlinx.dataframe.io.ArrowFeather.readDataFrame(arrow.kt:57)
at org.jetbrains.kotlinx.dataframe.io.GuessKt.read(guess.kt:117)
at org.jetbrains.kotlinx.dataframe.io.GuessKt.read$default(guess.kt:108)
at org.jetbrains.kotlinx.dataframe.io.GuessKt.read(guess.kt:131)
at org.jetbrains.kotlinx.dataframe.io.GuessKt.read(guess.kt:137)
at org.jetbrains.kotlinx.dataframe.io.GuessKt.read(guess.kt:146)
at org.jetbrains.kotlinx.dataframe.io.GuessKt.read$default(guess.kt:145)
at com.milaboratory.o.vx.a(SourceFile:48)
at com.milaboratory.o.vx.a(SourceFile:39)
at com.milaboratory.mixcr.cli.postanalysis.CommandPaExportPlots$metadataDf$2.invoke(SourceFile:95)
at com.milaboratory.mixcr.cli.postanalysis.CommandPaExportPlots$metadataDf$2.invoke(SourceFile:93)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at com.milaboratory.mixcr.cli.postanalysis.CommandPaExportPlots.getMetadataDf(SourceFile:93)
at com.milaboratory.mixcr.cli.postanalysis.CommandPaExportPlots.validate(SourceFile:103)
at com.milaboratory.mixcr.cli.postanalysis.CommandPaExportPlotsBasicStatistics.validate(SourceFile:172)
at com.milaboratory.mixcr.cli.MiXCRCommand.run(SourceFile:35)
at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
at picocli.CommandLine.access$1300(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
at com.milaboratory.mixcr.cli.Main.registerLogger$lambda-27(SourceFile:514)
at picocli.CommandLine.execute(CommandLine.java:2078)
at com.milaboratory.mixcr.cli.Main.main(SourceFile:101)
Caused by: java.lang.RuntimeException: Failed to initialize MemoryUtil.
at org.apache.arrow.memory.util.MemoryUtil.(MemoryUtil.java:136)

... 46 more
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field long java.nio.Buffer.address accessible: module java.base does not "opens java.nio" to unnamed module @6a225c39
at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315)
at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:183)
at java.base/java.lang.reflect.Field.setAccessible(Field.java:177)
at org.apache.arrow.memory.util.MemoryUtil.(MemoryUtil.java:84)
... 46 more

java --version
openjdk 21.0.2-internal 2024-01-16
OpenJDK Runtime Environment (build 21.0.2-internal-adhoc.conda.src)
OpenJDK 64-Bit Server VM (build 21.0.2-internal-adhoc.conda.src, mixed mode, sharing)

postanalysis overlap to generate json file:
bash mixcr postanalysis overlap --default-downsampling none --default-weight-function read --only-productive --drop-outliers --metadata metadata.csv --group event *.clna postanalysis/PostgEvent.json

I have the latest java version (using Ubuntu 22.04) the postanalysis overlap command worked just great but i cannot generate any of the plots using export plots. Any suggestions? (to note, exportQc works just fine)

Hi, am trying to reproduce the error but it seems to work on my side. Can you share the metadata file you use?

I will close this issue for now. Feel free to reopen if the issue is not resolved.

I have same Java error.

java 18.0.1.1 2022-04-22

mixcr exportPlots vUsage --metadata metadata.csv postanalysis_IGH.json postanalysis_IGH_vUsage.pdf

16:41:22.532 INFO - Debug mode enabled. 16:41:22.537 INFO - allocation manager type not specified, using netty as the default type 16:41:22.538 INFO - Using DefaultAllocationManager at memory/DefaultAllocationManagerFactory.class App version: 4.6.0; built=Sat Dec 09 14:48:42 EST 2023; rev=c9fafa41fe; lib=repseqio.v4.0 java.lang.ExceptionInInitializerError at org.apache.arrow.memory.UnsafeAllocationManager.<clinit>(UnsafeAllocationManager.java:27) at org.apache.arrow.memory.DefaultAllocationManagerFactory.<clinit>(DefaultAllocationManagerFactory.java:26) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:383) at java.base/java.lang.Class.forName(Class.java:376) at org.apache.arrow.memory.DefaultAllocationManagerOption.getFactory(DefaultAllocationManagerOption.java:108) at org.apache.arrow.memory.DefaultAllocationManagerOption.getDefaultAllocationManagerFactory(DefaultAllocationManagerOption.java:98) at org.apache.arrow.memory.BaseAllocator$Config.getAllocationManagerFactory(BaseAllocator.java:733) at org.apache.arrow.memory.ImmutableConfig.access$801(ImmutableConfig.java:24) at org.apache.arrow.memory.ImmutableConfig$InitShim.getAllocationManagerFactory(ImmutableConfig.java:83) at org.apache.arrow.memory.ImmutableConfig.<init>(ImmutableConfig.java:47) at org.apache.arrow.memory.ImmutableConfig.<init>(ImmutableConfig.java:24) at org.apache.arrow.memory.ImmutableConfig$Builder.build(ImmutableConfig.java:485) at org.apache.arrow.memory.BaseAllocator.<clinit>(BaseAllocator.java:61) at org.jetbrains.kotlinx.dataframe.io.Allocator$ROOT$2.invoke(arrow.kt:74) at org.jetbrains.kotlinx.dataframe.io.Allocator$ROOT$2.invoke(arrow.kt:73) at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) at org.jetbrains.kotlinx.dataframe.io.Allocator.getROOT(arrow.kt:73) at org.jetbrains.kotlinx.dataframe.io.ArrowKt.readArrowFeather$default(arrow.kt:98) at org.jetbrains.kotlinx.dataframe.io.ArrowKt.readArrowFeather(arrow.kt:245) at org.jetbrains.kotlinx.dataframe.io.ArrowFeather.readDataFrame(arrow.kt:57) at org.jetbrains.kotlinx.dataframe.io.GuessKt.read(guess.kt:117) at org.jetbrains.kotlinx.dataframe.io.GuessKt.read$default(guess.kt:108) at org.jetbrains.kotlinx.dataframe.io.GuessKt.read(guess.kt:131) at org.jetbrains.kotlinx.dataframe.io.GuessKt.read(guess.kt:137) at org.jetbrains.kotlinx.dataframe.io.GuessKt.read(guess.kt:146) at org.jetbrains.kotlinx.dataframe.io.GuessKt.read$default(guess.kt:145) at com.milaboratory.o.vx.a(SourceFile:48) at com.milaboratory.o.vx.a(SourceFile:39) at com.milaboratory.mixcr.cli.postanalysis.CommandPaExportPlots$metadataDf$2.invoke(SourceFile:95) at com.milaboratory.mixcr.cli.postanalysis.CommandPaExportPlots$metadataDf$2.invoke(SourceFile:93) at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) at com.milaboratory.mixcr.cli.postanalysis.CommandPaExportPlots.getMetadataDf(SourceFile:93) at com.milaboratory.mixcr.cli.postanalysis.CommandPaExportPlots.validate(SourceFile:103) at com.milaboratory.mixcr.cli.MiXCRCommand.run(SourceFile:35) at picocli.CommandLine.executeUserObject(CommandLine.java:1939) at picocli.CommandLine.access$1300(CommandLine.java:145) at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358) at picocli.CommandLine$RunLast.handle(CommandLine.java:2352) at picocli.CommandLine$RunLast.handle(CommandLine.java:2314) at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179) at picocli.CommandLine$RunLast.execute(CommandLine.java:2316) at com.milaboratory.mixcr.cli.Main.registerLogger$lambda-27(SourceFile:514) at picocli.CommandLine.execute(CommandLine.java:2078) at com.milaboratory.mixcr.cli.Main.main(SourceFile:101) Caused by: java.lang.RuntimeException: Failed to initialize MemoryUtil. at org.apache.arrow.memory.util.MemoryUtil.<clinit>(MemoryUtil.java:136) ... 45 more Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field long java.nio.Buffer.address accessible: module java.base does not "opens java.nio" to unnamed module @774bd0a2 at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:180) at java.base/java.lang.reflect.Field.setAccessible(Field.java:174) at org.apache.arrow.memory.util.MemoryUtil.<clinit>(MemoryUtil.java:84) ... 45 more (b

Is there any solution to this?

Hi, can you please share the metadata file you are using? You can send to support@milaboratories.com

I have sent an email with the metadata file

I managed to find a solution for now..i was using csv..it was not working..i changed the metadata file to tsv file..it started working.

Yes, it appeares to be a bug with the format. Currently only tsv metadata format works with exportPlots. We will fix it in the upcoming version.