26 个稳定版本 (5 个主要版本)

8.2.0 2024 年 3 月 21 日
7.1.3 2024 年 3 月 3 日
6.3.3 2024 年 2 月 2 日
6.2.0 2023 年 9 月 12 日
3.0.1 2023 年 6 月 25 日

#6 in 科学

Download history 4/week @ 2024-06-03

每月 1,513 次下载

Apache-2.0

185KB
4K SLoC

BLUTILS

Blutils 工具允许用户运行并生成 Blast 结果的一致性身份。目前提供 BlastN。

安装

Blutils 软件包可以直接通过 cargo 从 crates.io 安装

cargo install blutils-cli

安装后,可以使用 blu 命令调用 Blutils

blu --help

输出应接近以下内容

A utility to make it easier to run and analyze Blast results

Usage: blu <COMMAND>

Commands:
  build-db  Build the blast database as a pre-requisite for the blastn command
  blastn    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 blastn 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 blastn 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": "NR025123.135626.Bac",
    "taxon": {
      "rank": "species",
      "identifier": "shewanella-olleyana",
      "percIdentity": 100.0,
      "bitScore": 2695.0,
      "alignLength": 1459,
      "mismatches": 0,
      "gapOpenings": 0,
      "qStart": 1,
      "qEnd": 1459,
      "sStart": 1,
      "sEnd": 1459,
      "eValue": 0.0,
      "taxonomy": "d__bacteria;p__pseudomonadota;c__gammaproteobacteria;o__alteromonadales;f__shewanellaceae;g__shewanella;s__shewanella-olleyana",
      "mutated": true,
      "consensusBeans": null
    }
  },
  {
    "query": "draft-5123",
    "taxon": {
      "rank": "species",
      "identifier": "bacillus-mojavensis-subgroup",
      "percIdentity": 100.0,
      "bitScore": 815.0,
      "alignLength": 441,
      "mismatches": 0,
      "gapOpenings": 0,
      "qStart": 1,
      "qEnd": 441,
      "sStart": 217,
      "sEnd": 657,
      "eValue": 0.0,
      "taxonomy": "d__bacteria;clade__terrabacteria-group;p__bacillota;c__bacilli;o__bacillales;f__taxid-186817;g__bacillus;species-group__bacillus-subtilis-group;species-subgroup__bacillus-mojavensis-subgroup",
      "mutated": true,
      "consensusBeans": [
        {
          "rank": "species",
          "identifier": "bacillus-halotolerans",
          "occurrences": 5
        },
        {
          "rank": "species",
          "identifier": "bacillus-mojavensis",
          "occurrences": 4
        }
      ]
    }
  },
  {
    "query": "INVALID_SEQUENCE",
    "taxon": null
  }
]

Blast 执行

Blast 执行试图达到 CPU 的完全可用饱和度。在默认的多线程 blast 执行模式下,无法达到完全饱和。要使用 Blutils 运行 Blast,这是可能的。此过程中的所有步骤都可以在下面的图像中看到。

Parallel Blast

一致性生成

QIIME 2 生成的一致性不同,Blutils 的一致性算法基于 Blast 结果对位得分和百分比身份进行数据预过滤,似乎如以下图像中描述的算法。

Consensus Generation

下一步

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

依赖项

约25-35MB
约593K SLoC