1 Program in Medical and Population Genetics, The Broad Institute of Harvard and MIT, Cambridge, Massachusetts 02142, USA;
2 Center for Human Genetic Research, Massachusetts General Hospital, Richard B. Simches Research Center, Boston, Massachusetts
02114, USA
Abstract
Next-generation DNA sequencing (NGS) projects, such as the 1000 Genomes Project, are already revolutionizing our understanding
of genetic variation among individuals. However, the massive data sets generated by NGS—the 1000 Genome pilot alone includes
nearly five terabases—make writing feature-rich, efficient, and robust analysis tools difficult for even computationally sophisticated
individuals. Indeed, many professionals are limited in the scope and the ease with which they can answer scientific questions
by the complexity of accessing and manipulating the data produced by these machines. Here, we discuss our Genome Analysis
Toolkit (GATK), a structured programming framework designed to ease the development of efficient and robust analysis tools
for next-generation DNA sequencers using the functional programming philosophy of MapReduce. The GATK provides a small but
rich set of data access patterns that encompass the majority of analysis tool needs. Separating specific analysis calculations
from common data management infrastructure enables us to optimize the GATK framework for correctness, stability, and CPU and
memory efficiency and to enable distributed and shared memory parallelization. We highlight the capabilities of the GATK by
describing the implementation and application of robust, scale-tolerant tools like coverage calculators and single nucleotide
polymorphism (SNP) calling. We conclude that the GATK programming framework enables developers and analysts to quickly and
easily write efficient and robust NGS tools, many of which have already been incorporated into large-scale sequencing projects
like the 1000 Genomes Project and The Cancer Genome Atlas.