75 breaking releases

0.76.0 Feb 6, 2025
0.74.0 Jan 23, 2025
0.72.0 Dec 20, 2024
0.70.0 Nov 7, 2024
0.2.1 Jul 30, 2021

#213 in Science

Download history 768/week @ 2024-10-29 766/week @ 2024-11-05 449/week @ 2024-11-12 515/week @ 2024-11-19 509/week @ 2024-11-26 620/week @ 2024-12-03 1132/week @ 2024-12-10 722/week @ 2024-12-17 229/week @ 2024-12-24 443/week @ 2024-12-31 811/week @ 2025-01-07 967/week @ 2025-01-14 1030/week @ 2025-01-21 596/week @ 2025-01-28 1539/week @ 2025-02-04 617/week @ 2025-02-11

3,995 downloads per month
Used in 46 crates (5 directly)

MIT license

1MB
28K SLoC

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 = bam::io::reader::Builder::default().build_from_path("sample.bam")?;
let header = reader.read_header()?;

for result in reader.records() {
    let record = result?;
    // ...
}

Query records

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

use noodles_bam as bam;

let mut reader = bam::io::indexed_reader::Builder::default().build_from_path("sample.bam")?;
let header = reader.read_header()?;

let region = "sq0:5-8".parse()?;
let query = reader.query(&header, &region)?;

for result in query {
    let record = result?;
    // ...
}

Dependencies

~2.9–9.5MB
~80K SLoC