Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue when running mixcr exportPlots shmTrees #1519

Closed
laumonstre opened this issue Jan 30, 2024 · 3 comments
Closed

Issue when running mixcr exportPlots shmTrees #1519

laumonstre opened this issue Jan 30, 2024 · 3 comments

Comments

@laumonstre
Copy link

Hi,

I am using MiXCR 4.6.0 and adapted this tutorial to build lineage trees from bulk BCR-seq data without UMIs (https://mixcr.com/mixcr/guides/ig-trees-reconstruction/). All the commands worked except the last one, which exports lineage trees in a graphical format.

Here is the command I ran to obtain a plot for one of the trees:
mixcr exportPlots shmTrees -m /project/6002257/claumont/tilb/scripts/metadata/metadata.tsv --ids 1 --chains IGH --verbose /project/6002257/claumont/tilb/res/test1_vdj_wtree/trees/2_Om1.shmt /project/6002257/claumont/tilb/res/test1_vdj_wtree/figs/2_Om1_shm_trees.pdf

Here is the error I got (instead of the expected lineage tree plot):

Version: 4.6.0; built=Sat Dec 09 11:48:42 PST 2023; rev=c9fafa41fe; lib=repseqio.v4.0
OS: Linux
Java: 11.0.16
Cmd args: exportPlots shmTrees -m /project/6002257/claumont/tilb/scripts/metadata/metadata.tsv --ids 1 --chains IGH --verbose /project/6002257/claumont/tilb/res/test1_vdj_wtree/trees/2_Om1.shmt /project/6002257/claumont/tilb/res/test1_vdj_wtree/figs/2_Om1_shm_trees.pdf
picocli.CommandLine$ExecutionException: Error while running command shmTrees java.lang.RuntimeException: Duplicate library: repseqio.v4.0_with_found_alleles:9606
        at com.milaboratory.mixcr.cli.Main.registerExceptionHandlers$lambda-12(SourceFile:395)
        at picocli.CommandLine.execute(CommandLine.java:2088)
        at com.milaboratory.mixcr.cli.Main.main(SourceFile:101)
Caused by: java.lang.RuntimeException: Duplicate library: repseqio.v4.0_with_found_alleles:9606
        at com.milaboratory.o.Gk.a(SourceFile:479)
        at com.milaboratory.o.Bb.<init>(SourceFile:126)
        at com.milaboratory.o.Bb.<init>(SourceFile:56)
        at com.milaboratory.o.wg.a(SourceFile:146)
        at com.milaboratory.o.wg.invoke(SourceFile:145)
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
        at com.milaboratory.mixcr.cli.CommandExportShmTreesPlots.run1(SourceFile:1145)
        at com.milaboratory.mixcr.cli.MiXCRCommandWithOutputs.run0(SourceFile:69)
        at com.milaboratory.mixcr.cli.MiXCRCommand.run(SourceFile:37)
        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)
        ... 1 more

I am not sure how to interpret this error nor what to do about it! Any guidance appreciated, thanks!

@mizraelson
Copy link
Member

Hi,
It seems like a known bug that we have already fixed in the develop version. Can you please try and let me know if it helped.

@laumonstre
Copy link
Author

Hi,

Thanks so much for your prompt reply! When using the develop version, I initially got the following error:

App version: 4.6.0-50-develop; built=Tue Jan 30 05:44:49 PST 2024; rev=b5ebb71cb7; lib=repseqio.v4.0
java.awt.AWTError: Can't connect to X11 window server using 'localhost:46.0' as the value of the DISPLAY variable.
        at java.desktop/sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
        at java.desktop/sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:102)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.desktop/sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:61)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:315)
        at java.desktop/java.awt.GraphicsEnvironment$LocalGE.createGE(GraphicsEnvironment.java:101)
        at java.desktop/java.awt.GraphicsEnvironment$LocalGE.<clinit>(GraphicsEnvironment.java:83)
        at java.desktop/java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:129)
        at java.desktop/java.awt.image.BufferedImage.createGraphics(BufferedImage.java:1181)
        at org.apache.fop.svg.PDFGraphics2D.<init>(PDFGraphics2D.java:1724)
        at org.apache.fop.svg.PDFDocumentGraphics2D.<init>(PDFDocumentGraphics2D.java:100)
        at org.apache.fop.svg.PDFTranscoder.transcode(PDFTranscoder.java:112)
        at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142)
        at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:158)
        at com.milaboratory.miplots.ExportKt.toBytes(Export.kt:165)
        at com.milaboratory.miplots.ExportKt.toPDF(Export.kt:56)
        at com.milaboratory.miplots.ExportKt.toPDF(Export.kt:54)
        at com.milaboratory.miplots.ExportKt.writePDFFigure(Export.kt:198)
        at com.milaboratory.mixcr.cli.CommandExportShmTreesPlots.run1(SourceFile:163)
        at com.milaboratory.mixcr.cli.MiXCRCommandWithOutputs.run0(SourceFile:69)
        at com.milaboratory.mixcr.cli.MiXCRCommand.run(SourceFile:37)
        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)

At the beginning of my bash run script, I added the following line:
unset DISPLAY
And, it now seems to be working! I've got trees! Let me know if you have an alternative solution though :)

Thanks again!

@mizraelson
Copy link
Member

You did everything right. The error occurred due to you system configurations, not MiXCR. You did the right thing to fix it with unset DISPLAY. MiXCR uses this systems dependencies for plots generation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants