#blast #ncbi #bioinformatics #dna #similarity-analysis

已删除 blutils

一个使运行和分析Blast结果更便捷的实用工具

3.0.0 2023年6月25日
2.0.0 2023年6月25日
0.3.1 2023年1月17日
0.2.0 2023年1月15日
0.1.0 2023年1月8日

#4 in #similarity-analysis

Apache-2.0

745KB
1K SLoC

BLUTILS

BLUTILS工具允许用户运行和生成Blast结果的共识身份。目前支持BlastN。

安装

可以从crates.io使用cargo直接安装Blutils包。

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.outblutils.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是可能的。此过程中采取的所有步骤都可以在下面的图像中看到。

Parallel Blast

共识生成

QIIME 2中的共识生成不同,Blutils的共识算法基于Blast结果对位得分和百分比身份进行数据预过滤,似乎算法如下面的图像所示。

Consensus Generation

下一步

该项目仅包含运行BlastN和生成共识身份的基本功能。因此,需要创建许多功能,例如创建数据库提取器,从官方NCBI taxdump结果中获取数据并同时构建FASTA数据库,以及其他功能。如有需要,我们欢迎提出新功能建议!

依赖项

~24-36MB
~596K SLoC