vcf-isec
Quick Start
- Command:
vcf-isec [OPTIONS] file1.vcf file2.vcf ... - Local executable:
/home/vimalinx/miniforge3/envs/bio/bin/vcf-isec - Full reference: See
references/help.md
When To Use This Tool
- Compute intersections, unions, complements, or Venn-style set outputs across multiple indexed VCFs.
- Compare concordance or exclusivity between callsets.
- Work on either VCFs or other tab-delimited region files when positions are indexable.
- Use it when set logic matters more than multi-sample merging.
Common Patterns
# 1) Keep positions present in at least two files
vcf-isec \
-n +2 \
a.vcf.gz b.vcf.gz c.vcf.gz \
> shared.vcf
# 2) Output positions unique to the first file
vcf-isec \
-c \
a.vcf.gz b.vcf.gz c.vcf.gz \
> a_only.vcf
# 3) Create Venn-style output files
vcf-isec \
-p isec_out \
a.vcf.gz b.vcf.gz c.vcf.gz
Recommended Workflow
- Bgzip and index all inputs first.
- Decide whether you want count-based set logic (
-n), complement (-c), or multi-output decomposition (-p). - Add
-aif you want to ignore non-PASS records during comparison. - Review outputs carefully because records from different files can intermix in surprising ways.
Guardrails
- Inputs must be bgzipped and tabix-indexed unless you are using the tab-delimited mode explicitly with
-t. -fforces past differing columns or VCF versions; only do that when you understand the compatibility risk.-oprints only entries from the left-most file even when set logic uses all files.- Nearby indels may be normalized differently across callers, so
-wcan materially change what is considered shared.