BLAST 安装与配置:从零搭好分析环境
搭建一个可复现的分析环境,说白了就是让你的 BLAST 不管在谁的机器上都能跑出一样的结果。我当年刚开始做生信时,就因为环境不一致,折腾了两天才发现是系统自带的 Python 版本不同导致的——吃过亏,你就知道这步有多重要了。
安装 BLAST 有几种常见方式。我们挨个过一遍,重点聊聊 conda 这种方式,因为它最符合可重复计算的要求。
BLAST 的几种获取方式
先列个表,看看有哪些选择:
| 方式 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| conda 安装 | 环境隔离、版本锁定、依赖自动解决 | 需要安装 conda 或 mamba | 可复现分析首选 |
| NCBI 官方安装包 | 官方发布、稳定可靠 | 手动配置 PATH,版本管理麻烦 | 服务器部署、单次使用 |
| 源码编译 | 可定制优化、最新功能 | 编译耗时、工具链要求高 | 特殊优化需求或实验性版本 |
| 系统包管理器(apt/yum) | 安装简单 | 版本老旧、不可复现 | 不推荐 |
我个人习惯用 conda。为什么呢?你想想看——你不需要手动下载、解压、改 PATH,一个命令就能装好,还能锁定环境的版本。这对于后来的人重新跑你的分析来说,太关键了。
Conda 环境搭建:把地基打稳
先检查你机器上有没有 conda。如果没有,去 Miniconda 官网 下一个安装脚本跑一遍就行。这里我不罗嗦了。
有 conda 之后,第一步是创建一个干净的环境:
conda create -n blast_env python=3.9
conda activate blast_env
为什么要新建环境?因为 BLAST 本身没依赖,但后续我们可能要用 Python 来写工作流或管理数据。隔离环境能让你的系统 Python 不被污染。
然后安装 BLAST:
conda install -c bioconda blast
等几秒,它会把 blast 和相关工具装好。装完后验证一下:
blastn -version
我建议用 mamba 替代 conda 来做安装——mamba 解决依赖的速度快多了。如果你的 conda base 里没有 mamba,先装一下:
conda install -c conda-forge mamba
然后用 mamba 安装 BLAST,体验会好很多:
mamba install -c bioconda blast
小技巧:用 mamba 装依赖多的大包时特别省心。我曾经在装一个几十个依赖的软件时,conda 卡了快半小时,换成 mamba 两分钟就解决了。
本地安装与源码编译:备选方案
如果你因为网络问题或权限限制用不了 conda,也可以从 NCBI 官网下载二进制包。我有时候在内网服务器上就是这么干的。
下载之后,解压并添加到 PATH:
wget ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.15.0+-x64-linux.tar.gz
tar -zxvf ncbi-blast-2.15.0+-x64-linux.tar.gz
echo 'export PATH=$PATH:/path/to/ncbi-blast-2.15.0+/bin' >> ~/.bashrc
source ~/.bashrc
为什么我不太推荐这种方式?因为手动操作容易出错——漏了某个 bin 目录、环境变量写错位置,这些坑我都踩过。而且这种安装方式,别人很难一键复现你的环境。
还有一种情况需要源码编译。比如说,你想用特定的编译优化来跑大型数据库比对。那就要走 CMake 流程了:
wget ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.15.0+-src.tar.gz
tar -zxvf ncbi-blast-2.15.0+-src.tar.gz
cd ncbi-blast-2.15.0+-src/c++
mkdir build && cd build
cmake -B . -DCMAKE_INSTALL_PREFIX=/usr/local/blast
make -j4
make install
嗯,这里要注意:编译对系统工具有要求——g++、cmake、make 这些都得有。我第一次编译时少装了个 cmake,报错信息看了半天才反应过。
避坑指南:我曾经在编译时忘了加 -j4 参数,单线程跑了快 20 分钟。如果你用多核机器,一定加上这个选项。
验证安装:确保一切正常
环境装好只是第一步。你得确认它真的能用。我每次装完新工具习惯跑一个简单的测试用例——这招让我避免了好几次“装完发现路径不对”的尴尬。
先确认版本信息:
blastn -version
# 输出应该类似:
# blastn: 2.15.0+
# Package: blast 2.15.0, build May 10 2024 12:00:00
再跑一个真实的 BLAST 查询。拿一段序列试试:
echo -e ">test\nACGTACGTACGTACGTACGTACGTACGTACGT" > test.fa
# 建一个小索引(用你已有的数据库或做一个 mini 库)
makeblastdb -in test.fa -dbtype nucl
# 查询自己
blastn -query test.fa -db test.fa -out result.txt
cat result.txt
输出应该包含比对结果,比如覆盖率、E-value 这些。如果没有报错,说明你的 BLAST 环境已经就绪了。
注意:测试时尽量用小序列,不然机器卡半天你也看不出问题。我刚开始试过用完整的人类基因组做测试——等得我都吃完午饭了才跑完。
本章的知识体系速览
下面这张图可以帮你理清 BLAST 安装和配置的几个关键步骤:
从上图可以看清整个流程:先选一个安装方式,然后配置环境,最后验证。整个链条没断,你的 BLAST 才能用起来。
好了,环境搞定了。下一步就该搭数据库、跑真正的比对了。但那些内容,咱们留在后面慢慢聊。