Java and Python API bindings for ADAM genomics analysis library providing language-friendly interfaces for distributed genomic data processing.
The JavaADAMContext class provides the primary Java interface for loading and working with genomic data files in ADAM. It wraps the core ADAMContext functionality with Java-friendly method signatures and handles automatic format detection based on file extensions.
Main entry point for Java applications to access ADAM's genomic data loading capabilities.
/**
* Java-friendly wrapper for ADAMContext providing genomic data loading functions.
*/
class JavaADAMContext {
JavaADAMContext(ADAMContext ac);
/**
* Returns the Java Spark Context associated with this Java ADAM Context.
*/
JavaSparkContext getSparkContext();
}Usage Example:
import org.apache.spark.api.java.JavaSparkContext;
import org.bdgenomics.adam.api.java.JavaADAMContext;
import org.bdgenomics.adam.rdd.ADAMContext;
// Create from existing Spark context
JavaSparkContext jsc = new JavaSparkContext(spark.sparkContext());
ADAMContext ac = new ADAMContext(jsc.sc());
JavaADAMContext jac = new JavaADAMContext(ac);
// Or using companion object methods
JavaADAMContext jac2 = JavaADAMContext.fromADAMContext(ac);
ADAMContext ac2 = JavaADAMContext.toADAMContext(jac);Load sequence alignment data from BAM, SAM, CRAM, FASTA, or FASTQ files.
/**
* Load alignment records from various formats.
* Supports: .bam/.cram/.sam (BAM/CRAM/SAM), .fa/.fasta (FASTA),
* .fq/.fastq (FASTQ), .ifq (interleaved FASTQ)
* Falls back to Parquet + Avro if no extension matches.
* Compressed files (.gz, .bz2) supported via Hadoop codecs.
*/
AlignmentRecordRDD loadAlignments(String pathName);
/**
* Load alignment records with validation stringency for format validation.
*/
AlignmentRecordRDD loadAlignments(String pathName, ValidationStringency stringency);Usage Examples:
import htsjdk.samtools.ValidationStringency;
import org.bdgenomics.adam.rdd.read.AlignmentRecordRDD;
// Load BAM file with default validation
AlignmentRecordRDD alignments = jac.loadAlignments("sample.bam");
// Load with strict validation
AlignmentRecordRDD strictAlignments = jac.loadAlignments(
"sample.bam",
ValidationStringency.STRICT
);
// Load compressed FASTQ
AlignmentRecordRDD fastqData = jac.loadAlignments("reads.fastq.gz");
// Load from multiple files using glob pattern
AlignmentRecordRDD multipleFiles = jac.loadAlignments("data/*.bam");Load paired-end sequencing fragment data from BAM, SAM, CRAM, or interleaved FASTQ files.
/**
* Load fragments from BAM/SAM/CRAM or interleaved FASTQ formats.
*/
FragmentRDD loadFragments(String pathName);
/**
* Load fragments with validation stringency.
*/
FragmentRDD loadFragments(String pathName, ValidationStringency stringency);Usage Examples:
import org.bdgenomics.adam.rdd.fragment.FragmentRDD;
// Load paired-end data as fragments
FragmentRDD fragments = jac.loadFragments("paired_reads.bam");
// Load interleaved FASTQ as fragments
FragmentRDD ifqFragments = jac.loadFragments("interleaved.ifq");Load genetic variant and genotype data from VCF files.
/**
* Load variants from VCF format (.vcf, .vcf.gz, .vcf.bgzf, .vcf.bgz).
*/
VariantRDD loadVariants(String pathName);
/**
* Load variants with validation stringency.
*/
VariantRDD loadVariants(String pathName, ValidationStringency stringency);
/**
* Load genotypes from VCF format.
*/
GenotypeRDD loadGenotypes(String pathName);
/**
* Load genotypes with validation stringency.
*/
GenotypeRDD loadGenotypes(String pathName, ValidationStringency stringency);Usage Examples:
import org.bdgenomics.adam.rdd.variant.VariantRDD;
import org.bdgenomics.adam.rdd.variant.GenotypeRDD;
// Load variant calls
VariantRDD variants = jac.loadVariants("variants.vcf.gz");
// Load genotype information
GenotypeRDD genotypes = jac.loadGenotypes("genotypes.vcf");
// Load with lenient validation for problematic files
VariantRDD lenientVariants = jac.loadVariants(
"noisy_variants.vcf",
ValidationStringency.LENIENT
);Load genomic feature annotations from BED, GFF, GTF, NarrowPeak, or IntervalList files.
/**
* Load features from BED/GFF/GTF/NarrowPeak/IntervalList formats.
*/
FeatureRDD loadFeatures(String pathName);
/**
* Load features with validation stringency.
*/
FeatureRDD loadFeatures(String pathName, ValidationStringency stringency);
/**
* Load coverage data derived from features.
*/
CoverageRDD loadCoverage(String pathName);
/**
* Load coverage data with validation stringency.
*/
CoverageRDD loadCoverage(String pathName, ValidationStringency stringency);Usage Examples:
import org.bdgenomics.adam.rdd.feature.FeatureRDD;
import org.bdgenomics.adam.rdd.feature.CoverageRDD;
// Load gene annotations from GFF3
FeatureRDD genes = jac.loadFeatures("genes.gff3");
// Load genomic intervals from BED file
FeatureRDD intervals = jac.loadFeatures("regions.bed");
// Load coverage data
CoverageRDD coverage = jac.loadCoverage("coverage.bed");
// Load peak calls from ChIP-seq
FeatureRDD peaks = jac.loadFeatures("peaks.narrowPeak");Load reference genome sequences from FASTA or 2bit format files.
/**
* Load reference sequences from 2bit or FASTA formats.
*/
ReferenceFile loadReferenceFile(String pathName);
/**
* Load reference sequences with maximum fragment length limit.
*/
ReferenceFile loadReferenceFile(String pathName, Long maximumLength);
/**
* Load nucleotide contig fragments from FASTA format.
*/
NucleotideContigFragmentRDD loadContigFragments(String pathName);Usage Examples:
import org.bdgenomics.adam.util.ReferenceFile;
import org.bdgenomics.adam.rdd.contig.NucleotideContigFragmentRDD;
// Load reference genome
ReferenceFile reference = jac.loadReferenceFile("reference.fa");
// Load with fragment size limit (e.g., for memory management)
ReferenceFile limitedRef = jac.loadReferenceFile("reference.2bit", 1000000L);
// Load reference as contig fragments for distributed processing
NucleotideContigFragmentRDD contigs = jac.loadContigFragments("reference.fasta");Scala provides implicit conversions between JavaADAMContext and ADAMContext instances. From Java code, use the constructor directly:
/**
* Constructor creates JavaADAMContext from ADAMContext.
* The ac parameter becomes accessible as a public field.
*/
JavaADAMContext(ADAMContext ac);
/**
* Access the underlying ADAMContext via the public ac field.
*/
public final ADAMContext ac;All loading methods support htsjdk.samtools.ValidationStringency for controlling format validation:
// ValidationStringency options from htsjdk
enum ValidationStringency {
STRICT, // Strict validation - fail on any format violations
LENIENT, // Lenient validation - warn on format violations but continue
SILENT // Silent validation - ignore format violations
}Install with Tessl CLI
npx tessl i tessl/maven-org-bdgenomics-adam--adam-apis-2-11