60 breaking releases

new 0.61.0 May 2, 2024
0.59.0 Apr 4, 2024
0.58.0 Mar 28, 2024
0.52.0 Dec 14, 2023
0.2.1 Jul 30, 2021

#143 in Science

Download history 160/week @ 2024-01-13 434/week @ 2024-01-20 460/week @ 2024-01-27 604/week @ 2024-02-03 301/week @ 2024-02-10 527/week @ 2024-02-17 769/week @ 2024-02-24 567/week @ 2024-03-02 933/week @ 2024-03-09 402/week @ 2024-03-16 426/week @ 2024-03-23 574/week @ 2024-03-30 341/week @ 2024-04-06 645/week @ 2024-04-13 614/week @ 2024-04-20 487/week @ 2024-04-27

2,161 downloads per month
Used in 31 crates (6 directly)

MIT license

1MB
26K 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