28 releases (breaking)
new 0.23.0 | Feb 3, 2023 |
---|---|
0.22.1 | Nov 29, 2022 |
0.21.0 | Oct 28, 2022 |
0.17.0 | Jul 5, 2022 |
0.2.0 | Jul 30, 2021 |
#109 in Science
796 downloads per month
Used in 12 crates
(4 directly)
690KB
15K
SLoC
noodles-sam handles the reading and writing of the SAM (Sequence Alignment/Map) format.
SAM is a format typically used to store biological sequences, either mapped to a reference sequence or unmapped. It has two sections: a header and a list of records.
The header mostly holds meta information about the data: a header describing the file format version, reference sequences reads map to, read groups reads belong to, programs that previously manipulated the data, and free-form comments. The header is optional and may be empty.
Each record represents a read, a linear alignment of a segment. Records have fields describing how a read was mapped (or not) to a reference sequence.
Examples
Read all records from a file
# use std::{fs::File, io::BufReader};
use noodles_sam as sam;
let mut reader = File::open("sample.sam")
.map(BufReader::new)
.map(sam::Reader::new)?;
let header = reader.read_header()?.parse()?;
for result in reader.records(&header) {
let record = result?;
// ...
}
# Ok::<(), Box<dyn std::error::Error>>(())
Dependencies
~1.8–7MB
~106K SLoC