Crate noodles_bam[][src]

Expand description

noodles-bam handles the reading and writing of the BAM (Binary Alignment/Map) file format.

The BAM format contains the same information as SAM (Sequence Alignment/Map), namely a SAM header and a list of records.

Examples

Read all records

use noodles_bam as bam;

let mut reader = File::open("sample.bam").map(bam::Reader::new)?;
reader.read_header()?;
reader.read_reference_sequences()?;

for result in reader.records() {
    let record = result?;
    println!("{:?}", record);
}

Query records

Querying allows filtering records by region. It requires an associated BAM index (BAI).

use noodles_bam::{self as bam, bai};
use noodles_core::Region;
use noodles_sam as sam;

let mut reader = File::open("sample.bam").map(bam::Reader::new)?;
let header: sam::Header = reader.read_header()?.parse()?;

let reference_sequences = header.reference_sequences();
let index = bai::read("sample.bam.bai")?;
let region = Region::mapped("sq0", 17711..=28657);
let query = reader.query(&reference_sequences, &index, &region)?;

for result in query {
    let record = result?;
    println!("{:?}", record);
}

Re-exports

pub use self::reader::Reader;
pub use self::record::Record;

Modules

BAM index (BAI) and fields.

BAM reader and iterators.

BAM record and fields.

Structs

An async BAM reader.

An async BAM writer.

A BAM writer.