生信工具栈速览:按工作流选工具
做生信分析时最容易踩的一个坑是:"这个工具的名字我听说过很多次,但不知道它在整条流水线里的哪个位置"。结果是收藏夹里堆满 GitHub 链接,每次开始新项目还是从零找工具。
这篇文章把我们常用的一些工具按实际工作流分层列出来,每类工具只给一到两个首选。不追求"最全",只说"从单细胞或 bulk 项目一路到发表,大致在哪些步骤用什么"。
本文写于 2024 年中,工具版本号可能滞后。每个条目下的官方链接会跳到最新文档;具体版本和命令以官方为准。
环境与包管理
单细胞和 bulk RNA-seq 项目里至少要准备三个环境:R、Python、命令行工具。它们的包管理方式不同,建议分开。
- Python:先用 Miniforge / Mamba,速度比 conda 快数倍,conda-forge 和 bioconda 频道都能用。有些新项目开始用 uv,纯 Python 依赖非常快,但 Bioconductor 和 conda 生态不覆盖。
- R:用 RStudio 做日常分析,配合 renv 锁定项目级依赖。单细胞会大量依赖 Bioconductor 的
BiocManager::install。 - 系统级命令行工具:如果是 macOS 用 Homebrew,Linux 直接 apt/yum 装 samtools、bcftools、bwa、fastqc 等。服务器上建议另外装一个 mamba,专门用来装 bioconda 里的命令行工具(cellranger 除外,它需要官方下载)。
我们的 编程基础:R、Python、Bash 学习路径 里会更系统地讲这一套。
上游数据处理
拿到测序下机的 FASTQ 之后的第一步。
- 单细胞(10x Chromium):
cellranger count是事实标准,输出的filtered_feature_bc_matrix几乎被所有下游工具支持。参考模块 02 原始数据处理与 Cell Ranger。 - 单细胞(非 10x / 自己建参考):STARsolo 和 Alevin-fry 是主流替代,后者用的是 Salmon 的准比对框架,速度快、占内存低。
- bulk RNA-seq 比对路径:
STAR或HISAT2做比对,然后featureCounts(subread)做定量。 - bulk RNA-seq 准比对路径:
Salmon或kallisto直接在转录本层面定量,跳过 BAM。小样本项目推荐这条。 - DNA 重测序比对:
BWA-MEM仍然是标配,minimap2在长读长(PacBio / ONT)里是首选。
质量检查的通用工具是 FastQC + MultiQC,所有方向都用得上。MultiQC 可以把一个项目几十个样本的 FastQC / STAR / Salmon / Cell Ranger 报告聚成一张总览,强烈建议每个项目都跑一遍。
单细胞下游分析
表达矩阵拿到手之后:
- R 主线:Seurat。标准 PBMC 分析、多模态(CITE-seq)、空间(Visium)都能覆盖,教程和社区最完整。
- Python 主线:Scanpy。速度更快,更适合大数据集(> 100k 细胞)和深度学习整合。
- 轨迹推断:Monocle3(分支复杂的轨迹)、Slingshot(简单快速)、scVelo(RNA velocity)。
- 细胞通讯:CellChat 用的是经过人工整理的配体-受体数据库,结果可解释性好。
- scATAC-seq:ArchR(大样本)或 Signac(Seurat 生态内)。
这些工具在 单细胞实践教程 01 到 12 里都有对应模块。
bulk RNA-seq 下游分析
- 差异表达:DESeq2 是默认选择。edgeR 和 limma-voom 是等价的替代,文献里都能看到。
- 功能富集:clusterProfiler 一站式支持 GO / KEGG / Reactome / GSEA,出图也好看。
- 探索性:PCA、样本相关性、top variable genes — 用 DESeq2 的
vst输出配合 ggplot2 就够。
完整例子见 bulk RNA-seq 实践教程。
多组学整合
详见 多组学整合实践教程 和 多组学数据整合分析入门。
变异分析
- 变异检测:GATK(best practices 最完整)或 DeepVariant(深度学习方法,对很多基准数据集精度更高)。
- 变异过滤:
bcftools或GATK VariantFiltration。小项目直接 硬过滤;大项目上 VQSR 或 ML 模型。 - 变异注释:VEP、SnpEff、ANNOVAR。
详见 基因组学实践教程。
可视化
- R 生态:ggplot2 是底座;热图用 ComplexHeatmap;火山图 EnhancedVolcano。
- Python 生态:matplotlib + seaborn。scanpy 自带的绘图函数对单细胞结果足够。
- 交互式:plotly 或者 R 的 shiny。给合作者做 dashboard 时很有用,但对可复现性不友好,不建议用在正式出版图里。
- 基因组浏览器:IGV 是标准,比对、variant、peak 都能展示。
工作流与可复现
单样本手跑脚本能应付 demo,多样本、生产环境就要上工作流:
- Nextflow:面向 HPC 和云端,有大量生信社区维护的 pipeline(nf-core)。
- Snakemake:Python 基础用户的首选,写起来接近 Makefile。
容器化的建议:能用就上 Docker 或 Singularity(HPC 多用后者)。Biocontainers 项目 (biocontainers.pro) 已经为绝大多数 Bioconductor 和 PyPI 包提供了官方镜像。
公共数据资源
- 原始数据 / 论文配套:NCBI GEO + SRA / EBI ENA
- 单细胞可浏览数据:CELLxGENE Discover、Human Cell Atlas
- TCGA(癌症多组学):GDC Portal
- 基因组参考:Ensembl、UCSC Genome Browser
- 变异频率参考:gnomAD
更详细的数据检索方法见 公共数据库与数据检索。
常见误解
-
"用最新的工具一定比老工具好"。工具的"新"不等于"适合你的项目"。很多新工具针对的是特定场景(超大数据集、特殊测序平台),对常规项目反而增加了学习成本和调试难度。DESeq2、Seurat、STAR 这些"老"工具之所以一直在用,是因为它们在大多数场景下足够好、文档完善、社区活跃。选工具的标准是"能解决我的问题 + 出了 bug 能找到人问",不是发布日期。
-
"Python 和 R 选一个就够了"。现实是单细胞和 bulk 生态里两边各有不可替代的包。Seurat 和 DESeq2 在 R 里,scVelo 和很多深度学习整合工具在 Python 里。与其纠结"选哪个",不如两边都装好环境,哪个包好用就用哪个。跨语言调用(reticulate、rpy2)也很成熟。
-
"装好工具就能分析了"。工具只是执行层。真正决定分析质量的是:你对实验设计的理解、对 QC 阈值的判断、对统计假设的把握。见过太多人 Seurat 跑得很溜但解释不了为什么选这个 resolution、为什么过滤这个阈值。工具会用是起点,不是终点。
最后
工具本身不是目的。选一套自己熟悉的、社区活跃度高的工具栈,然后把力气花在"这份数据到底在讲什么"上。