#rmq #cli #center #iupac #inverted-repeats

bin+lib iirs

倒置重复序列查找器

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 解析实现

GPL-3.0 许可证

2.5MB
1K SLoC

iirs

IIRS 是一个用 rust (rs) 编写的 Iupac 倒置重复序列查找器,从 IUPACpal 端口移植而来,是这篇 论文 的成果。

也就是说,这是一个用于高效识别 IUPAC 编码 DNA 序列中的倒置重复序列(IRs)作为大文本子字符串的精确工具,还允许潜在的不匹配和间隙。

与原始版本相比,这个版本更快,平台无关且模块化,便于创建自定义格式输出。它不需要 cmakesdsl。它使用 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 中心上是顺序的。要更改此行为,您可以使用功能 tabulationparallel 或两者的组合

cargo build --release --features "parallel tabulation"

测试

  • cargo test 用于单元测试。
  • Justfile 用于针对序列的单独测试。一些使用 Linux 分析器 perf。要查看命令的完整列表,请使用 just -l
  • bench.rs 对单个文件进行基准测试。修改 bench.rs 中的参数后,可以使用 just bench 一起使用。要针对不同的功能进行测试,可以将它们作为参数添加:just bench paralleljust bench parallel tabulation
  • logs.rs 对 cpp 二进制文件进行基准测试。您需要一个 IUPACpal 二进制文件(并且它们只支持 Linux)。二进制文件预计将位于 bench 文件夹中,但可以在 logs.rsvalidate.py 中进行更改。
  • 注意,just heatmap 需要 bench/requirements.txt 中列出的 Python 库。

依赖项

约 2.5–3.5MB
约 64K SLoC