Convert VCF Variants to TSV
Paste VCF text and get a spreadsheet-friendly TSV with fixed variant columns, exploded INFO keys, and optional per-sample genotype fields.
About this tool
VCF files are compact for variant callers, but awkward in spreadsheets: the fixed columns are followed by semicolon-delimited INFO annotations and, often, colon-delimited FORMAT values for each sample. This tool turns those records into tidy TSV so you can inspect, filter, or join variants with ordinary table tools.
The output always starts with CHROM, POS, ID, REF, ALT, QUAL, and FILTER. When enabled, INFO fields are expanded into one column per key. Sample FORMAT values can be written in long layout (one row per variant × sample with a SAMPLE column) or wide layout (one row per variant with columns such as NA001_GT and NA001_DP).
Worked example
Paste this VCF:
##fileformat=VCFv4.2
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA001 NA002
chr1 100 rs1 A G 50 PASS DP=30;AF=0.5 GT:DP 0/1:20 1/1:10
With the default long layout, the TSV contains two data rows, one for NA001 and one for NA002, with INFO columns DP and AF plus FORMAT columns GT and DP.
Controls
- Sample layout chooses long rows for sample-centric analysis or wide rows for variant-centric spreadsheets.
- Explode INFO fields adds one column per INFO key; use INFO keys to keep such as
DP,AF,ACwhen you only need selected annotations. - Include sample FORMAT fields emits genotype/sample values when the VCF has sample columns.
- PASS-only drops filtered calls and keeps records whose
FILTERisPASSor.. - Prefix INFO columns writes
INFO_DPinstead ofDP, useful when INFO and FORMAT have the same key. - Missing value controls the placeholder for absent INFO/FORMAT/sample values.
Limits and edge cases
This is a table flattener, not a genomic normalizer. It does not split multi-allelic ALT values, left-align variants, query reference FASTA files, parse compressed .vcf.gz, or validate VEP/ANN subfield semantics. Convert compressed files to text first and paste a representative VCF section. Values are made TSV-safe by replacing embedded tabs/newlines with spaces.
FAQ
Does this support multi-sample VCF files?
Yes. If the #CHROM header has sample names after FORMAT, long layout emits one row per sample per variant, while wide layout creates <sample>_<FORMATKEY> columns for each discovered FORMAT key.
What happens to INFO flags such as DB?
A bare INFO flag with no equals sign is emitted as true when present. If it is absent on another record, the configured missing-value placeholder is used.
Can I keep only a few INFO fields?
Yes. Put a comma-separated list such as DP,AF,AC in INFO keys to keep. The output columns follow that order and missing keys get the configured placeholder.
Does this replace bcftools or VCF normalization?
No. Use specialized bioinformatics tools for normalization, reference lookups, compressed VCF indexing, and annotation interpretation. This tool focuses on deterministic text flattening into TSV inside the browser.
Developer & Automation Access
Run it from the terminal
Same engine as this page, headless — via the gizza CLI:
gizza tool genomic-vcf-to-tsv "##fileformat=VCFv4.2
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA001
chr1 100 rs1 A G 50 PASS DP=30;AF=0.5 GT:DP 0/1:20"New to the CLI? Get gizza →
Open it by URL
Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:
https://gizza.ai/tools/genomic-vcf-to-tsv/?input=%23%23fileformat%3DVCFv4.2%0A%23CHROM%09POS%09ID%09REF%09ALT%09QUAL%09FILTER%09INFO%09FORMAT%09NA001%0Achr1%09100%09rs1%09A%09G%0950%09PASS%09DP%3D30%3BAF%3D0.5%09GT%3ADP%090%2F1%3A20&layout=long&include_info=true&include_samples=true&info_fields=DP%2CAF&pass_only=true&prefix_info=true&missing=.&header=trueMachine-readable descriptor: tool.json — title + parameters JSON Schema for agents.
