7 releases (4 breaking)
Uses new Rust 2024
new 0.6.2 | Apr 2, 2025 |
---|---|
0.6.1 | Apr 1, 2025 |
0.6.0 | Mar 31, 2025 |
0.5.0 | Mar 31, 2025 |
0.1.0 | Mar 29, 2025 |
#457 in Biology
390 downloads per month
Used in bsalign
565KB
16K
SLoC
bsalign-rs
A rust binding for the bsalign library.
Install
cargo install bsalign
Pairwise sequence alignment
use bsalign::pairwise::{BsPairwirseAligner, BsPairwiseParam};
fn main() {
let seq = "ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT";
let param = BsPairwiseParam::default().set_ksize(4);
let mut aligner = BsPairwirseAligner::new(param);
let result = aligner.align_banded_striped_8bit(&seq, &seq);
assert_eq!(result.aln, seq.len());
let alnstr = result.to_string();
println!(
"{}\n{}\n{}",
alnstr.tseq().to_string(),
alnstr.alignment().to_string(),
alnstr.qseq().to_string(),
);
println!("Alignment result: {}", result);
}
Multiple sequence alignment
use bsalign::poa::{BsPoaAligner, BsPoaParam};
fn main() {
let param = BsPoaParam::default();
let mut poa = BsPoaAligner::new(param);
let seq = "ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT";
poa.add_sequence(seq);
poa.add_sequence(seq);
poa.add_sequence(seq);
poa.align();
let consensus = poa.get_cns();
let consensus = consensus.as_string();
println!("CNS: {}", consensus);
let qlt = poa.get_qlt();
let qlt = qlt.as_string();
println!("QLT: {}", qlt);
let alt = poa.get_alt();
let alt = alt.as_string();
println!("ALT: {}", alt);
}
No runtime deps
~0–2.2MB
~43K SLoC