1 个稳定版本
3.0.1 | 2023年6月25日 |
---|
#5 in #similarity-analysis
155KB
3.5K SLoC
BLUTILS
Blutils
工具允许用户运行并生成Blast结果的共识身份。目前支持BlastN。
安装
Blutils
包可以从 crates.io 使用 cargo 直接安装
cargo install blutils
安装后,可以使用 blu
命令调用 Blutils
blu --help
输出应接近以下内容
A utility to make it easier to run and analyze Blast results
Usage: blu <COMMAND>
Commands:
blast Execute the parallel blast and run consensus algorithm
check Check `Blutils` dependencies
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help information
-V, --version Print version information
检查依赖项
在运行 Blutils
之前,您可以可选地检查操作系统依赖项。自然BLUTILS依赖于已安装在宿主系统上的 Ncbi-Blast+ 工具以执行并行 blast 搜索。要检查宿主操作系统是否已安装这些包,请在 Linux 系统上运行 Blutils
检查器
blu check linux
注意:目前系统检查仅适用于 Linux 系统,并假定可以从终端直接调用依赖项。
使用 Blutils 运行 Blast
Blutils
的执行很简单。要查看所有可用选项,请调用 blast 子命令的帮助
blu blast run-with-consensus --help
查看可用选项后,使用测试数据简单运行 Blutils
。首先从项目的 GitHub 目录下载测试数据
export INPUT_DIR=https://raw.githubusercontent.com/sgelias/blutils/main/test/mock/input
curl ${INPUT_DIR}/query/query.fna > query.fna
curl ${INPUT_DIR}/query/ref_databases/mock-16S.fna > mock-16S.fna
curl ${INPUT_DIR}/query/ref_databases/mock-16S_taxonomies.tsv > mock-16S_taxonomies.tsv
然后运行 Blutils
blu blast run-with-consensus \
query.fna \
mock-16S.fna \
mock-16S_taxonomies.tsv \
output \
-t 6 \
--taxon bacteria \
--strategy relaxed \
-f
根据上述命令,输出文件可以在输出目录中找到,该目录将包含两个额外的文件,分别命名为 blast.out
和 blutils.consensus.json
。前者包含默认的 Blast 表格响应,后者为 Blutils 响应,大致如下:
[
{
"query": "NR114924.257984.Bac",
"taxon": {
"rank": "class",
"taxid": 1760,
"percIdentity": 100.0
}
},
{
"query": "NR025123.135626.Bac",
"taxon": {
"rank": "species",
"taxid": 135626,
"percIdentity": 100.0
}
},
{
"query": "INVALID_SEQUENCE",
"taxon": null
}
]
Blast 执行
Blast 执行试图达到可用 CPU 的完全饱和。在默认的多线程 blast 执行模式下,无法达到完全饱和。要通过 Blutils
运行 Blast 是可能的。在此过程中采取的所有步骤都可以在下面的图像中看到。
共识生成
与 QIIME 2 中的共识生成不同,Blutils
的共识算法基于 Blast 结果对位分数和百分比身份进行数据预过滤,似乎算法如以下图像所示。
下一步
本项目仅包含运行BlastN和生成一致性身份的基本功能。因此,还需要创建许多功能,例如创建数据库提取器以从官方NCBI taxdump结果中获取数据,并同时构建FASTA数据库,以及其他功能。如有需要,我们欢迎提出新的功能建议!
依赖项
~24–36MB
~595K SLoC