Skip to content

10XGenomics/rust-bwa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rust-bwa

Rust-bwa is a Rust wrapper of the BWA api. Pass read-pair information in, and get Rust-htslib BAM records back. Get started quickly with default settings & a reasonable paired-end model. See docs for more details on customing parameters or the paired-end model.

extern crate bwa;
use bwa::BwaAligner;

fn main() {
    let bwa = BwaAligner::from_path(&"tests/test_ref.fa").unwrap();

    let r1 = b"GATGGCTGCGCAAGGGTTCTTACTGATCGCCACGTTTTTACTGGTGTTAATGGTGCTGGCGCGTCCTTTAGGCAGCGGG";
    let q1 = b"2222222222222222222222222222222222222222222222222222222222222222222222222222222";
    let r2 = b"TGCTGCGTAGCAGATCGACCCAGGCATTCCCTAGCGTGCTCATGCTCTGGCTGGTAAACGCACGGATGAGGGCAAAAAT";
    let q2 = b"2222222222222222222222222222222222222222222222222222222222222222222222222222222";

    let (r1_alns, _r2_alns) = bwa.align_read_pair(b"read_name", r1, q1, r2, q2).unwrap();
    println!("r1 mapping -- tid: {}, pos: {}", r1_alns[0].tid(), r1_alns[0].pos());
}

Pre-built rust bindings were generated using bindgen for linux using the command:

~/.cargo/bin/bindgen --no-doc-comments --whitelist-function mem_align1_core --whitelist-function mem_sam_pe --whitelist-function mem_opt_init --whitelist-function bwa_idx_load --whitelist-function bwa_idx_destroy --whitelist-function mem_process_seq_pe --whitelist-function bwa_fill_scmat --whitelist-var "BWA_IDX_.*" wrapper.h -o linux_prebuilt_bindings.rs

bindgen can be installed using cargo install bindgen. See the documentation here.

About

Rust wrapper of the BWA C API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages