56 breaking releases

new 0.57.0 Mar 12, 2024
0.55.0 Feb 8, 2024
0.52.0 Dec 14, 2023
0.51.0 Nov 14, 2023
0.2.1 Jul 30, 2021

#37 in Science

Download history 337/week @ 2023-11-21 506/week @ 2023-11-28 197/week @ 2023-12-05 413/week @ 2023-12-12 214/week @ 2023-12-19 192/week @ 2023-12-26 277/week @ 2024-01-02 343/week @ 2024-01-09 130/week @ 2024-01-16 708/week @ 2024-01-23 305/week @ 2024-01-30 519/week @ 2024-02-06 561/week @ 2024-02-13 410/week @ 2024-02-20 771/week @ 2024-02-27 621/week @ 2024-03-05

2,396 downloads per month
Used in 29 crates (6 directly)

MIT license

1MB
25K 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.8–5MB
~81K SLoC