API Overview

The main entrypoint to ADAM is the ADAMContext, which allows genomic data to be loaded in to Spark as GenomicDataset. GenomicDatasets can be transformed using ADAM’s built in pre-processing algorithms, Spark’s RDD primitives, the region join primitive, and ADAM’s pipe APIs. GenomicDatasets can also be interacted with as Spark SQL tables.

In addition to the Scala/Java API, ADAM can be used from Python and R.

Adding dependencies on ADAM libraries

ADAM libraries are available from Maven Central under the groupId org.bdgenomics.adam, such as the adam-core library:

<dependency>
  <groupId>org.bdgenomics.adam</groupId>
  <artifactId>adam-core-spark2_2.11</artifactId>
  <version>${adam.version}</version>
</dependency>

From ADAM version 0.27.0, Scala 2.12 artifacts are also available:

<dependency>
  <groupId>org.bdgenomics.adam</groupId>
  <artifactId>adam-core-spark2_2.12</artifactId>
  <version>${adam.version}</version>
</dependency>

From ADAM version 0.32.0, Spark 3 artifacts are also available:

<dependency>
  <groupId>org.bdgenomics.adam</groupId>
  <artifactId>adam-core-spark3_2.12</artifactId>
  <version>${adam.version}</version>
</dependency>

Scala apps should depend on adam-core, while Java applications should also depend on adam-apis:

<dependency>
  <groupId>org.bdgenomics.adam</groupId>
  <artifactId>adam-apis-spark2_2.11</artifactId>
  <version>${adam.version}</version>
</dependency>

Additionally, we push nightly SNAPSHOT releases of ADAM to the Sonatype snapshot repo, for developers who are interested in working on top of the latest changes in ADAM.

The ADAM Python API

ADAM’s Python API wraps the ADAMContext and GenomicDataset APIs so they can be used from PySpark. The Python API is feature complete relative to ADAM’s Java API.

Read more about the Python API.

The ADAM R API

ADAM’s R API wraps the ADAMContext and GenomicDataset APIs so they can be used from SparkR. The R API is feature complete relative to ADAM’s Java API.