第4章 本地BLAST环境搭建:操作系统选择、NCBI BLAST+安装与环境变量配置

做病原菌基因组注释,说白了BLAST就是我们的"眼睛"。没有它,你拿一段测序出来的未知序列,根本不知道它是谁。但问题来了:你总不能每次都把数据传到NCBI的公共服务器上去跑吧?数据量大不说,有时候还涉及敏感菌株,上传前得掂量掂量合规性。

所以,本地搭一个BLAST环境,是每个做病原菌分析的人躲不过去的一步。我这几年带团队,新人来了第一件事就是搭环境。看起来简单,但里面坑不少。今天我把这个过程掰开揉碎了讲给你听。

4.1 操作系统怎么选?

我个人习惯用 Linux,尤其是 Ubuntu 22.04 LTS 或 CentOS 7+。为什么?

  • NCBI BLAST+ 对 Linux 支持最好,命令行操作最顺手
  • 绝大多数生物信息学工具链都是 Linux-first
  • 资源占用可控,适合长时间运行的大规模比对任务

如果你手头只有Windows,也不是不行。我记得有一次在现场帮合作单位搭环境,他们实验室清一色Windows机器。我推荐用 Windows Subsystem for Linux (WSL2),装一个Ubuntu子系统,基本就跟原生Linux体验差不多了。

这里我踩过一个坑:WSL1 的文件 I/O 性能很差,BLAST 建库时读大文件会卡死。所以一定要用 WSL2,而且把基因组数据放到 Linux 子系统的文件系统里,别放在 /mnt/c 挂载的 Windows 盘上。

我的建议:用 Ubuntu 22.04 LTS,双系统或多开一台 Linux 虚拟机,省去后续各种兼容性问题。
注意:macOS 用户可以用 Homebrew 装 BLAST+,但如果是 M1/M2 芯片,有些旧版 BLAST 二进制可能会有兼容问题。建议直接从源码编译或使用 Conda 安装。

4.2 安装NCBI BLAST+

NCBI BLAST+ 目前最新稳定版是 2.14.x(写这段时是这个版本,你用的时候去官网看一眼就行)。安装方式有三种:

方式 命令/步骤 适合场景
APT(Ubuntu/Debian) sudo apt install ncbi-blast+ 快速体验,但版本可能较旧
Conda(推荐) conda install -c bioconda blast 环境隔离,便于管理多版本
官方预编译二进制 手动下载解压 需要特定版本或离线安装

我个人最推荐用 Conda。为什么?因为生物信息学工具之间依赖关系很乱,Conda 能帮你创建一个干净的环境,不会污染系统自带的 Python 或其他包。我见过好多人直接在系统层 apt install,结果后面装其他工具时版本冲突,搞得一团糟。

用 Conda 安装的具体命令:

conda create -n blast_env -c bioconda blast
conda activate blast_env

等它跑完,你就在一个叫 blast_env 的独立环境里了。想测一下装没装好?直接敲:

blastn -version

如果能显示版本号,比如:

blastn: 2.14.0+
 Package: blast 2.14.0, build Sep 23 2022

那说明安装成功了。

小提示:如果你用的是官方预编译包,记得下载后先把压缩包里的 bin 目录解压出来,然后找一个干净的目录放好,比如 /opt/ncbi-blast-2.14.0+/bin。

4.3 环境变量配置——最容易翻车的地方

安装好 BLAST+ 之后,最重要的一步就是配置环境变量。说白了,就是告诉系统:"BLAST 的那些命令(blastn、blastp、makeblastdb 等)放在哪个目录里,你随便在哪里敲都能找到它们。"

我第一次带实习生,他装完 BLAST 后直接敲 blastn,终端报 "command not found"。他一脸懵。其实就是环境变量没配好。

怎么做?

  1. 找到你的 shell 配置文件
    • Bash 用户:~/.bashrc 或 ~/.bash_profile
    • Zsh 用户:~/.zshrc
  2. 在文件末尾添加以下内容(路径改成你自己的 BLAST 安装位置)
# NCBI BLAST+ 环境变量
export PATH="/opt/ncbi-blast-2.14.0+/bin:$PATH"
export BLASTDB="/path/to/your/blast_databases"
  • PATH:让系统能找到 blastn 等可执行文件
  • BLASTDB:设置默认数据库存放路径,以后你建好的索引库放这里,BLAST 会自动去这个目录找
  1. 使配置生效
source ~/.bashrc   # 如果是 bash
source ~/.zshrc    # 如果是 zsh
注意了:我曾经遇到过一个坑——有人在 ~/.bashrc 里把 PATH 写成了 export PATH="/opt/.../bin:$PATH" 但少写了一个冒号。结果系统原有的 PATH 被覆盖,连 ls、cat 这种基础命令都找不到了。别笑,真事。所以配完后最好新开一个终端窗口,先敲一下 echo $PATH 确认一下。

4.4 验证安装 & 简单测试

配好了环境变量,再来一次:

blastn -version

如果显示正常,再试试能不能调用帮助文档:

blastn -help

能看到密密麻麻的参数说明,就说明环境变量没配错。

接下来可以做一个最简单的测试,用 BLAST 自带的示例数据跑一跑:

# 先建一个小数据库
makeblastdb -in test.fa -dbtype nucl -out test_db

# 然后用一条查询序列去比对
blastn -db test_db -query query.fa -out result.txt

如果 result.txt 里出现了比对结果,恭喜你,环境搭建全部完成。

总结一下最关键的几步:
  • 操作系统选 Ubuntu 22.04 LTS 或 CentOS 7+
  • 安装方式首选 Conda(省心、干净)
  • 环境变量一定要配好 PATH 和 BLASTDB
  • 配完后记得 source 或者新开终端再测试
本地BLAST环境搭建流程 ① 操作系统选择 Ubuntu 22.04 LTS CentOS 7+ Windows + WSL2 ② 安装方式选择 APT 安装 Conda 安装 ★推荐 官方二进制 ③ 环境变量配置 ④ 验证 & 测试 🔑 关键变量 PATH → 告诉系统去哪找 blastn BLASTDB → 默认数据库存放路径 配完后 source 新开终端