BioF3 组学数据分析

07 多模态数据分析

导出日期:2026年5月11日

07 多模态数据分析

多模态单细胞技术在一个细胞里同时测两种信息:CITE-seq 同时测 RNA 和细胞表面蛋白,10x Multiome 同时测 RNA 和染色质可及性。相比纯 scRNA-seq,多模态数据的优势是可以相互验证和补充:RNA 层的聚类结果,往往能在蛋白层找到更清晰的 marker。

本节用 10x Genomics 的 5k PBMC CITE-seq 数据演示最常用的一条 CITE-seq 分析流程:分别标准化 RNA 和 ADT,再用 WNN(Weighted Nearest Neighbor)做联合聚类。

多模态技术对比

技术 测量内容 常见用途
CITE-seq RNA + 表面蛋白(ADT) 免疫学、细胞分型
ASAP-seq RNA + 染色质开放 调控机制
10x Multiome RNA + ATAC(同细胞) 基因表达与调控联动
Perturb-seq RNA + CRISPR 扰动 遗传学筛选

CITE-seq 门槛低,直接用标准 Seurat/Scanpy 就能做;Multiome 需要走 Cell Ranger ARC 流程,后续分析借助 Signac 或 MultiVI。

CITE-seq 的 WNN 分析

数据是 01 章里介绍过的 5k PBMC CITE-seq,下载后 filtered_feature_bc_matrix/ 目录里同时包含 Gene ExpressionAntibody Capture 两层矩阵。

先读入并分别对两层数据做标准化和降维:

library(Seurat)

# 读取 CITE-seq 数据(同时包含 RNA 和 ADT)
data_dir <- "~/biof3-data/pbmc5k-citeseq/filtered_feature_bc_matrix"
counts <- Read10X(data.dir = data_dir)

# 创建 Seurat 对象:RNA 作为主 assay,ADT 作为额外 assay
cbmc <- CreateSeuratObject(counts = counts$`Gene Expression`, project = "PBMC5K_CITE")
cbmc[["ADT"]] <- CreateAssayObject(counts = counts$`Antibody Capture`)

# RNA 标准化 + 高变基因 + PCA
DefaultAssay(cbmc) <- "RNA"
cbmc <- NormalizeData(cbmc)
cbmc <- FindVariableFeatures(cbmc)
cbmc <- ScaleData(cbmc)
cbmc <- RunPCA(cbmc)

# ADT 用 CLR 归一化(Centered Log Ratio),更适合抗体信号
DefaultAssay(cbmc) <- "ADT"
cbmc <- NormalizeData(cbmc, normalization.method = "CLR", margin = 2)
cbmc <- ScaleData(cbmc)
cbmc <- RunPCA(cbmc, reduction.name = "apca")

RNA 和 ADT 的归一化方式不同:RNA 常用 LogNormalize,ADT 用 CLR(margin = 2 意为按细胞做 CLR)。两层分别做完 PCA 后,用 WNN 把它们的邻居结构加权合并,再在合并图上聚类和降维:

# WNN:根据两个 reduction 同时找邻居
cbmc <- FindMultiModalNeighbors(
  cbmc,
  reduction.list = list("pca", "apca"),
  dims.list = list(1:30, 1:18)
)

# 在 WNN 图上做 UMAP 和聚类
cbmc <- RunUMAP(cbmc, nn.name = "weighted.nn", reduction.name = "wnn.umap")
cbmc <- FindClusters(cbmc, graph.name = "wsnn", resolution = 0.5)

# 可视化
DimPlot(cbmc, reduction = "wnn.umap", label = TRUE)

跑完得到的 cbmc@meta.data 里会新增一列 seurat_clustersReductions(cbmc) 里会多出 wnn.umap。比较三张 UMAP(只用 RNA、只用 ADT、WNN 联合)通常会看到:WNN 版本在分群边界上更干净,尤其是 T 细胞内部的 CD4/CD8 亚群。

后续可做的分析

10x Multiome(RNA + ATAC)分析思路类似,但 ATAC 层要用 Signac,归一化方法是 TF-IDF + SVD,后面在 10 scATAC-seq 分析 里会再讲。

参考资源