第4章 计算环境搭建:Linux基础、conda环境配置、常用软件安装

说实话,宏基因组分析跑起来,环境搭不好,后面全白费。我见过不少同学Windows桌面玩得溜,一到服务器就抓瞎。这一章咱们把Linux基础、conda环境、常用软件一口气捋顺。别急,跟着我来,半小时你也能搞定。

4.1 Linux基础——你迟早要跨过的坎

为啥非用Linux?因为大部分宏基因组工具只跑在Linux上。Windows下WSL也行,但我个人习惯直接在Ubuntu Server或CentOS上干活。你想想看,服务器上跑任务,分分钟上百GB数据,命令行效率没得比。

刚开始我连ls和cd都搞混,没关系,记住这十几个命令就够用:

命令作用举个栗子
pwd显示当前路径pwd → /home/yourname
ls -lh列出文件(加参数看大小)ls -lh *.fastq
cd切换目录cd data/raw
mkdir -p创建多级目录mkdir -p project/{raw,clean,assembly}
cp/mv/rm复制/移动/删除cp -r raw/ backup/
chmod +x给脚本加执行权限chmod +x run.sh
nano/vim编辑文本nano config.yaml
tar -xzf解压压缩包tar -xzf tools.tar.gz
grep/awk/sed文本处理三剑客grep ">" seqs.fa | wc -l

我个人习惯把所有分析放一个目录下,比如/data/project/,里面再按样本分个子文件夹。这样后期清理、备份都省心。

嗯,这里要注意权限问题。我曾经因为sudo装包装混了,结果系统Python和conda打架,折腾了一天。所以后面我强烈推荐用conda,别动系统自带的Python。

4.2 Conda环境配置——一劳永逸的隔离方案

Conda说白了就是虚拟环境管家。你装一个软件,它自动帮你解决依赖,而且不污染系统。我一般用Miniconda,轻量够用。安装就几步:

# 下载Miniconda(Linux 64位)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

# 运行安装脚本
bash Miniconda3-latest-Linux-x86_64.sh

# 按照提示按Enter,yes即可
# 安装完后会让你初始化,选yes会往.bashrc里加路径

装完记得重开终端或source ~/.bashrc。然后配置生物信息专用频道:

conda config --add channels defaults
conda config --add channels bioconda
conda config --add channels conda-forge
conda config --set channel_priority strict

为什么会这样设置?因为bioconda是生物信息软件的官方仓库,conda-forge有很多通用依赖。优先级设成strict能避免版本冲突。

接下来创建你的第一个宏基因组环境:

conda create -n metagenomics python=3.9
conda activate metagenomics

注意:环境名不要用中文,也不要用特殊符号。我曾经手痒用了meta-env,后面用conda remove -n meta-env --all删除时环境里残留文件,搞得我手动清理了半天。

查看已有环境:conda env list。退出环境:conda deactivate。很简单,对吧?

下面这张图帮你理清整个环境搭建的脉络:

宏基因组计算环境搭建知识体系 Linux系统基础 命令、权限、文件系统 Conda环境管理 Miniconda、频道、虚拟环境 常用软件一键安装 fastp, bowtie2, samtools… fastp(质控) conda install -c bioconda fastp Bowtie2(比对) conda install bowtie2 Samtools(处理) conda install samtools MEGAHIT(组装) conda install megahit 提示:conda环境可随意增减软件,互不冲突。 后续章节会详细介绍每个工具的用法。

4.3 常用软件一键安装——别浪费生命在编译上

激活环境后,装东西就是一行命令的事。我列几个宏基因组最常用的:

  • fastp:双端测序质控,自动检测接头,速度还快。
  • Bowtie2:短读比对,去宿主污染时必用。
  • samtools:BAM/SAM文件处理,没有它寸步难行。
  • MEGAHIT / metaSPAdes:宏基因组组装。
  • Kraken2 / Bracken:物种分类(后面章节细讲)。

一条命令搞定所有:

conda activate metagenomics
conda install -c bioconda fastp bowtie2 samtools megahit kraken2 bracken

等它解依赖、下载、安装。我第一次装的时候足足等了十分钟,别急,去喝口水。如果网络慢,可以换成清华镜像源:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
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/pkgs/main/
conda config --set channel_priority flexible

我这里特别提醒:不要混装不同渠道的同一软件。比如从bioconda装了一个版本,又从源码编译一遍,会给PATH管理带来麻烦。我个人习惯全部走conda,除非某个工具官方要求源码编译。

装完可以验证一下:

fastp --version    # 应该显示版本号
bowtie2 --version  # 同样
samtools --version | head -1

如果都输出版本,说明环境ok。我发现很多新手装完软件却没用对环境——记得每次新开终端都要conda activate metagenomics哦。也可以把这句加到.bashrc里,默认激活:

echo "conda activate metagenomics" >> ~/.bashrc
source ~/.bashrc

不过要是你有多个项目环境,不建议默认激活,还是手动切比较灵活。我自己就在.bashrc里写了个别名:

alias meta='conda activate metagenomics'

每次输入meta就直接进环境了,省事。

好了,这一章环境就算搭完了。如果你跟着操作到这儿,已经有了一套Linux操练经验、一个干净conda环境、几个核心软件。下一节我们会真正开始干活——用fastp做质控。但先别急着翻篇,回头看看自己有没有漏掉什么:

  • ☑ Linux基础命令记住了几个?
  • ☑ Miniconda装好了吗?
  • ☑ 创建了metagenomics环境?
  • ☑ 常用软件安装验证了?

环境对了,后面每一步都踏实。