gatk报错 Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
解决方案1
001、问题 gatk标记重复报错
a、使用程序如下:
#!/bin/bash #SBATCH -J ERR2309122 #SBATCH -p Cnode #SBATCH -o %j.ERR2309122.result #SBATCH -e %j.ERR2309122.error #SBATCH -t 10:00:00 #SBATCH -N 1 #SBATCH -n 4 ## 调用了4个核心,没有指定内存 #SBATCH --cpus-per-task=1 ## 此处也没有指定初始java heap space 和 最大 java heap space gatk MarkDuplicates -I ERR2309122.sorted.bam -O ERR2309122.sorted.markdup.bam -M ERR2309122.sorted.markdup_metrics.txt && echo "ERR2309122 markdup done" || echo "ERR2309122 markdup fail"
b、报错如下:
To get help, see http://broadinstitute.github.io/picard/index.html#GettingHelp Exception in thread "main" java.lang.OutOfMemoryError: Java heap space ## java heap space java堆内存报错 at java.base/java.lang.reflect.Array.newArray(Native Method) at java.base/java.lang.reflect.Array.newInstance(Array.java:78) at java.base/java.util.Arrays.parallelSort(Arrays.java:1182) at htsjdk.samtools.util.SortingCollection.spillToDisk(SortingCollection.java:247) at htsjdk.samtools.util.SortingCollection.add(SortingCollection.java:182) at picard.sam.markduplicates.MarkDuplicates.buildSortedReadEndLists(MarkDuplicates.java:553) at picard.sam.markduplicates.MarkDuplicates.doWork(MarkDuplicates.java:257) at picard.cmdline.CommandLineProgram.instanceMain(CommandLineProgram.java:301) at org.broadinstitute.hellbender.cmdline.PicardCommandLineProgramExecutor.instanceMain(PicardCommandLineProgramExecutor.java:37) at org.broadinstitute.hellbender.Main.runCommandLineProgram(Main.java:160) at org.broadinstitute.hellbender.Main.mainEntry(Main.java:203) at org.broadinstitute.hellbender.Main.main(Main.java:289)
002、报错原因
推测可能是gatk的调用java的JVM的java heap space堆内存不足导致。
003、解决方法,增加总的内存调用和堆内存测试
a、
修改后参数如下:
#!/bin/bash #SBATCH -J ERR2309122 #SBATCH -p Cnode #SBATCH -o %j.ERR2309122.result #SBATCH -e %j.ERR2309122.error #SBATCH -t 10:00:00 #SBATCH --mem 100G ## 此处设置了申请的最大内存 #SBATCH -N 1 #SBATCH -n 4 #SBATCH --cpus-per-task=1 ## 此处设置了java heap space的最大内存 gatk --java-options '-Xmx100G' MarkDuplicates -I ERR2309122.sorted.bam -O ERR2309122.sorted.markdup.bam -M ERR2309122.sorted.markdup_metrics.txt && echo "ERR2309122 markdup done" || echo "ERR2309122 markdup fail"
b、测试结果
正常生成文件,原来的报错消失。
解决方案2:
对g.vcf文件进行压缩
step1:bgzip xx.g.vcf
step2: tabix xx.g.vcf.gz
.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2023-01-24 物理机 debian linux 安装过程
2023-01-24 物理机 kali linux 安装全过程
2021-01-24 R语言绘制地图
2021-01-24 R语言中如何获取城市的经纬度