TheJacksonLaboratory / LIRICAL

LIkelihood Ratio Interpretation of Clinical AbnormaLities
https://thejacksonlaboratory.github.io/LIRICAL/stable
Other
22 stars 11 forks source link

Problems with automated run of 8+ VCFs + HPOs #576

Closed evatosco closed 1 year ago

evatosco commented 2 years ago

Hello there! Thanks to the group for the development of this tool!

I am currently trying to use LIRICAL. I am processing VCFs and HPOs using .yml files. This way is easier for me because I have already their YAMLs from the runs on Exomiser, and it required very few automated modifications to adapt. I have 20 simple VCFs and their HPOs to run on LIRICAL. I created a very simple script with a loop to run all individuals at once. However, an error shows up after processing exactly 8 VCFs:

java.lang.ArrayIndexOutOfBoundsException: Index 270 out of bounds for length 270
    at com.google.common.collect.RegularImmutableList.get(RegularImmutableList.java:75)
    at org.monarchinitiative.lirical.likelihoodratio.TestResult.getObservedPhenotypeRatio(TestResult.java:176)
    at org.monarchinitiative.lirical.svg.Sparkline2Svg.<init>(Sparkline2Svg.java:85)
    at org.monarchinitiative.lirical.output.SparklinePacket.sparklineFactory(SparklinePacket.java:41)
    at org.monarchinitiative.lirical.output.HtmlTemplate.<init>(HtmlTemplate.java:84)
    at org.monarchinitiative.lirical.output.LiricalTemplate$Builder.buildGenoPhenoHtmlTemplate(LiricalTemplate.java:174)
    at org.monarchinitiative.lirical.cmd.YamlCommand.writeOutput(YamlCommand.java:94)
    at org.monarchinitiative.lirical.cmd.YamlCommand.runVcf(YamlCommand.java:140)
    at org.monarchinitiative.lirical.cmd.YamlCommand.call(YamlCommand.java:176)
    at org.monarchinitiative.lirical.cmd.YamlCommand.call(YamlCommand.java:33)
    at picocli.CommandLine.executeUserObject(CommandLine.java:1953)
    at picocli.CommandLine.access$1300(CommandLine.java:145)
    at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2352)
    at picocli.CommandLine$RunLast.handle(CommandLine.java:2346)
    at picocli.CommandLine$RunLast.handle(CommandLine.java:2311)
    at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
    at picocli.CommandLine.execute(CommandLine.java:2078)
    at org.monarchinitiative.lirical.Lirical.main(Lirical.java:39)

The exact same error shows up when I tried using openjdk version "1.8.0_152-release" and openjdk version "11.0.15" 2022-04-19. I do not know how to approach this error, so I am leaving it here so it is useful somehow and it may help to solve it if it is a bug. I will try to run these samples in shorter loops then.

Thanks in advance!

Basic features of my laptop: Ubuntu 20.04.4 LTS, 64 bits Intel® Core™ i7-4510U CPU @ 2.00GHz × 4 16 GB RAM

evatosco commented 2 years ago

Update: When I had run those 8 individuals several times, the error kept showing up. I have run the same individual again in a new loop along with other different VCFs, and no error was shown. That is so strange. I would say it is because of the VCF, but it went smoothly when I tried to run it again.

I know this stuff happens sometimes in bioinformatics. Any help will be appreciated though, I am curious for a hypothesis. To the developers: Please feel free to close the issue if you consider it.

Thanks again!!

ielis commented 1 year ago

Hello @evatosco thank you for reporting the bug and sorry for a delayed response. We've been working on a new LIRICAL release that includes many bugfixes. I released a new version today, and a distribution ZIP is available for download from Releases.

It's very likely that the bug has been fixed in the new release. I'd be super happy if you could confirm the bug is gone. However, the code is still bleeding edge, and we have not yet update the online documentation. I'll send you detailed instructions regarding the new LIRICAL setup and how to run the analysis, if you'd be willing to run the v2.0.0-RC1 code. Alternatively, we can look at this after the documentation is updated. Please let me know if you'd be willing to run the bleeding edge version.

Thank you and all the best, Daniel