报错信息

04:31:11.252 INFO ProgressMeter - CM046393.1:1279614 15.2 1191000 78344.0
04:31:21.887 INFO ProgressMeter - CM046393.1:1294894 15.4 1206000 78416.4
04:31:26.272 INFO GenotypeGVCFs - Shutting down engine
[November 13, 2025 at 4:31:26 AM UTC] org.broadinstitute.hellbender.tools.walkers.GenotypeGVCFs done. Elapsed time: 15.46 minutes.
Runtime.totalMemory()=2046820352
htsjdk.samtools.SAMFormatException: Did not inflate expected amount
at htsjdk.samtools.util.BlockGunzipper.unzipBlock(BlockGunzipper.java:147)
at htsjdk.samtools.util.BlockGunzipper.unzipBlock(BlockGunzipper.java:96)
at htsjdk.samtools.util.BlockCompressedInputStream.inflateBlock(BlockCompressedInputStream.java:550)
at htsjdk.samtools.util.BlockCompressedInputStream.processNextBlock(BlockCompressedInputStream.java:532)
at htsjdk.samtools.util.BlockCompressedInputStream.nextBlock(BlockCompressedInputStream.java:468)
at htsjdk.samtools.util.BlockCompressedInputStream.readBlock(BlockCompressedInputStream.java:458)
at htsjdk.samtools.util.BlockCompressedInputStream.available(BlockCompressedInputStream.java:196)
at htsjdk.samtools.util.BlockCompressedInputStream.read(BlockCompressedInputStream.java:241)
at htsjdk.tribble.readers.TabixReader.readLine(TabixReader.java:215)
相关教程
https://www.omicsclass.com/question/6440
https://gatk.broadinstitute.org/hc/en-us/community/posts/4409429876123--Did-not-inflate-expected-amount-Error
具体操作:
01 检查合并后的文件是否被损坏
zcat your_sample.g.vcf.gz > /dev/null
# 报错:
gzip: invalid compressed data--format violated # 确认了是文件的问题- 根据相关教程,提出以下两个可能性原因:
- (1)由于 Intel 和 JDK 的解压缩/压缩程序不兼容造成的
- (2)某一样本文件的染色体编号出错导致的
02 排查是否由于 Intel 和 JDK 的解压缩/压缩程序不兼容造成的
- 有帖子说,可能是 Intel 和 JDK 的解压缩/压缩程序不兼容造成的,这种错误是会随机发生的。因此,建议在命令中添加 --use-jdk-deflater 和 --use-jdk-inflater 选项,强制软件使用 jdk-deflater/inflater 而不是 Intel 的 deflater/inflater(GATK4 中的默认值)。
- 添加后, 重新运行命令,成功!需要注意的是,添加参数后的文件,由于压缩格式不一致,会导致文件大小和原来有差距(我的原本为60G,但是添加参数后为46G;但是检查后变异位点的数量是相同的)。
- 此外,不添加参数,直接重新运行命令,发现也可以得到完整的gz文件。说明该错误就是随机发生的,下次可以尝试重新运行命令。
03 检查染色体编号是否有问题,排查是否是样本文件出错的原因
# 检查GVCF是否包含目标染色体头信息
zcat input.g.vcf.gz | grep "^#${target_chr}"
# 检查TBI索引是否记录染色体
tabix -H input.g.vcf.gz | grep "^#${target_chr}"
# 检查过后发现没问题