Picard MergeVcfs vs GATK CatVariants
I've noticed the WDL scripts are using Picard's MergeVcfs immediately following a scattered GATK HaplotypeCaller to do what CatVariants was seemingly designed for. Is there any benefit to using one over the other? In the tests I've run with the same compute node, inputs and resource allocation Picard MergeVcfs performs inappreciably slower than CatVariants.
Is there a reason for this shift of just personal preference by the coder in question?
Does Picard's MergeVcfs not suffer from the same file IO issues CatVariants has when working in network shares?
Does CatVariants have some other issue I'm unaware of?
Merges multiple VCF or BCF files into one VCF file. Input files must be sorted by their contigs and, within contigs, by start position. The input files must have the same sample and contig lists. An index file is created and a sequence dictionary is required by default.
The main purpose of this tool is to speed up the gather function when using scatter-gather parallelization. This tool concatenates the scattered output VCF files. It assumes that:
All the input VCFs (or BCFs) contain the same samples in the same order.
The variants in each input file are from non-overlapping (scattered) intervals.
When the input files are already sorted based on the intervals start positions, use -assumeSorted.