Bug Bulletin: we have identified a bug that affects indexing when producing gzipped VCFs. This will be fixed in the upcoming 3.2 release; in the meantime you need to reindex gzipped VCFs using Tabix.

GATK - HaplotypeCaller is so slow, is this normal??

rcholicrcholic DenverPosts: 63Member

I have 15 exome-seq samples, and have been using BWA-PiCard-GATK pipeline to do the variant calling. I did not realize GATK is so slow until I have to analyze this large number of samples. In this HaplotypeCaller step, each sample seems to take at least 2 days (48+ hours). Is this normal is there's something I did wrong? Below is my command, is there anything wrong or GATK-HaplotypeCaller is known this slooooow?

java -Xmx10g -Djava.awt.headless=true -jar /Library/Java/Extensions/GenomeAnalysisTK.jar \ -T HaplotypeCaller \ -minPruning 3 \ -dcov 10 \ -R ./GATK_ref/hg19.fasta \ -I ./GATK/BQSR/sample1_realign.recal.compressed.bam \ -o ./GATK/VQSR/sample1_realign.raw.snps_indels.vcf

Is there anything I did wrong with this command? or anything I can change to make it run faster? I am using GATK 2.5 by the way. thanks!


Best Answer


  • pdexheimerpdexheimer Posts: 299Member, GSA Collaborator ✭✭✭

    You probably should review the Best Practices, but here are my initial thoughts:

    1. dcov is way too low to be useful
    2. Barring some crazy experimental design, you want to do joint calling
    3. You want to restrict analysis to your exome regions.

    Those points, especially 2 and 3, will dramatically speed things up. If it's still too slow, look into Queue. My largest project to date was ~400 samples, which I jointly called with HaplotypeCaller in about four days

  • rcholicrcholic DenverPosts: 63Member

    Thanks for the answer. What's your recommendation for dcov? and how to do joint calling and restrict analysis to exome regions? If you have some quick answers for the parameter settings, that'll be great. If no, I'll spend some time reading the documentation. thanks again

  • rcholicrcholic DenverPosts: 63Member

    @Geraldine_VdAuwera said: rcholic, reading the documentation is always a good idea, and the first thing you should start with :)

    But here's a couple of tips to save you some time: for restricting an analysis to specific regions (as in the exome case), look for the -L engine argument here. It is super useful. For joint calling, just pass all your bams at the same time; the easiest way is to make a text file containing the list of bams (one filepath per line) and pass that list file with the -I argument.

    Thanks Geraldine. I've read the documentation, especially on the "-L/--intervals" part. I still have questions what to pass to the "-L". How do I tell it to scan the exome region only? Can I use the intervals files from my run of "GATK - RealignerTargetCreator"? or where can I get a human-exome file (bed format)?

  • rcholicrcholic DenverPosts: 63Member

    I've downloaded the all captured human exome from UCSC website (hg19-based), and feed it to the "-L" parameter, will see how the run goes. Thanks a lot for the help!

Sign In or Register to comment.