combine — live demo
vcfclick combine reimplements GATK3 CombineVariants,
the multi-callset merge GATK4 removed. Edit the two call sets below; the merge runs in your
browser and is checked against real GATK 3.8 output on the same inputs.
GATK3 (removed in GATK4)
java -jar GenomeAnalysisTK.jar -T CombineVariants -R ref.fasta \
-V:first first.vcf.gz -V:second second.vcf.gz -o out.vcf \
-genotypeMergeOptions PRIORITIZE -priority first,secondvcfclick (no Java, no reference)
vcfclick combine first.vcf second.vcf -o out.vcf \
--name first --name secondInputs — two call sets (priority: first, then second)
first.vcf (samples S1, S2 — higher priority)
second.vcf (samples S2, S3 — S2 shared)
vcfclick combine
✓ matches GATK 3.8| pos | set= | S1 | S2 | S3 |
|---|---|---|---|---|
| chr1:101 | first | 0/1 | 0/1 | ./. |
| chr1:202 | Intersection | 1/1 | 0/1 | 0/1 |
| chr1:303 | Intersection | 0/1 | 1/1 | 0/0 |
| chr1:404 | second | ./. | 0/0 | 1/1 |
FORMAT: GT · runs entirely in your browser
GATK 3.8 CombineVariants
| pos | set= | S1 | S2 | S3 |
|---|---|---|---|---|
| chr1:101 | first | 0/1 | 0/1 | ./. |
| chr1:202 | Intersection | 1/1 | 0/1 | 0/1 |
| chr1:303 | Intersection | 0/1 | 1/1 | 0/0 |
| chr1:404 | second | ./. | 0/0 | 1/1 |
Frozen output of real GATK 3.8-1-0 on the default inputs. Edit the inputs above and vcfclick re-runs live; this reference stays fixed.
What you're looking at
The two inputs are call sets that share sample S2 — the case bcftools merge can't handle. At
chr1:202, S2 is 0/1 in first but 1/1 in second. PRIORITIZE keeps the
higher-priority call — 0/1 — exactly as GATK3 does.
Each record is annotated with set=: which inputs it came from, or Intersection when all of them. A sample with no record at a site
is ./., never a silent 0/0. Set --min-callsets 2 to keep only the consensus sites.
This equivalence is pinned in CI by a test against the same frozen GATK 3.8 output. See the combine docs and the trio demo →.