<p>I have used FEATnotator and I think it can provide all of the columns you would like to see. There are many output files generated, but the consolidated output has the following columns:</p>

<ul>
<li>Chromosome     </li>
<li>Position       </li>
<li>Column_3     </li>
<li>Consensus_Allele </li>
<li>Annotation_Signature   </li>
<li>Reference_Base </li>
<li>Alternate_Base </li>
<li>Transition/Transversion SNP_Type       </li>
<li>Premature_STOP_Gained   STOP_Lost      </li>
<li>START_CODON    </li>
<li>STOP_CODON     </li>
<li>SPLICE_SITE </li>
<li>InterGenic     </li>
<li>Gene_Body      </li>
<li>Intron </li>
<li>Exon </li>
<li>Coding </li>
<li>UTR    </li>
<li>Transcription_Start_Site      </li>
<li>Nearest_gene   </li>
<li>Distance</li>
</ul>

<p>here is some example output records from using a VCF, reference genome and GFF annotation file (sorry about the crappy formatting...there are a lot of fields!):</p>

<pre><code>Chr01   28177   T       G       NA      T     G TRANSVERSION    NA      NO      NO      NO      NO      NO      YES     NO      NO      NO      NO      NO      NO      Eucgr.A00211.v2.0       16054
Chr01   44876   C       G       gene:Eucgr.A00211.v2.0   mRNA:Eucgr.A00211.1.v2.0[intron]       C       G       TRANSVERSION    NA      NO      NO      NO      NO      NO      NO      YES     YES     NO      NO      NO      NO      NA  NA
Chr01   46819   A       G       gene:Eucgr.A00211.v2.0   mRNA:Eucgr.A00211.1.v2.0   CDS:Eucgr.A00211.1.v2.0.CDS.4[AAA - K =&gt; GAA - E (MISSENSE)]   exon:Eucgr.A00211.1.v2.0.exon.4      A       G       TRANSITION      MISSENSE        NO  NO       NO      NO      NO      NO      YES   NO        YES     YES     NO      NO      NA      NA
</code></pre>

CC BY-SA 3.0
2017-08-11T06:50:40.807Z
2017-08-11T13:28:51.170Z
2017-08-11T13:28:51.170Z
dkainer
<p><a href="https://hail.is" rel="noreferrer">Hail</a> might be an option for you.</p>

<p>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).</p>

<p>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.</p>

<p>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 <a href="https://hail.is/docs/stable/annotationdb.html" rel="noreferrer">here</a>.</p>

<p>Disclaimer: I work on Hail.</p>

CC BY-SA 3.0
2017-08-15T05:31:00.730Z
I've left the accepted answer as FEATnotator, just because this appears to do exactly what I asked in the question. But I wanted to say thanks for letting me (us?) know about Hail, which certainly sounds extremely useful. The active development and openness to feature requests is a huge plus.
roblanf
CC BY-SA 3.0
2017-08-14T04:20:37.817Z
2017-08-14T04:20:37.817Z
Cotton Seed
<p>snpEff is a great tool for annotating VCF files and you can add custom reference sequences.</p>

<p><a href="http://snpeff.sourceforge.net/" rel="noreferrer">http://snpeff.sourceforge.net/</a></p>

<p>Guide to add custom annotation files in snpEff</p>

<p><a href="https://gatkforums.broadinstitute.org/gatk/discussion/50/adding-genomic-annotations-using-snpeff-and-variantannotator" rel="noreferrer">https://gatkforums.broadinstitute.org/gatk/discussion/50/adding-genomic-annotations-using-snpeff-and-variantannotator</a></p>

<p>There are a bunch of pre curated annotation datasets available in their database.</p>

CC BY-SA 3.0
2017-08-11T07:39:25.050Z
2017-08-11T07:39:25.050Z
arup
<p>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.</p>

<p>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:</p>

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

<p>There are many tools that do <em>something like this</em>. 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:</p>

<p>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.</p>

<sequence-annotation><vcf>
Tools to create annotated table of variants from VCF
# Tools to create annotated table of variants from VCF

(Asked by: username_0 on 2017-08-10)

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:

1. Type of variant (SNV, structural, etc)
2. Details of variant (e.g. reference base, variant base, coverage, position, etc)
3. Annotations overlapping variant
4. Annotations near variant (e.g. is it just upstream of a gene)
5. 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.

**Tags:** sequence-annotation, vcf

---

## 3 answers

### Answer by username_1 on 2017-08-11. Score: 5 | Accepted answer

I have used FEATnotator and I think it can provide all of the columns you would like to see. There are many output files generated, but the consolidated output has the following columns:

Chromosome     
Position       
Column_3     
Consensus_Allele 
Annotation_Signature   
Reference_Base 
Alternate_Base 
Transition/Transversion SNP_Type       
Premature_STOP_Gained   STOP_Lost      
START_CODON    
STOP_CODON     
SPLICE_SITE 
InterGenic     
Gene_Body      
Intron 
Exon 
Coding 
UTR    
Transcription_Start_Site      
Nearest_gene   
Distance

here is some example output records from using a VCF, reference genome and GFF annotation file (sorry about the crappy formatting...there are a lot of fields!):
Chr01   28177   T       G       NA      T     G TRANSVERSION    NA      NO      NO      NO      NO      NO      YES     NO      NO      NO      NO      NO      NO      Eucgr.A00211.v2.0       16054
Chr01   44876   C       G       gene:Eucgr.A00211.v2.0   mRNA:Eucgr.A00211.1.v2.0[intron]       C       G       TRANSVERSION    NA      NO      NO      NO      NO      NO      NO      YES     YES     NO      NO      NO      NO      NA  NA
Chr01   46819   A       G       gene:Eucgr.A00211.v2.0   mRNA:Eucgr.A00211.1.v2.0   CDS:Eucgr.A00211.1.v2.0.CDS.4[AAA - K => GAA - E (MISSENSE)]   exon:Eucgr.A00211.1.v2.0.exon.4      A       G       TRANSITION      MISSENSE        NO  NO       NO      NO      NO      NO      YES   NO        YES     YES     NO      NO      NA      NA


---

### Answer by username_2 on 2017-08-14. Score: 9

[Hail](https://hail.is) 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](https://hail.is/docs/stable/annotationdb.html).

Disclaimer: I work on Hail.

> **Comments:**
> **username_0**: I've left the accepted answer as FEATnotator, just because this appears to do exactly what I asked in the question. But I wanted to say thanks for letting me (us?) know about Hail, which certainly sounds extremely useful. The active development and openness to feature requests is a huge plus.  

---

### Answer by username_3 on 2017-08-11. Score: 5

snpEff is a great tool for annotating VCF files and you can add custom reference sequences.

<http://snpeff.sourceforge.net/>

Guide to add custom annotation files in snpEff

<https://gatkforums.broadinstitute.org/gatk/discussion/50/adding-genomic-annotations-using-snpeff-and-variantannotator>

There are a bunch of pre curated annotation datasets available in their database.


---

