Question: IncompatibleClassChangeError when running gatk BaseRecalibrator
gravatar for marongiu.luigi
2.4 years ago by
Germany, Mannheim, UMM
marongiu.luigi520 wrote:

Dear all,

I am using GATK's BaseRecalibrator to recalibrate the base quality of an alignment.

The BAM file's duplicates were removed with SAMBAMBA:

sambamba markdup -r --overflow-list-size 1000000 --hash-table-size 1000000 <input>.bam <output>.bam

I am using the VCF file clinvar.vcf.gz and the reference human Homo_sapiens.GRCh38.dna.toplevel.fa.gz, which I have called grch38.fa for short; both files call the chromosome with numbers only.

I created the index fasta and dictionary of the reference sequence:

samtools faidx grch38.fa
java -jar ~/src/picard/picard.jar CreateSequenceDictionary R=grch38.fa O=grch38.dict

I then ran GATK with this:

gatk BaseRecalibrator -I <file>.bam -R ~/grch38.fa --known-sites ~/grch38.vcf.gz -O <file>.tab

but I got:

14:02:01.642 INFO  BaseRecalibrator - Initializing engine
14:02:01.935 INFO  FeatureManager - Using codec VCFCodec to read file file:///home/gigiux/refSeq/human/grch38/old/grch38.vcf.gz
14:02:01.969 WARN  IndexUtils - Feature file "/home/gigiux/refSeq/human/grch38/old/grch38.vcf.gz" appears to contain no sequence dictionary. Attempting to retrieve a sequence dictionary from the associated index file
14:02:02.035 INFO  BaseRecalibrator - Done initializing engine
14:02:02.068 INFO  BaseRecalibrationEngine - The covariates being used here: 
14:02:02.069 INFO  BaseRecalibrationEngine -    ReadGroupCovariate
14:02:02.069 INFO  BaseRecalibrationEngine -    QualityScoreCovariate
14:02:02.069 INFO  BaseRecalibrationEngine -    ContextCovariate
14:02:02.069 INFO  BaseRecalibrationEngine -    CycleCovariate
14:02:02.084 INFO  ProgressMeter - Starting traversal
14:02:02.084 INFO  ProgressMeter -        Current Locus  Elapsed Minutes       Reads Processed     Reads/Minute
14:02:02.087 INFO  BaseRecalibrator - Shutting down engine
[27 September 2018 at 14:02:02 CEST] done. Elapsed time: 0.01 minutes.
Exception in thread "main" java.lang.IncompatibleClassChangeError: Inconsistent constant pool data in classfile for class org/broadinstitute/hellbender/transformers/ReadTransformer. Method lambda$identity$d67512bf$1(Lorg/broadinstitute/hellbender/utils/read/GATKRead;)Lorg/broadinstitute/hellbender/utils/read/GATKRead; at index 65 is CONSTANT_MethodRef and should be CONSTANT_InterfaceMethodRef

I think the main message is: Exception in thread "main" java.lang.IncompatibleClassChangeError at index 65 is CONSTANT_MethodRef and should be CONSTANT_InterfaceMethodRef.

How can I sort this out? How could that variable be changed? (I haven't touch anything within GATK...)

Thank you

baserecalibrator java gatk • 2.9k views
ADD COMMENTlink modified 2.4 years ago • written 2.4 years ago by marongiu.luigi520

Hello marongiu.luigi ,

if your overall basequality is fine, stop wasting your time by doing BQSR. The impact of this will be negligible.

fin swimmer

ADD REPLYlink written 2.4 years ago by finswimmer14k

and how would I know that? Isn't the BQSR supposed to be superior to the first alignment? And even if in this particular case the quality is fine, what about possible future files? This step should have been fast and the downstream comparison of before/after should have shown little gain in doing BQSR. Like this I am simply stuck...

ADD REPLYlink written 2.4 years ago by marongiu.luigi520

it's a bug with the way gatk was compiled. You should report this to the Broad.

ADD REPLYlink written 2.4 years ago by Pierre Lindenbaum134k

There was a similar issue related to HaplotypeCaller in GATK and that was apparently solved by a change in java version. You might want to have a look at that.

ADD REPLYlink written 2.4 years ago by emelkokrek0

Thanks, I've seen now that post and looks it was indeed the Java version. I changed the default Java with:

$ sudo update-alternatives --config java
[sudo] password for <user>:

There are 2 choices for the alternative java (providing /usr/bin/java).

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

I selected option 2 and then run GATK; the output was:

Press <enter> to keep the current choice[*], or type selection number: 
11:37:38.556 INFO  ProgressMeter - Traversal complete. Processed 57868745 total reads in 18.4 minutes.
11:37:38.722 INFO  BaseRecalibrator - Calculating quantized quality scores...
11:37:38.737 INFO  BaseRecalibrator - Writing recalibration report...
11:37:39.516 INFO  BaseRecalibrator - ...done!
11:37:39.516 INFO  BaseRecalibrator - Shutting down engine
[01 October 2018 11:37:39 CEST] done. Elapsed time: 18.89 minutes.
Tool returned:

Looks like it is solved.

ADD REPLYlink modified 2.4 years ago • written 2.4 years ago by marongiu.luigi520
Please log in to add an answer.


Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 1377 users visited in the last hour