I am currently stuck because for some reference genomes it is difficult to find the following in a systematic computational way
a BED of gaps where I don't want any calling
What is the best way to find intervals for parallelization of joint variant calling?
In general I can think of 3 ways:
With improvements in sequencing quality it is becoming more difficult to find areas that are obviously safe to split the analysis on.
This leads to the risk of not much parallelization (i.e. max per chromosome) or splitting right in the middle of a variant.
What is the best way to parallelize joint variant calling?
(e.g. GATK GenomicDBImport and GenotypeGVCFs on many GVCFs)?
Without losing variants or getting double variants?
I wrote a tool named: FaidxSplitter http://lindenb.github.io/jvarkit/FaidxSplitter.html , I'm not sure if it fulfill your needs.
it takes as input:
the output is a BED file with all the regions to be called.
I then call the variants for each bed and I concatenate the vcf with bcftools, removing the duplicates.
I am currently stuck because for some reference genomes it is difficult to find the following in a systematic computational way
a BED of gaps where I don't want any calling
as you said, you could use ScatterIntervalsByNs, use the regions with sharing 0 coverage or sharing a too high coverage. For human, there are some blacklisted regions defined by ENCODE.
I prefer to use the fasta for this. BAM coverage analysis is not fully deterministic, it changes with the set of BAM files under analysis and is computational expensive if looking at many samples/bam files. Some non human model organism now have really high quality reference genomes without many (long) poly-N regions.
Log in to answer this question.