#consensus #sequences #protein #dna #generate #order #spoa

rust-spoa

此库封装了用于生成DNA和蛋白质共识序列的C++ SPOA库

6个版本

0.2.4 2019年4月16日
0.2.3 2019年4月10日
0.1.0 2019年3月30日

#222 in 生物学

MIT 许可证

135KB
3K SLoC

C++ 3K SLoC // 0.0% comments Rust 122 SLoC // 0.0% comments

rust-spoa

此库是Rust的SPOA(SIMD加速部分顺序对齐)库的封装和接口。此库允许高效地从一组DNA或蛋白质序列中生成共识序列。

如果您使用此库,请引用SPOA的原始作者

Vaser, R., Sović, I., Nagarajan, N. and Šikić, M., 2017. Fast and accurate de novo genome assembly from long uncorrected reads. Genome research, 27(5), pp.737-746.

要使用此库,请将以下内容添加到您的 Cargo.toml

[dependencies]
rust-spoa = "*"

并将此内容添加到您的crate根目录

extern crate rust_spoa;

有关API的描述,请参阅 文档:示例用法

extern crate rust_spoa;

use rust_spoa::poa_consensus;

fn main() {
    let mut seqs = vec![];

    // generated each string by adding small tweaks to the expected consensus "AATGCCCGTT"
    for seq in ["ATTGCCCGTT\0",
        "AATGCCGTT\0",
        "AATGCCCGAT\0",
        "AACGCCCGTC\0",
        "AGTGCTCGTT\0",
        "AATGCTCGTT\0"].iter() {
        seqs.push((*seq).bytes().map(|x|{x as u8}).collect::<Vec<u8>>());
    }

    let consensus = poa_consensus(&seqs, 20, 1, 5, -4, -3, -1);

    let expected = "AATGCCCGTT".to_string().into_bytes();
    assert_eq!(consensus, expected);
}

无运行时依赖

~225KB