第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
省流量技巧:很多服务器共享一个 kraken2 数据库。你可以问问同组的同事有没有现成的路径,直接软链接过去就行,不用每个人都下载一遍。

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 撑爆磁盘。

好,环境准备就到这里。下面这张图,是我对这节内容的一个总结:

第2节:环境与工具准备 · 知识结构 Linux 基础与服务器 Conda 环境搭建 软件安装 用户权限 磁盘管理 tmux 会话 系统信息 Miniconda 安装 镜像源配置 环境创建 环境切换 QIIME2 Kraken2 Humann3 Prokka MaxQuant 环境隔离 + 数据库共享 + 定期清理 = 稳定高效的分析管线

嗯,你只要按上面流程,把 Linux、Conda 和这五个工具都跑通,整个多组学分析的“地基”就算打好了。后面所有的实战,都会在这个框架里展开。