第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 盘上。
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
那说明安装成功了。
/opt/ncbi-blast-2.14.0+/bin。
4.3 环境变量配置——最容易翻车的地方
安装好 BLAST+ 之后,最重要的一步就是配置环境变量。说白了,就是告诉系统:"BLAST 的那些命令(blastn、blastp、makeblastdb 等)放在哪个目录里,你随便在哪里敲都能找到它们。"
我第一次带实习生,他装完 BLAST 后直接敲 blastn,终端报 "command not found"。他一脸懵。其实就是环境变量没配好。
怎么做?
- 找到你的 shell 配置文件
- Bash 用户:
~/.bashrc或~/.bash_profile - Zsh 用户:
~/.zshrc
- Bash 用户:
- 在文件末尾添加以下内容(路径改成你自己的 BLAST 安装位置)
# NCBI BLAST+ 环境变量
export PATH="/opt/ncbi-blast-2.14.0+/bin:$PATH"
export BLASTDB="/path/to/your/blast_databases"
PATH:让系统能找到 blastn 等可执行文件BLASTDB:设置默认数据库存放路径,以后你建好的索引库放这里,BLAST 会自动去这个目录找
- 使配置生效
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 或者新开终端再测试