Crate parasail_rs

Crate parasail_rs 

Source
Expand description

§parasail-rs

GitHub Actions Workflow Status docs.rs Crates.io Version Ask DeepWiki

This crate provides safe Rust bindings and a wrapper to parasail, a SIMD pairwise sequence alignment C library. Note that this crate is still under development and is unstable.

§Usage

§Installation

Run the following Cargo command in your project directory:

cargo add parasail-rs

Note that parasail-rs depends on libparasail-sys which will either use an already installed system parasail library or build from source. For more information, please see libparasail-sys.

§Examples

§Basic usage:

For one-off alignments:

use parasail_rs::prelude::Aligner;

// ...

let query = b"ACGT";
let reference = b"ACGT";
let aligner = Aligner::new().build();

aligner.align(Some(query), reference)?;

When using striped or scan vectorization strategies, some performance may be gained by reusing the query sequence. This can be done by creating a query profile and reusing it for multiple alignments.

use parasail_rs::prelude::{Matrix, Aligner, Profile};

// ...

let query = b"ACGT";
let ref_1 = b"ACGTAACGTACA";
let ref_2 = b"TGGCAAGGTAGA";

let use_stats = true;
let query_profile = Profile::new(query, use_stats, &Matrix::default())?;
let aligner = Aligner::new()
    .profile(query_profile)
    .build();

let result_1 = aligner.align(None, ref_1)?;
let result_2 = aligner.align(None, ref_2)?;

println!("Score 1: {}", result_1.get_score());
println!("Score 2: {}", result_2.get_score());

§Contributing

Contributions are more than welcome. Please open an issue for any feedback or questions. See the contributing guide for more details.

§Citations

If needed, please cite the following paper:

Daily, Jeff. (2016). Parasail: SIMD C library for global, semi-global, and local pairwise sequence alignments. BMC Bioinformatics, 17(1), 1-11. doi:10.1186/s12859-016-0930-z

§License

parasail-rs and libparasail-sys are licensed under the BSD-3-Clause license. The original parasail C library is licensed under a similar Battelle style BSD license.

Modules§

aligner
Creating and configuring sequence aligners.
alignment
Alignment result handling.
error
parasail-rs errors.
matrix
Substitution matrices.
prelude
profile
Query profiles.