Chapter 10. Analyzing Genomics Data and the BDG Project
So we need to shoot our SCHPON [Sulfur Carbon Hydrogen Phosphorous Oxygen Nitrogen] ... into the void.
George M. Church
The advent of next-generation DNA sequencing (NGS) technology is rapidly transforming the life sciences into a data-driven field. However, making the best use of this data is butting up against a traditional computational ecosystem that builds on difficult-to-use, low-level primitives for distributed computing (e.g., DRMAA or MPI) and a jungle of semistructured text-based file formats.
This chapter will serve three primary purposes. First, we introduce the general Spark user to a set of Hadoop-friendly serialization and file formats (Avro and Parquet) that simplify many problems in data management. We broadly promote the use of these serialization technologies to achieve compact binary representations, service-oriented architectures, and language cross-compatibility. Second, we show the experienced bioinformatician how to perform typical genomics tasks in the context of Spark.
Specifically, we will use Spark to manipulate large quantities of genomics data to process and filter data, build a model that predicts transcription factor (TF) binding sites, and join ENCODE genome annotations against the 1000 Genome Project variants. Finally, this chapter will serve as a tutorial to the ADAM project, which comprises a set of genomics-specific Avro schemas, Spark-based APIs, and command-line tools ...