5 个版本
0.9.4 | 2024年6月10日 |
---|---|
0.9.3 | 2024年6月9日 |
0.9.2 | 2024年5月8日 |
0.9.1 | 2024年5月7日 |
0.9.0 | 2024年5月5日 |
#612 in 解析实现
2.5MB
1K SLoC
iirs
IIRS 是一个用 rust (rs) 编写的 Iupac 倒置重复序列查找器,从 IUPACpal 端口移植而来,是这篇 论文 的成果。
也就是说,这是一个用于高效识别 IUPAC 编码 DNA 序列中的倒置重复序列(IRs)作为大文本子字符串的精确工具,还允许潜在的不匹配和间隙。
与原始版本相比,这个版本更快,平台无关且模块化,便于创建自定义格式输出。它不需要 cmake
或 sdsl
。它使用 divsufsort 而不是 libdivsufsort。
如何使用二进制文件
命令行共享了原始 IUPACpal 的许多功能。输入 iirs --help
将返回
Usage: iirs [OPTIONS]
Options:
-f, --input-file <INPUT_FILE> Input filename (FASTA) [default: input.fasta]
-s, --seq-names <SEQ_NAMES> Input sequence names [default: seq0]
-m, --min-len <MIN_LEN> Minimum length [default: 10]
-M, --max-len <MAX_LEN> Maximum length [default: 100]
-g, --max-gap <MAX_GAP> Maximum permissible gap [default: 100]
-x, --mismatches <MISMATCHES> Maximum permissible mismatches [default: 0]
-o, --output-file <OUTPUT_FILE> Output filename [default: iirs.out]
-F, --output-format <OUTPUT_FORMAT> Output format (classic, csv or custom) [default: classic]
-q, --quiet Quiet flag: Suppresses non-essential output when enabled
-h, --help Print help
值得注意的是,支持多个序列名称,还有 ALL_SEQUENCES
参数用于处理输入文件中的所有序列,以及输出格式。标志的冗长版本也可用。
iirs -f input.fasta -s 't1 t2' -g 5 -F csv
iirs -f input.fasta --seq-names t1 --max-gap 5 --output-format csv
iirs -f input.fasta -s ALL_SEQUENCES -g 5 -m 3 -F csv
更多实用示例可以在 justfile 中找到。
如何安装二进制文件
(选项 1) 下载可执行文件
从 发行版 下载最新二进制文件,并将其解压缩到您的 $PATH
上的某个位置。
(选项 2) 编译可执行文件
$ git clone https://github.com/daxida/iirs
$ cd iirs
$ cargo build --release
$ // The binary will be located at `target/release/iirs`
(选项 3) 从源代码编译
$ git clone https://github.com/daxida/iirs
$ cargo install --path=.
功能
默认使用稀疏表实现范围最小查询,并且在 IR 中心上是顺序的。要更改此行为,您可以使用功能 tabulation
、parallel
或两者的组合
cargo build --release --features "parallel tabulation"
测试
cargo test
用于单元测试。- Justfile 用于针对序列的单独测试。一些使用 Linux 分析器 perf。要查看命令的完整列表,请使用
just -l
。 bench.rs
对单个文件进行基准测试。修改bench.rs
中的参数后,可以使用just bench
一起使用。要针对不同的功能进行测试,可以将它们作为参数添加:just bench parallel
或just bench parallel tabulation
。logs.rs
对 cpp 二进制文件进行基准测试。您需要一个 IUPACpal 二进制文件(并且它们只支持 Linux)。二进制文件预计将位于 bench 文件夹中,但可以在logs.rs
和validate.py
中进行更改。- 注意,
just heatmap
需要bench/requirements.txt
中列出的 Python 库。
依赖项
约 2.5–3.5MB
约 64K SLoC