单细胞测序数据分析基础

单细胞测序(single-cell RNA sequencing, scRNA-seq)使研究者能够在单个细胞层面观察基因表达状态,从而解析组织异质性、发育轨迹和疾病机制。与 bulk RNA-seq 得到组织平均信号不同,scRNA-seq 的数据分析更强调细胞级噪声建模、降维聚类和细胞类型注释。本文从通用原理出发,梳理单细胞测序数据分析的基础流程、方法对比与应用全景。
单细胞测序通常由微流控液滴、微孔板或分选板实现细胞分离,并通过细胞条形码(cell barcode)和分子标签(UMI)标记转录本来源。常见平台包括:

  • 10x Chromium:高通量、3′ 端偏好、适合大规模细胞图谱。
  • Smart-seq2/3:低通量、全长转录本、灵敏度高,适合稀有细胞或可变剪接研究。
  • Drop-seq:高通量、成本较低,适合初步筛查。
  • 微孔板方案:通量灵活,便于与表型筛选结合。

scRNA-seq 数据通常具有以下特点:矩阵稀疏、维度极高、dropout 事件常见、批次效应显著。因此,分析目标不是简单比较平均表达量,而是恢复细胞状态、识别细胞亚群并推断调控关系。

通用分析流程

一个典型的 scRNA-seq 分析流程可概括为以下步骤:

  1. 原始数据处理与定量:从 FASTQ 中提取 barcode 和 UMI,比对参考基因组,生成基因×细胞计数矩阵。常用工具包括 Cell Ranger、STARsolo、alevin 等。
  2. 质量控制:过滤低质量细胞和基因。常用指标包括每细胞基因数、UMI 总数、线粒体基因比例、核糖体基因比例。双细胞检测可使用 Scrublet、DoubletFinder。
  3. 归一化与批次校正:消除测序深度差异,常用 LogNormalize、CPM、SCTransform。多批次数据可使用 Harmony、BBKNN、Seurat CCA 等方法整合。
  4. 特征选择与降维:选择高变基因,进行 PCA、t-SNE 或 UMAP 降维。PCA 常用于后续聚类,UMAP 更适合可视化。
  5. 聚类与细胞类型注释:基于 KNN 图使用 Leiden/Louvain 聚类,再通过标记基因或自动注释工具(SingleR、CellTypist)赋予细胞类型。
  6. 下游分析:差异表达、通路富集、轨迹推断、RNA 速率、细胞通讯、拷贝数推断和多组学整合。

方法横向对比

维度 Bulk RNA-seq scRNA-seq
分辨率 组织或群体平均 单细胞
输入量 较高 极低
主要噪声 生物学变异、技术偏差 dropout、批次效应、双细胞
典型问题 差异表达、富集分析 异质性、聚类、轨迹、通讯
分析重点 组间均值比较 细胞状态重建

工具生态方面,R 语言常用 Seurat、Bioconductor 系列;Python 常用 Scanpy、scvi-tools。选择工具时应考虑数据规模、平台类型、是否需要多组学整合以及团队可重复性要求。

在遗传学研究中的应用全景

在遗传学研究中,单细胞分析可作为通用数据层,与分子遗传、群体遗传和医学遗传问题衔接。例如:

  • 解析不同细胞类型的等位基因特异性表达;
  • 在肿瘤中推断克隆演化与体细胞突变;
  • 结合 eQTL 研究细胞类型特异性调控;
  • 在发育、免疫、神经和感染研究中识别关键细胞亚群;
  • 为罕见遗传病提供细胞水平表达图谱。

需要注意的是,单细胞数据本身不能替代严格的实验设计。样本量、批次平衡、对照设置和生物学重复仍然决定结论可靠性。

实战示例:Scanpy 基础流程

以下代码展示了一个简化的 Python 分析框架:

import scanpy as sc

adata = sc.read_10x_mtx("filtered_feature_bc_matrix/")
sc.pp.filter_cells(adata, min_genes=200)
sc.pp.filter_genes(adata, min_cells=3)

adata.var['mt'] = adata.var_names.str.startswith('MT-')
sc.pp.calculate_qc_metrics(adata, qc_vars=['mt'], inplace=True)
adata = adata[adata.obs.pct_counts_mt < 20, :]

sc.pp.normalize_total(adata, target_sum=1e4)
sc.pp.log1p(adata)
sc.pp.highly_variable_genes(adata, n_top_genes=2000)
adata = adata[:, adata.var.highly_variable]
sc.pp.scale(adata, max_value=10)

sc.tl.pca(adata, svd_solver='arpack')
sc.pp.neighbors(adata, n_neighbors=10, n_pcs=40)
sc.tl.umap(adata)
sc.tl.leiden(adata)

sc.pl.umap(adata, color=['leiden', 'CD3D', 'MS4A1'])

该流程完成了质控、归一化、高变基因选择、降维、聚类和标记基因可视化。实际项目中还需加入批次校正、双细胞去除和注释验证。

常见陷阱与最佳实践

  • 批次效应:务必在实验设计阶段平衡批次,分析时进行整合并评估过度校正。
  • 双细胞:高细胞密度或高表达基因混合可能导致假亚群,应使用双细胞检测工具。
  • 线粒体比例:过高通常提示细胞凋亡或破损,但阈值需根据组织类型调整。
  • 注释偏差:自动注释结果应结合已知标记基因和生物学背景验证。
  • 可重复性:记录软件版本、参数和随机种子,使用容器或流程管理工具。

单细胞测序数据分析是一个迭代过程:质控、聚类和注释往往需要反复调整。掌握通用流程后,再针对具体遗传学问题选择合适模型和验证策略,才能从高维数据中提取可靠结论。