单细胞分析:多模态 reference mapping (1)

简介: 单细胞分析:多模态 reference mapping (1)

引言

本文介绍了如何在Seurat软件中将查询数据集与经过注释的参考数据集进行匹配。以一个实例来说,我们把10X Genomics公司早期发布的一个包含2700个外周血单核细胞(PBMC)的单细胞RNA测序(scRNA-seq)数据集,与我们最近创建的一个使用228种抗体测量的、包含162,000个PBMC的CITE-seq参考数据集进行匹配。这个例子用来说明,在参考数据集的帮助下进行的有监督分析,是如何帮助我们识别那些仅通过无监督分析难以发现的细胞状态。在另一个例子中,我们展示了如何将来自不同个体的人类骨髓细胞(Human BMNC)的人类细胞图谱(Human Cell Atlas)数据集,有序地映射到一个统一的参考框架上。

我们之前利用参考映射的方法来标注查询数据集中的细胞标签。在Seurat v4版本中,大幅提高了执行集成任务,包括参考映射的速度和内存效率,并且还新增了将查询细胞投影到之前计算好的UMAP(Uniform Manifold Approximation and Projection,均匀流形近似和投影)可视化界面的功能。

内容

在本示例中,我们将展示如何利用一个已经建立的参考数据集来解读单细胞RNA测序(scRNA-seq)查询:

  1. 根据参考数据集定义的细胞状态集,对每个查询细胞进行标注。
  2. 将每个查询细胞投影到之前计算完成的UMAP可视化界面上。
  3. 估算在CITE-seq参考数据集中测量到的表面蛋白的预测水平。

要运行本示例,请确保安装了Seurat v4,该软件可在CRAN上下载。同时,您还需要安装SeuratDisk包。

library(Seurat)
library(ggplot2)
library(patchwork)

options(SeuratData.repo.use = "http://seurat.nygenome.org")

Example 1:绘制人类外周血细胞图谱

Data

我们从最近的论文中加载 reference,并可视化预先计算的 UMAP。

reference <- readRDS("/brahms/hartmana/vignette_data/pbmc_multimodal_2023.rds")

DimPlot(object = reference, reduction = "wnn.umap", group.by = "celltype.l2", label = TRUE, label.size = 3, repel = TRUE) + NoLegend()

img

Mapping

为了演示与此多模式参考的映射,我们将使用由 10x Genomics 生成并可通过 SeuratData 获取的 2,700 个 PBMC 数据集。

library(SeuratData)
InstallData('pbmc3k')

pbmc3k <- LoadData('pbmc3k')
pbmc3k <- UpdateSeuratObject(pbmc3k)

参考集是通过 SCTransform() 函数进行标准化处理的,因此我们同样采用这一方法来对查询集进行标准化处理。

pbmc3k <- SCTransform(pbmc3k, verbose = FALSE)

接下来,我们在参考集与查询集之间确立对应关系。根据论文中的描述,本例中我们采用了预先计算的监督主成分分析(Supervised PCA,简称spca)变换。我们建议对CITE-seq数据集采用监督主成分分析方法,并将在本指南的下一个部分展示如何执行这一变换。当然,您也可以选择使用传统的主成分分析(PCA)变换。

anchors <- FindTransferAnchors(
  reference = reference,
  query = pbmc3k,
  normalization.method = "SCT",
  reference.reduction = "spca",
  dims = 1:50
)

接下来,我们将细胞类型的标签和蛋白质信息从参考集转移到查询集。同时,我们还把查询集的数据映射到参考集的UMAP(均匀流形逼近和投影)结构上。

pbmc3k <- MapQuery(
  anchorset = anchors,
  query = pbmc3k,
  reference = reference,
  refdata = list(
    celltype.l1 = "celltype.l1",
    celltype.l2 = "celltype.l2",
    predicted_ADT = "ADT"
  ),
  reference.reduction = "spca", 
  reduction.model = "wnn.umap"
)
  • MapQuery 在做什么?

MapQuery() 函数封装了三个子函数:TransferData()IntegrateEmbeddings()ProjectUMAP()TransferData() 函数的作用是传递细胞类型的标签并估算 ADT(Ambient Dolly Technology)的数值。而 IntegrateEmbeddings()ProjectUMAP() 函数则用于将查询数据集映射到参考数据集的 UMAP(均匀流形逼近和投影)结构上。以下是使用这些中间函数完成相同操作的代码示例:

pbmc3k <- TransferData(
  anchorset = anchors, 
  reference = reference,
  query = pbmc3k,
  refdata = list(
    celltype.l1 = "celltype.l1",
    celltype.l2 = "celltype.l2",
    predicted_ADT = "ADT")
)
pbmc3k <- IntegrateEmbeddings(
  anchorset = anchors,
  reference = reference,
  query = pbmc3k, 
  new.reduction.name = "ref.spca"
)
pbmc3k <- ProjectUMAP(
  query = pbmc3k, 
  query.reduction = "ref.spca", 
  reference = reference, 
  reference.reduction = "spca", 
  reduction.model = "wnn.umap"
)

探索映射结果

目前,我们能够对2700个查询细胞进行可视化展示。这些细胞已经被映射到由参考数据集定义的UMAP(均匀流形逼近和投影)视图上,并且每个细胞都获得了两个不同详细程度(第一级和第二级)的注释信息。

p1 = DimPlot(pbmc3k, reduction = "ref.umap", group.by = "predicted.celltype.l1", label = TRUE, label.size = 3, repel = TRUE) + NoLegend()
p2 = DimPlot(pbmc3k, reduction = "ref.umap", group.by = "predicted.celltype.l2", label = TRUE, label.size = 3 ,repel = TRUE) + NoLegend()
p1 + p2

通过参考映射数据集,我们能够辨识出在对查询数据集进行无监督分析时难以区分的细胞类型。例如,这包括了浆细胞样树突状细胞(pDC)、造血干细胞和祖细胞(HSPC)、调节性T细胞(Treg)、CD8 初始T细胞、CD56+ 自然杀伤(NK)细胞、记忆B细胞和初始B细胞以及浆细胞。对于每个预测的细胞类型,系统都会给出一个0到1范围内的评分。

FeaturePlot(pbmc3k, features = c("pDC", "CD16 Mono", "Treg"),  reduction = "ref.umap", cols = c("lightgrey", "darkred"), ncol = 3) & theme(plot.title = element_text(size = 10))

library(ggplot2)
plot <- FeaturePlot(pbmc3k, features = "CD16 Mono",  reduction = "ref.umap", cols = c("lightgrey", "darkred"))  + ggtitle("CD16 Mono") + theme(plot.title = element_text(hjust = 0.5, size = 30)) + labs(color = "Prediction Score") +  xlab("UMAP 1") + ylab("UMAP 2") + 
  theme(axis.title = element_text(size = 18), legend.text = element_text(size = 18), legend.title = element_text(size = 25)) 
ggsave(filename = "../output/images/multimodal_reference_mapping.jpg", height = 7, width = 12, plot = plot, quality = 50)

我们可以通过检查特定标记基因的表达模式来核实我们的预测结果。举例来说,已有研究指出CLEC4C和LIR4是浆细胞样树突状细胞(pDC)的标志性基因,这与我们的预测相符。同样,如果我们通过差异表达分析来筛选调节性T细胞(Treg)的标记,我们能够识别出一组标准标记基因,包括RTKN2、CTLA4、FOXP3和IL2RA。

Idents(pbmc3k) <- 'predicted.celltype.l2'
VlnPlot(pbmc3k, features = c("CLEC4C", "LILRA4"), sort = TRUE) + NoLegend()

treg_markers <- FindMarkers(pbmc3k, ident.1 = "Treg", only.pos = TRUE, logfc.threshold = 0.1)
print(head(treg_markers))


##                       p_val avg_log2FC pct.1 pct.2    p_val_adj
## AC004854.4     4.795409e-26   7.800900 0.042 0.000 6.028789e-22
## RP11-297N6.4   4.795409e-26   7.800900 0.042 0.000 6.028789e-22
## RTKN2          4.795409e-26   7.800900 0.042 0.000 6.028789e-22
## CTD-2020K17.4  4.795409e-26   7.800900 0.042 0.000 6.028789e-22
## RP11-1399P15.1 2.782841e-18   4.172869 0.292 0.021 3.498588e-14
## IL2RA          1.808612e-14   4.137935 0.208 0.014 2.273787e-10

最终,我们能够展示根据 CITE-seq 参考数据推断出的表面蛋白表达水平的可视化结果。

DefaultAssay(pbmc3k) <- 'predicted_ADT'
# see a list of proteins: rownames(pbmc3k)
FeaturePlot(pbmc3k, features = c("CD3-1", "CD45RA", "IgD"), reduction = "ref.umap", cols = c("lightgrey", "darkgreen"), ncol = 3)

计算新的 UMAP 可视化

在之前的案例中,我们将查询细胞映射到基于参考数据集生成的 UMAP 结构后进行了可视化展示。维持一致的可视化方式有助于我们解读新的数据集。然而,如果查询数据集中包含了在参考数据集中未出现的细胞状态,这些状态将会映射到参考数据集中最为相似的细胞类型上。这是 UMAP 软件包所预期的工作方式,但有时也可能因此忽视了查询数据集中存在的、可能具有研究价值的新细胞类型。

在我们的论文中,我们对一个包含发育中和已分化的中性粒细胞的查询数据集进行了映射,这些细胞在我们的参考数据集中并未包含。我们发现,在将参考数据集和查询数据集合并后,重新计算一个新的 UMAP(称为“从头可视化”)有助于识别这些细胞群体,这一点在补充图 8 中有展示。在“从头可视化”中,查询数据集中的独特细胞状态仍然保持独立。在这个例子中,2700个外周血单核细胞(PBMC)并没有包含独特的细胞状态,但我们将展示如何计算这种可视化。

我们想强调的是,如果用户尝试映射的数据集样本不是 PBMC,或者包含了参考数据集中未出现细胞类型,那么进行一次“从头可视化”是理解和分析他们数据集的一个重要步骤。

reference <- DietSeurat(reference, counts = FALSE, dimreducs = "spca")
pbmc3k <- DietSeurat(pbmc3k, counts = FALSE, dimreducs = "ref.spca")

#merge reference and query
reference$id <- 'reference'
pbmc3k$id <- 'query'
refquery <- merge(reference, pbmc3k)
refquery[["spca"]] <- merge(reference[["spca"]], pbmc3k[["ref.spca"]])
refquery <- RunUMAP(refquery, reduction = 'spca', dims = 1:50)
DimPlot(refquery, group.by = 'id', shuffle = TRUE)

相关文章
|
5月前
|
存储 JSON API
aipy实战:Deepseek-V3、Hunyuan&Qwen分析618平板攻略
Aipy是一款结合LLM与Python的智能工具,用户通过简单指令即可让LLM分析并生成代码,实时解决问题。本次v0.1.28版本新增联网搜索、案例分享等功能,并引入混元和Qwen模型。测评中,三个模型完成“618平板选购攻略”任务表现各异:deepseek-v3界面精美、信息全面但价格有偏差;hunyuan-turbos-latest信息不全但界面简洁;qwen-plus-latest推荐合理但数据失真。总体而言,Aipy在操作友好性和分析界面上显著提升,适合解决实际问题。
|
5月前
|
机器学习/深度学习 人工智能 算法
大型多模态推理模型技术演进综述:从模块化架构到原生推理能力的综合分析
该研究系统梳理了大型多模态推理模型(LMRMs)的技术发展,从早期模块化架构到统一的语言中心框架,提出原生LMRMs(N-LMRMs)的前沿概念。论文划分三个技术演进阶段及一个前瞻性范式,深入探讨关键挑战与评估基准,为构建复杂动态环境中的稳健AI系统提供理论框架。未来方向聚焦全模态泛化、深度推理与智能体行为,推动跨模态融合与自主交互能力的发展。
322 13
大型多模态推理模型技术演进综述:从模块化架构到原生推理能力的综合分析
|
6月前
|
人工智能 自然语言处理 DataWorks
DataWorks Copilot 集成Qwen3-235B-A22B混合推理模型,数据开发与分析效率再升级!
阿里云DataWorks平台正式接入Qwen3模型,支持最大235B参数量。用户可通过DataWorks Copilot智能助手调用该模型,以自然语言交互实现代码生成、优化、解释及纠错等功能,大幅提升数据开发与分析效率。Qwen3作为最新一代大语言模型,具备混合专家(MoE)和稠密(Dense)架构,适应多种应用场景,并支持MCP协议优化复杂任务处理。目前,用户可通过DataWorks Data Studio新版本体验此功能。
523 23
DataWorks Copilot 集成Qwen3-235B-A22B混合推理模型,数据开发与分析效率再升级!
|
6月前
|
人工智能 自然语言处理 DataWorks
Qwen3 X DataWorks :为数据开发与分析加满Buff !
阿里云DataWorks平台正式接入Qwen3模型,支持最大235B参数量。用户可通过DataWorks Copilot智能助手调用该模型,以自然语言交互实现代码生成、优化、解释及纠错等功能,大幅提升数据开发与分析效率。Qwen3作为最新一代大语言模型,具备混合专家(MoE)和稠密(Dense)架构,适应多种应用场景,并支持MCP协议优化复杂任务处理。目前,用户可通过DataWorks Data Studio新版本体验此功能。
294 27
|
5月前
|
自然语言处理 监控 安全
阿里云发布可观测MCP!支持自然语言查询和分析多模态日志
阿里云可观测官方发布了Observable MCP Server,提供了一系列访问阿里云可观测各产品的工具能力,包含阿里云日志服务SLS、阿里云应用实时监控服务ARMS等,支持用户通过自然语言形式查询
578 0
阿里云发布可观测MCP!支持自然语言查询和分析多模态日志
|
6月前
|
存储 自然语言处理 前端开发
2025年大模型发展脉络:深入分析与技术细节
本文深入剖析2025年大模型发展脉络,涵盖裸模型与手工指令工程、向量检索、文本处理与知识图谱构建、自动化提示生成、ReAct多步推理及AI Agent崛起六大模块。从技术细节到未来趋势,结合最新进展探讨核心算法、工具栈与挑战,强调模块化、自动化、多模态等关键方向,同时指出计算资源、数据质量和安全伦理等问题。适合关注大模型前沿动态的技术从业者与研究者。
2092 9
|
7月前
|
数据采集 机器学习/深度学习 数据挖掘
基于DeepSeek的多模态融合技术:实现图像、视频与音频的协同分析
随着多媒体数据的爆炸式增长,单一模态数据分析已无法满足复杂场景需求。多模态融合技术通过整合图像、视频、音频等多源数据,提供更全面精准的分析结果。DeepSeek作为强大的深度学习框架,在多模态融合领域展现巨大潜力。本文深入探讨基于DeepSeek的多模态融合技术,结合代码示例展示其在图像、视频与音频协同分析中的实际应用,涵盖数据预处理、特征融合、模型训练及评估等环节,并展望未来发展方向。
1421 13
|
7月前
|
人工智能 安全
湖南省大模型备案情况分析及新通知对企业的影响
本文分析了湖南省大模型备案情况,涵盖行业应用领域、备案时间及未来发展方向,并结合2025年3月发布的生成式人工智能备案/登记专项通知,探讨其对企业的影响。湖南在人工智能领域的布局积极,大模型已应用于多个行业。新通知通过提升合规意识、加强监督检查和促进高质量发展,助力企业规范运营并推动产业健康发展。企业应主动适应政策,探索创新应用,为湖南乃至全国的人工智能发展贡献力量。
|
8月前
|
人工智能 运维 监控
Zabbix告警分析新纪元:本地DeepSeek大模型实现智能化告警分析
本文由Zabbix中国峰会演讲嘉宾张世宏撰写,介绍如何通过集成Zabbix监控系统与深度求索(DeepSeek)AI助手,构建智能化告警处理方案。该方案利用Webhook机制传递告警信息,借助DeepSeek的智能分析能力,帮助运维团队快速识别问题根源并提供解决方案。文章详细描述了技术架构、环境搭建、Webhook配置及实际案例,展示了AI在运维领域的应用前景和优势。
1149 0

热门文章

最新文章