第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。很简单,对吧?
下面这张图帮你理清整个环境搭建的脉络:
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环境? - ☑ 常用软件安装验证了?
环境对了,后面每一步都踏实。