Linux 基础与软件安装:命令行操作、conda 环境配置、常用生物信息学软件安装
做生信的人,Linux 是躲不过去的坎。我刚入行时觉得图形界面挺好的,直到第一次在服务器上看到纯黑终端,心里直发毛。后来才发现,这东西一旦上手,比点鼠标快十倍。
这一章咱们就把门槛踩平——从最常用的命令开始,到用 conda 装完全部工具。你跟着敲几遍,很快就能习惯。
核心知识图:下面这张图把本章三个模块串起来了。先学会在 Linux 里“走路”,再用 conda 搭好专属环境,最后把 FASTA/FASTQ 处理工具装进这个环境里。
命令行操作:让你跟服务器“对话”
我们不需要成为运维高手,掌握十来个核心命令就够用。我个人习惯把常用命令按“文件夹操作”“文件查看”“权限管理”分组记,需要时能秒查。
| 命令 | 作用 | 常用选项 |
|---|---|---|
ls | 列出目录内容 | -lh 人性化显示大小,-a 显示隐藏文件 |
cd | 切换目录 | cd .. 回上级,cd ~ 回家目录 |
pwd | 显示当前路径 | 无 |
mkdir -p | 创建多层目录 | -p 父目录不存在时自动创建 |
cp / mv | 复制 / 移动 | -r 递归复制文件夹,-v 显示过程 |
rm -rf | 强制删除 | 慎用! 删除后不可恢复 |
cat / less | 查看文件内容 | less 支持上下翻页 / 搜索 |
我的习惯:给数据文件起名时用英文、下划线、日期,比如 sample_2025_01_R1.fastq.gz。别用空格和中文,否则你会被转义符整疯。
现场演示:假设我们要创建一个项目目录并查看 FASTQ 文件的大小。
mkdir -p project/fastq_raw
cd project/fastq_raw
ls -lh *.fastq.gz
# 输出像这样:
# -rw-r--r-- 1 user group 2.3G Jan 10 14:30 sample01_R1.fastq.gz
# -rw-r--r-- 1 user group 2.5G Jan 10 14:31 sample01_R2.fastq.gz
嗯,查看大小、重命名、移动,这些场景我几乎每天都会遇到。记得有一次我想批量重命名,用了一个 for 循环,结果把文件名前缀搞丢了。从那以后,我都会先 echo 一下看看替换效果,再执行真正的 mv。
conda 环境配置:隔离你的软件战场
为什么需要 conda?**很简单——避免打架。** 不同软件可能依赖不同版本的 Python 或库,用 conda 环境隔开,各玩各的。
安装 miniconda 是目前最轻量的方式,去官网下载 Linux 版本即可。我个人建议直接装到 ~/miniconda3 下,不用管理员权限。
# 下载并安装(以 x86_64 为例)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b -p ~/miniconda3
# 初始化(让 shell 识别 conda 命令)
~/miniconda3/bin/conda init
# 重新登录或 source ~/.bashrc
装好后,我习惯先把默认频道改成国内镜像,下载速度快得多。
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 --set show_channel_urls yes
避坑指南:我曾经在服务器上直接用 root 装了全局 conda,结果同事的环境被我搞乱了。现在我的做法是:每个项目建一个独立环境,环境名用项目名 + 日期,比如 qc_pipeline_202501。
创建并激活环境:
conda create -y -n qc_env python=3.9
conda activate qc_env
# 查看当前环境中的包
conda list
# 退出环境
conda deactivate
为什么不直接装最新 Python?因为很多生信工具官方只测试过固定版本,用太新的 Python 反而容易踩坑。我一般选 3.8 或 3.9,稳定且兼容性好。
常用生信软件安装:一行命令搞定
有了 conda 环境,装软件就跟装手机 App 一样简单。我们常用来做 FASTQ 质控和 BAM 处理的工具,基本都能通过 conda install 获得。下表列出最核心的几款:
| 软件 | 用途 | 安装命令(conda activate qc_env 后执行) |
|---|---|---|
| fastqc | FASTQ 质量评估 | conda install -c bioconda fastqc |
| fastp | 原始数据质控+去接头 | conda install -c bioconda fastp |
| trimmomatic | 读段修剪 | conda install -c bioconda trimmomatic |
| bwa | 比对到参考基因组 | conda install -c bioconda bwa |
| samtools | 操作 BAM/SAM 文件 | conda install -c bioconda samtools |
| sambamba | 更快地处理 BAM(可选) | conda install -c bioconda sambamba |
安装演示:接下来我们就在刚才创建的 qc_env 里把 fastqc、fastp、bwa、samtools 一口气装上。注意 -c bioconda 指定了生物信息学专用频道。
conda activate qc_env
conda install -y -c bioconda fastqc fastp bwa samtools
# 验证安装
fastqc --version
fastp --version
bwa
samtools --version
命令执行后你会看到每个软件打印版本号。如果提示找不到命令,多半是环境没激活,或者频道源不对。我在项目初期经常遇到频道混乱的问题,后来干脆写了一个 requirements.txt 文件,每次新建环境就 conda install --file requirements.txt,稳定多了。
环境管理小技巧
你想想看,如果一个项目有十几个工具,每次重装一遍多麻烦?所以我会把整套环境导出成 YAML 文件,分享给队友或者在别的服务器上复原。
# 导出当前环境的所有包
conda env export > environment.yaml
# 在其他机器上重建同样的环境
conda env create -f environment.yaml
避坑指南:我曾经因为导出了完整的 urls 信息,导致别人在离线服务器上无法安装。后来我改用 conda env export --from-history,只保留手动安装的包,干净又通用。