Monday, July 8, 2019

GATK - Exception in thread "main" java.lang.IncompatibleClassChangeError

$ gatk VariantsToTable -V SNP.vcf -F CHROM -F POS -F QUAL -F DP4 -F MQ -O test

Using GATK jar /home/sw/gatk-4.1.1.0/gatk-package-4.1.1.0-local.jar
Running:
    java -Dsamjdk.use_async_io_read_samtools=false -Dsamjdk.use_async_io_write_samtools=true -Dsamjdk.use_async_io_write_tribble=false -Dsamjdk.compression_level=2 -jar /home/prakki/sw/gatk-4.1.1.0/gatk-package-4.1.1.0-local.jar VariantsToTable -V 14DM017529_1032_HQ_SNP.vcf -F CHROM -F POS -F QUAL -F DP4 -F MQ -O test
Runtime.totalMemory()=2155872256
Exception in thread "main" java.lang.IncompatibleClassChangeError: Inconsistent constant pool data in classfile for class org/broadinstitute/hellbender/transformers/VariantTransformer. Method lambda$identity$76d6cab0$1(Lhtsjdk/variant/variantcontext/VariantContext;)Lhtsjdk/variant/variantcontext/VariantContext; at index 65 is CONSTANT_MethodRef and should be CONSTANT_InterfaceMethodRef
at org.broadinstitute.hellbender.transformers.VariantTransformer.identity(VariantTransformer.java:32)
at org.broadinstitute.hellbender.engine.VariantWalkerBase.makePreVariantFilterTransformer(VariantWalkerBase.java:131)
at org.broadinstitute.hellbender.engine.VariantWalkerBase.getTransformedVariantStream(VariantWalkerBase.java:155)
at org.broadinstitute.hellbender.engine.VariantWalker.traverse(VariantWalker.java:98)
at org.broadinstitute.hellbender.engine.GATKTool.doWork(GATKTool.java:984)
at org.broadinstitute.hellbender.cmdline.CommandLineProgram.runTool(CommandLineProgram.java:138)
at org.broadinstitute.hellbender.cmdline.CommandLineProgram.instanceMainPostParseArgs(CommandLineProgram.java:191)
at org.broadinstitute.hellbender.cmdline.CommandLineProgram.instanceMain(CommandLineProgram.java:210)
at org.broadinstitute.hellbender.Main.runCommandLineProgram(Main.java:162)
at org.broadinstitute.hellbender.Main.mainEntry(Main.java:205)
at org.broadinstitute.hellbender.Main.main(Main.java:291)

Check for alternative versions

$  sudo update-alternatives --config java
[sudo] password for prakki:
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1101      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1101      manual mode
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode

Press <enter> to keep the current choice[*], or type selection number: 2

Now, java version should have look something like this:

$ java -version 
openjdk version "1.8.0_212"
.....


$ gatk VariantsToTable -V SNP.vcf -F CHROM -F POS -F QUAL -F DP4 -F MQ -O test