第2节:环境与工具准备
好,咱们正式开始动手之前,先把「战场」打扫干净。我见过不少同学在分析做到一半时,突然报个依赖冲突或命令找不到,那种感觉,真挺让人崩溃的。
所以这一节,咱们把 Linux 基础、Conda 环境、还有那些核心软件,一次性捋清楚。嗯,跟着我来,保证不走弯路。
2.1 Linux 基础与服务器配置
说实话,微生物组分析基本是跑在 Linux 上的。你可能会在 Mac 上装一些东西,但生产环境——尤其是要处理几百 G 测序数据的场合——八成是 Linux 服务器。
我个人的习惯是,登到服务器上第一件事,先看看系统信息:
# 查看系统版本
cat /etc/os-release
# 查看内核
uname -a
# 查看 CPU 和内存
nproc
free -h
# 查看磁盘
df -h
这里,咱们重点搞定两件事:用户权限 和 磁盘空间。
你想想看,如果 /home 目录满了,分析到一半直接报「No space left on device」,是不是很头疼?
我建议你创建一个专用用户来跑分析:
sudo useradd -m microbiome
sudo passwd microbiome
sudo usermod -aG sudo microbiome
然后切到这个用户下操作。后面所有软件,都装在自己的环境里,别去动系统级的 Python 或包管理器。这能帮你省下无数个周末。
tmux 或 screen 来管理会话。我就曾被 SSH 断连害惨过——跑了两天的 Kraken2 直接废掉。用 tmux 就没这烦恼了。
# 新建会话
tmux new -s analysis
# 脱离(detach)后,下次重新连上
tmux attach -t analysis
2.2 Conda 环境搭建
Conda 这东西,说白了就是个包管理器,但它的环境隔离能力,在生物信息领域简直太关键了。
你不可能让 QIIME2 和 Kraken2 用同一个 Python 版本——相信我,冲突会把你折磨到怀疑人生。
咱们先装 Miniconda,不装 Anaconda,因为 Anaconda 太臃肿了:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
# 一路 yes,安装到 ~/miniconda3
装完后记得初始化:
~/miniconda3/bin/conda init
source ~/.bashrc
然后配置一下镜像源。国内网络环境你懂的,用默认源下载个 QIIME2 能等到天荒地老。我一般用清华源:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --set show_channel_urls yes
为什么要配置 bioconda?因为大部分生物信息软件都在这个 channel 里。你会发现,有了 Conda,装软件就一句话的事。
千万不要所有包塞到一个环境里!我曾经就这么干过,结果 QIIME2 和 Humann3 打架,最后不得不全部重装。血的教训。
2.3 安装常用生物信息软件
好了,现在 Conda 已经就位。我们来一口气把核心工具装好。我按功能分成了几类,你可以按需来。
2.3.1 QIIME2——扩增子分析的标配
QIIME2 不是普通软件,它是一个平台。我建议直接用官方提供的 YAML 文件来创建环境:
# 下载官方环境文件
wget https://data.qiime2.org/distro/core/qiime2-2023.5-py38-linux-conda.yml
# 创建环境(这一步较慢,建议泡杯咖啡)
conda env create -n qiime2-2023.5 --file qiime2-2023.5-py38-linux-conda.yml
# 激活
conda activate qiime2-2023.5
# 验证安装
qiime --help
为什么我要单独强调 QIIME2?
因为它的环境依赖特别多,特别是 scikit-bio 和 q2-types 这些,自己手动解决版本冲突基本不可能。直接用 YAML 是最稳的。
2.3.2 Kraken2——快速物种分类
Kraken2 的特点是快。它能用 k-mer 匹配的方式,在几分钟内完成一个样本的物种注释。
conda create -n kraken2 -c bioconda kraken2
conda activate kraken2
当然,光有 Kraken2 还不够,你还得下载数据库。标准库大概 50G 左右:
kraken2-build --standard --db $HOME/kraken2_db
2.3.3 Humann3——功能基因注释
Humann3 是做宏基因组功能注释的利器。它能告诉你,样本里的微生物在“干什么”——代谢通路、酶、还有丰度。
conda create -n humann3 -c bioconda humann3
conda activate humann3
# 下载数据库(这也是大头)
humann_databases --download chocophlan full $HOME/humann_db
humann_databases --download uniref uniref90_diamond $HOME/humann_db
humann_databases --download utility_mapping full $HOME/humann_db
数据库下载可能会失败——国内网络有时候会断。我建议用 wget -c 续传,或者干脆让同事帮忙拷一份。
2.3.4 Prokka——原核基因组注释
Prokka 是用 Perl 写的,专攻原核生物。它的优点是轻量、快、输出格式标准(GBK、GFF、FASTA 都有)。
conda create -n prokka -c conda-forge -c bioconda prokka
conda activate prokka
# 测试
prokka --version
Prokka 默认有内置的数据库,但如果你要注释一些特别的菌株,建议自己用 prokka-genbank_to_fasta_db 建一个专属库。
2.3.5 MaxQuant——蛋白质组学定量
MaxQuant 比较特殊,它没有 Conda 包。它是个 Java 写的工具,一般在 Windows 上跑。但在服务器上,咱们可以跑它的命令行版本。
# 下载 MaxQuant
wget https://www.maxquant.org/download/MaxQuant_2.4.0.0.zip
unzip MaxQuant_2.4.0.0.zip -d $HOME/maxquant
跑之前确保装了 Java:
sudo apt install openjdk-17-jre
然后,你的 MaxQuant 就可以通过 java -jar 来调用了。嗯,后期的多组学整合,我们就要用这个来处理蛋白质组的数据。
2.4 环境管理最佳实践
我在这里总结一个表格,方便你对照查看每个工具的环境和用途:
| 工具 | 环境名称 | 主要用途 | 安装方式 |
|---|---|---|---|
| QIIME2 | qiime2-2023.5 | 扩增子 OTU/ASV 分析 | YAML 文件创建 |
| Kraken2 | kraken2 | 宏基因组物种分类 | conda install |
| Humann3 | humann3 | 宏基因组功能注释 | conda install |
| Prokka | prokka | 原核基因组注释 | conda install |
| MaxQuant | (系统环境) | 蛋白质组学定量 | 手动下载解压 |
每次启动新分析前,我建议你先列个清单:
这个项目需要哪几个工具?它们的环境是不是有冲突?
如果有冲突,就分两个环境,用 conda activate 来回切换。
1. 环境隔离,一个项目一个环境。
2. 数据库和软件分开管理,数据库可以共享。
3. 定期
conda clean --all 清理缓存,别让 ~/.conda 撑爆磁盘。
好,环境准备就到这里。下面这张图,是我对这节内容的一个总结:
嗯,你只要按上面流程,把 Linux、Conda 和这五个工具都跑通,整个多组学分析的“地基”就算打好了。后面所有的实战,都会在这个框架里展开。