GATK的HaplotypeCaller是經(jīng)常用到的變異檢測模塊,但在大基因組或高深度測序模式下運(yùn)行速度比較慢样悟,雖然有--native-pair-hmm-threads多線程參數(shù),但對效率的提升并不明顯穷躁。
GATK同時也提供了基于Spark的數(shù)據(jù)處理引擎忍抽,工具名字是HaplotypeCallerSpark ,是個beta版本的工具歼秽,在實(shí)際生產(chǎn)環(huán)境中使用需謹(jǐn)慎应役。
使用該工具的時候不需要單獨(dú)安裝Spark和了解Spark的語法,只需要正確安裝高版本的gatk燥筷。不管是個人服務(wù)器或者集群環(huán)境都可以直接使用Spark LOCAL 模式去運(yùn)行箩祥,通過 --spark-master local[20] 指定線程數(shù)量,--spark-master local[*] 表示調(diào)用全部線程肆氓。軟件對這部分的說明如下:
實(shí)際測試使用的是gatk-4.2.6.1 袍祖,java 1.8,比普通模式快幾倍谢揪。命令行如下:
gatk --java-options "-Xmx50g" HaplotypeCallerSpark -R chr.fa -I test.rmdup.bam -ERC GVCF -L 1 --min-base-quality-score 10 --do-not-run-physical-phasing true -O test.HaplotypeCaller.1.g.vcf.gz \
-- \
--spark-master local[20]
如果遇到j(luò)ava的報錯 java.lang.StackOverflowError 蕉陋,這就是你的基因組問題捐凭,要把基因組上的contig碎片去掉,就能正常運(yùn)行了凳鬓。
GATK官網(wǎng)關(guān)于Spark的說明:https://gatk.broadinstitute.org/hc/en-us/articles/360035890591-Spark