bwa_mem2_rs/lib.rs
1//! Safe Rust API for [bwa-mem2] alignment.
2//!
3//! This crate exposes bwa-mem2 alignment through a blocking, reentrant
4//! per-batch API with packed BAM output. Callers own all parallelism — every
5//! function is synchronous on its calling thread and safe to call
6//! concurrently from multiple threads sharing the same [`BwaIndex`].
7//!
8//! Phase-split API: [`seed_batch`] → [`extend_batch`] → packed BAM records.
9//! [`align_batch`] is a thin wrapper = seed + extend. [`estimate_pestat`]
10//! runs seed + SE extension + `mem_pestat` only, skipping pairing and
11//! emission.
12//!
13//! [bwa-mem2]: https://github.com/bwa-mem2/bwa-mem2
14
15pub mod align;
16pub mod error;
17pub mod index;
18pub mod opts;
19pub mod xa;
20
21pub use align::{
22 align_batch, estimate_pestat, extend_batch, seed_batch, AlignmentBatch, ReadPair, Record, Seeds,
23};
24pub use error::{Error, Result};
25pub use index::BwaIndex;
26pub use opts::{MemOpts, MemPeStat, Mode, PeOrient, PeOrientation};
27pub use xa::{parse_xa, AuxHit};