f问题描述是内存溢出的问题(OOM)
执行脚本代码:
gatk GetPileupSummaries -I DMSO_1-recalibration.bam \
-V /af-only-gnomad_chr_3.hg38.vcf \
-L af-only-gnomad_chr_3.hg38.vcf \
-O DMSO_1_pileups.table
报错:
[February 5, 2024 at 10:43:40 AM CST] org.broadinstitute.hellbender.tools.walkers.contamination.GetPileupSummaries done. Elapsed time: 14.28 minutes.
Runtime.totalMemory()=107374182400
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.base/java.util.Arrays.copyOf(Arrays.java:3689)
at java.base/java.util.ArrayList.grow(ArrayList.java:237)
at java.base/java.util.ArrayList.addAll(ArrayList.java:709)
at htsjdk.samtools.BAMFileSpan.merge(BAMFileSpan.java:307)
at htsjdk.samtools.BAMFileReader.getFileSpan(BAMFileReader.java:933)
at htsjdk.samtools.BAMFileReader.createIndexIterator(BAMFileReader.java:945)
at htsjdk.samtools.BAMFileReader.query(BAMFileReader.java:626)
at htsjdk.samtools.SamReader$PrimitiveSamReaderToSamReaderAdapter.query(SamReader.java:550)
at htsjdk.samtools.SamReader$PrimitiveSamReaderToSamReaderAdapter.queryOverlapping(SamReader.java:417)
at org.broadinstitute.hellbender.utils.iterators.SamReaderQueryingIterator.loadNextIterator(SamReaderQueryingIterator.java:130)
at org.broadinstitute.hellbender.utils.iterators.SamReaderQueryingIterator.<init>(SamReaderQueryingIterator.java:69)
at org.broadinstitute.hellbender.engine.ReadsPathDataSource.prepareIteratorsForTraversal(ReadsPathDataSource.java:412)
at org.broadinstitute.hellbender.engine.ReadsPathDataSource.iterator(ReadsPathDataSource.java:336)
at java.base/java.lang.Iterable.spliterator(Iterable.java:101)
at org.broadinstitute.hellbender.utils.Utils.stream(Utils.java:1176)
at org.broadinstitute.hellbender.engine.GATKTool.getTransformedReadStream(GATKTool.java:384)
at org.broadinstitute.hellbender.engine.LocusWalker.getAlignmentContextIterator(LocusWalker.java:174)
at org.broadinstitute.hellbender.engine.LocusWalker.traverse(LocusWalker.java:149)
at org.broadinstitute.hellbender.engine.GATKTool.doWork(GATKTool.java:1095)
at org.broadinstitute.hellbender.cmdline.CommandLineProgram.runTool(CommandLineProgram.java:140)
at org.broadinstitute.hellbender.cmdline.CommandLineProgram.instanceMainPostParseArgs(CommandLineProgram.java:192)
at org.broadinstitute.hellbender.cmdline.CommandLineProgram.instanceMain(CommandLineProgram.java:211)
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)
增加参数:--java-options -Xmx500G 来增加该程序的内存占用,调试后发现100G都不够,加到500G!
gatk GetPileupSummaries --java-options -Xmx500G \
-I _recalibration.bam \
-V af-only-gnomad_chr_3.hg38.vcf \
-L af-only-gnomad_chr_3.hg38.vcf \
-O A_pileups.table
顺利运行
该程序也太吃内存了吧