6 个版本
0.3.2 | 2023年2月1日 |
---|---|
0.3.1 | 2022年5月4日 |
0.3.0 | 2022年2月3日 |
0.2.1 | 2022年2月2日 |
0.1.0 | 2021年9月9日 |
#96 in 生物学
每月 24 次下载
155KB
2.5K SLoC
msbwt2
该库的目的是提供 Rust 功能以查询多字符串 BWT (MSBWT),并且主要基于原始 msbwt 使用的相同方法。
注意:这是一个正在进行中的项目,目前只作为闲暇时间的副项目进行更新。如果您有任何功能请求,请随时在 GitHub 上提交新的问题。以下是当前计划添加的功能列表
- 集成来自
fmlrc2
的高内存 BWT 实现 - 添加更多查询功能
- 提高内置 BWT 构建工具(
msbwt2-build
)的性能
安装
所有安装选项都假设您已安装 Rust 以及 Rust 的包管理器 cargo
。
从 Cargo 安装
cargo install msbwt2
msbwt2-convert -h
从 GitHub 安装
git clone https://github.com/HudsonAlpha/rust-msbwt.git
cd rust-msbwt
#testing optional
cargo test --release
cargo build --release
./target/release/msbwt2-convert -h
使用方法
MSBWT 构建
在进行任何查询之前必须构建多字符串 Burrows Wheeler Transform (MSBWT 或 BWT)。目前,有两种方法构建 BWT,结果相同
- 使用内置的
msbwt2-build
工具。此方法将接受任何组合的 FASTQ 或 FASTA 文件,这些文件可能是 gzip 压缩的。
目前,这种方法速度较慢,并且没有并行化(我们希望随着时间的推移改进这两者)。然而,它更容易使用,只需要安装msbwt2
即可
msbwt2-build \
-o comp_msbwt.npy \
reads.fq.gz [reads2.fq.gz ...]
- 使用外部工具并将其馈送到
msbwt2-convert
。目前,这种方法速度较快。然而,以下命令更复杂,文件类型更灵活(例如,此示例中需要 FASTQ),并且需要安装 ropebwt2 可执行文件(或类似工具)
gunzip -c reads.fq.gz [read2.fq.gz ...] | \
awk 'NR % 4 == 2' | \
sort | \
tr NT TN | \
ropebwt2 -LR | \
tr NT TN | \
msbwt2-convert comp_msbwt.npy
查询
该库的一般用例是 k-mer 查询,可以按照以下方式执行
use msbwt2::msbwt_core::BWT;
use msbwt2::rle_bwt::RleBWT;
use msbwt2::string_util;
let mut bwt = RleBWT::new();
let filename: String = "test_data/two_string.npy".to_string();
bwt.load_numpy_file(&filename);
assert_eq!(bwt.count_kmer(&string_util::convert_stoi(&"ACGT")), 1);
参考
msbwt2
目前没有预印本或论文。如果您使用 msbwt2
,请引用以下 msbwt
论文之一
霍尔特,詹姆斯,和伦纳德·麦克米伦。 "通过合并构建大型字符串集合的Burrows-Wheeler变换。" 第5届ACM生物信息学、计算生物学和健康信息学会议论文集。2014。
许可证
根据以下任一许可证授权:
- Apache许可证2.0(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确表示,否则根据Apache-2.0许可证定义的您有意提交以包含在作品中的任何贡献,应如上双许可,不附加任何额外条款或条件。
依赖关系
~7-17MB
~207K SLoC