Tools to create annotated table of variants from VCF The problem: I have a VCF file, a reference genome, and a bunch of annotations for the reference (genes, repeat regions, etc.) as GFF or BED files.

What I would like is a tool that takes all of this as input and outputs a tab- or comma-delimited table containing as much information as possible. Potential columns in the output include:


Type of variant (SNV, structural, etc)
Details of variant (e.g. reference base, variant base, coverage, position, etc)
Annotations overlapping variant
Annotations near variant (e.g. is it just upstream of a gene)
If it appears in a coding region, does it change the amino acid.


There are many tools that do something like this. But to the newbie (like me) it is not clear which tools are worth starting with. Since the majority of tools take a little effort to get working in the first place, my question is:

What tool comes closest to doing what I have described, is known to reliable, and is likely to be maintained for the next few years.
Hail might be an option for you.

It is actively developed by a growing team at the Broad.  It is rigorously tested (continuous integration, continuous deployment, bug reports get regression tests, blah blah blah).

It was designed to solve this problem (among others).  It can import a variety of formats, including VCF, TSV, UCSC BED, JSON and interval files.  (We don't have explicit support for GFF, but we can probably handle them with general facilities.  If not, get in touch and we'll add support.)  It can call out to VEP (and soon Nirvana, Illumina's VEP rewrite).  It has general facilities to transform, filter, clean and query data.

What's more, we've curated a large collection of annotation resources (currently ~22 databases of annotations + VEP), hosted in a public bucket in Google cloud, and built an interactive query builder to select which resources you want to use.  Get in touch if you'd like us to add additional resources.  You can read more about it here.

Disclaimer: I work on Hail.