跳到主要内容

生信工具栈速览:按工作流选工具

· 阅读需 7 分钟
BioF3 团队
生物信息学数据分析专家

做生信分析时最容易踩的一个坑是:"这个工具的名字我听说过很多次,但不知道它在整条流水线里的哪个位置"。结果是收藏夹里堆满 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 / 自己建参考)STARsoloAlevin-fry 是主流替代,后者用的是 Salmon 的准比对框架,速度快、占内存低。
  • bulk RNA-seq 比对路径STARHISAT2 做比对,然后 featureCounts(subread)做定量。
  • bulk RNA-seq 准比对路径Salmonkallisto 直接在转录本层面定量,跳过 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-seqArchR(大样本)或 Signac(Seurat 生态内)。

这些工具在 单细胞实践教程 01 到 12 里都有对应模块。

bulk RNA-seq 下游分析

  • 差异表达DESeq2 是默认选择。edgeRlimma-voom 是等价的替代,文献里都能看到。
  • 功能富集clusterProfiler 一站式支持 GO / KEGG / Reactome / GSEA,出图也好看。
  • 探索性:PCA、样本相关性、top variable genes — 用 DESeq2 的 vst 输出配合 ggplot2 就够。

完整例子见 bulk RNA-seq 实践教程

多组学整合

  • 最常用MOFA2。对缺失值友好,小样本可用。
  • 监督整合mixOmics 的 DIABLO 方法。
  • 患者分层 / 亚型发现SNFtool
  • 共表达网络WGCNA

详见 多组学整合实践教程多组学数据整合分析入门

变异分析

  • 变异检测GATK(best practices 最完整)或 DeepVariant(深度学习方法,对很多基准数据集精度更高)。
  • 变异过滤bcftoolsGATK VariantFiltration。小项目直接硬过滤;大项目上 VQSR 或 ML 模型。
  • 变异注释VEPSnpEffANNOVAR

详见 基因组学实践教程

可视化

  • 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 包提供了官方镜像。

公共数据资源

更详细的数据检索方法见 公共数据库与数据检索

常见误解

  1. "用最新的工具一定比老工具好"。工具的"新"不等于"适合你的项目"。很多新工具针对的是特定场景(超大数据集、特殊测序平台),对常规项目反而增加了学习成本和调试难度。DESeq2、Seurat、STAR 这些"老"工具之所以一直在用,是因为它们在大多数场景下足够好、文档完善、社区活跃。选工具的标准是"能解决我的问题 + 出了 bug 能找到人问",不是发布日期。

  2. "Python 和 R 选一个就够了"。现实是单细胞和 bulk 生态里两边各有不可替代的包。Seurat 和 DESeq2 在 R 里,scVelo 和很多深度学习整合工具在 Python 里。与其纠结"选哪个",不如两边都装好环境,哪个包好用就用哪个。跨语言调用(reticulate、rpy2)也很成熟。

  3. "装好工具就能分析了"。工具只是执行层。真正决定分析质量的是:你对实验设计的理解、对 QC 阈值的判断、对统计假设的把握。见过太多人 Seurat 跑得很溜但解释不了为什么选这个 resolution、为什么过滤这个阈值。工具会用是起点,不是终点。

最后

工具本身不是目的。选一套自己熟悉的、社区活跃度高的工具栈,然后把力气花在"这份数据到底在讲什么"上。