Downloads & Links

Installation script
Database Update Utility
MySQL Data Tables
Note! Large file, over 4.5 GB
Download User Manual
Download README File
Major revisions

Annotated Call Sets

  • Indel
  • SV/CNV
  • Support, Questions, Suggestions

    Send email to makarovv at

    What is AnnTools

    AnnTools is an efficient, fast and robust bioinformatics tool annotating single nucleotide substitutions (SNP/SNV), small insertions/deletions (indels), and copy number variations (CNV) calls generated from sequencing and microarray data.


    Source code, supporting files and user manual are freely available for download and use under the BSD License. The system is under active and continuous development, we provide montly updates for the aggregate database used for annotation


    Version 1.1

    Operating System



    The AnnTools is written in Python and uses MySQL for data storage.


    The easiest way to install the software is to run setup script

    1. Download file from the left navigation tab to any directory on your computer where you have full privileges and sufficient space (at least 100GB) available. Shell file was zipped as some systems may prevent downloading executable files.
    2. Unzip the shell
      $ gunzip
      and give it execute permission
      $ chmod 755
    3. Open shell file with any text editor and modify MySQL user name and password as appropriate. Account must have DROP, CREATE, INSERT, SELECT privileges to MySQL server in order to accomplish data table installation.
    4. Run installation
      As some tables are very large, please allow several hours to complete this operation.
    5. Perform one time configuration as described below

    Manual Installation is also possible

    1. Download AnnTools source code "anntools.tar.gz" from the left navigation bar to any directory on your computer.
    2. Unzip the application code
      $ tar xzvf anntools.tar.gz
    3. Download MySQL dump file "annotator.sql.gz" from the left navigation bar to any directory on your computer.
    4. Unzip the MySQL dump
      $ bunzip2 annotator.sql.bz2
    5. Create a new MySQL database
      $mysql --user=USER --password=PASSWORD < annotator.sql
      Please note that you need an account with DROP, CREATE, INSERT, SELECT privileges to perform this operation.
    6. Perform one time configuration as described below

    Aggregate Database Update

    1. To ensure easy and timely updates, we provide db_update utility for aggregate database update.
    2. Unzip it, change to "db_update" directory and modify MySQL login name and password as appropriate. No other modification is required. You must have DROP, CREATE, INSERT, SELECT privileges to MySQL server in order to accomplish update.
    3. Run database update
    4. Only database tables downloaded and installed from Anntools website during Installation step will be updated. No custom annotation table (see Custom annotation section of user manual) will change.

    One Time Configuration Before You Start

    1. cd to "anntools" directory and change permissions to 755 for all *.py files and *.sh file
    2. Edit the "config.txt" file and specify host, user and password. Database name is already specified, please do not change it. Please note that whereas for most of the functionality MySQL account with SELECT privileges is adequate, you need to provide an account with DROP, CREATE, INSERT, SELECT privileges if you wish using custom annotation, as it involved creation of new tables.

    Test run

    You will find three shell scripts called, and We recommend trying running them to annotate SNP, indel and CNV calls located to "example" subdirectory to make sure that installation went correctly. Each has about 1000 variants and complete for about two minutes (on our machine). To annotate your own variants, simply substitute our VCF files names to yours.


    Standalone machine or HPCC. Possible run modes:
    1. As a standalone program by runing the shell scripts provided (,, In this mode one vcf file at a time is annotated
    2. Submitted to High Performance Computer Cluster. Writing submission shell will be reqired based on your HPCC specifications. Due to multiplicity of possibilities (SGE, PBS, etc.), writing of submission shell is left to the local developer.
    3. As an API, integrated to your own python code to analyse multiple BAM files. Use "" python script as a starting point to include AnnTools to your python application.


    VCF (Variant Call Format), SamTools pileup, tabular files (plain text). The latter should be manually converted to VCF using tool


    Output is generated in VCF (Variant Call Format). Annotated Call Sets for single nucleotide substitutions (SNP/SNV), short insertions/deletions (Indel) and structural variants (SV/CNV) are available for download from the left navigaion bar. Examples for each type of variants are available in tabular format below. Information was parced for better viewing.

    Note: "." indicates that information is not applicable or unavailable


    Only human genome build 37/hg19 can be annotated at this time

    Future development plans

    Our future development plans include adding a graphical user interface for desktop users and developing a web service to maximize user-friendliness and versatility.


    AnnTools: Genome annotation toolkit for SNP and CNV data from whole exome and whole genome sequencing data and microarrays. V. Makarov, T. O'Grady, G. Cai, J. Lihm, J. Buxbaum, S. Yoon; (Abstract #918W). Presented at the 12th International Congress of Human Genetics/61st Annual Meeting of The American Society of Human Genetics, October 12, 2011, Montreal, Canada.