R中单细胞RNA-seq分析教程 (13)

简介: R中单细胞RNA-seq分析教程 (13)

引言

本系列开启 R 中scRNA-seq数据分析教程,持续更新,欢迎关注,转发!想要获取更多教程内容或者生信分析服务可以添加文末的学习交流群或客服QQ:941844452。

基于 Seurat 的标签转移方法

目前最主流的标签转移方法,也就是 Seurat 中实现的基于锚点的标签转移。它的原理不算太复杂。首先,它会把参考数据集中用过的降维方式(比如 PCA)同样应用到查询数据上。然后,它会尝试找出两个数据集之间的“锚点”。所谓锚点,就是一对细胞——一个来自参考数据,一个来自查询数据——它们在变换后的数据上计算距离时互为最近邻。这些锚点还会再经过筛选,要求两细胞在原始表达空间上有一定相似性。接着,会生成一个权重矩阵,用来描述每个查询细胞和每个锚点之间的关系。最后,这个权重矩阵会被用来根据权重,把锚点参考细胞的标签或数值传递给查询细胞。

这些步骤都已经被整合到 Seurat 的两个函数中:FindTransferAnchors 和 TransferData。下面是我们针对参考和查询大脑类器官数据集提供的示例代码。

anchors <- FindTransferAnchors(reference = seurat_ref, query = seurat_DS1, dims = 1:30, npcs = 30)
predictions <- TransferData(anchorset = anchors, refdata = seurat_ref$celltype, dims = 1:30)
seurat_DS1$celltype_transfer <- predictions$predicted.id

plot1 <- UMAPPlot(seurat_DS1, label=T)
plot2 <- UMAPPlot(seurat_DS1, group.by="celltype_transfer", label=T)
plot1 | plot2

TransferData 函数的输出不仅有预测的标签,还提供了更多细节。对于需要转移的分类信息(比如这里的细胞类型标签),输出数据框中还包括每个细胞针对不同参考细胞类型的预测得分,这些得分可以理解为每个查询细胞属于某种细胞类型的概率估计。这样,我们就可以把这些得分汇总到查询细胞的群集上,进行对比分析。

pred_scores_sum2cl <- t(sapply(levels(seurat_DS1@active.ident), function(cl)
  colMeans(predictions[which(seurat_DS1@active.ident == cl),-c(1,ncol(predictions))]) ))

heatmap.2(pred_scores_sum2cl, scale="none", trace="none", key=F, keysize=0.5, margins=c(15,17),
          labRow = colnames(avg_expr_ds1), labCol = unique(seurat_ref$celltype), cexRow=0.8, cexCol=0.8,
          col=colorRampPalette(rev(c("#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac")))(30))

其他方法

上面只介绍了两种(或者三种)方法,但其实还有更多选择。比如,一些数据整合方法,像之前提到的 CSS 和 Harmony,就能支持将查询数据投影到参考数据上(CSS 本身就支持这个功能,而 Harmony 整合过的参考数据可以通过 Symphony 来实现)。不过它们的局限在于,参考数据必须先用这些方法处理过。另外,还有基于深度学习的方法,可以用来构建参考数据集的模型,然后应用到其他数据集上进行查询。比如 Theis 实验室开发的 Sfaira就是一例。但显然,这也要求参考数据得在这个框架下处理过。所有这些方法在特定情况下可能会比我们介绍的几种表现更好,但我们提到的这两种/三种方法对参考数据的分析要求没那么多限制,所以通常是我们会先尝试的。

不过,有一点得时刻记在心里:这些分析其实都默认参考数据集是完备的,也就是说,它包含了查询数据里所有的细胞类型或状态。但实际情况往往并非如此。所以,我们不能光靠跟参考数据的对比就下结论,还得再看看标记基因的表达情况,或者用一些定量的指标来评估投影出来的细胞类型或状态,跟查询数据里的细胞群体到底有多相似。

相关文章
|
9月前
|
人工智能 JavaScript 测试技术
构建智能 API 开发环境:在 Cursor 中连接 Apifox MCP Server
本文介绍了如何将Apifox MCP Server与Cursor结合,通过AI直接获取和理解API文档,大幅提升开发效率。首先需配置Apifox的Access Token和项目ID,并在Cursor中设置MCP连接。实际应用场景包括快速生成模型代码、同步更新接口文档与代码、生成CRUD操作、搜索API文档及自动生成测试用例。此外,还提供了管理多项目、安全性实践和优化AI响应质量的技巧。这种组合可显著减少从API规范到代码实现的时间,降低错误率并加速迭代过程,为开发者带来更高效的体验。
|
8月前
|
存储 数据挖掘 Python
单细胞 轨迹分析 教程(长文+代码)
单细胞 轨迹分析 教程(长文+代码)
359 10
单细胞 轨迹分析 教程(长文+代码)
|
11月前
|
JavaScript 前端开发 Shell
Flow-CLI 全新升级,轻松对接 Sonar 实现代码扫描和红线卡点
Flow-CLI 使用的典型场景如:自定义开发一个 Sonar 扫描步骤,以在流水中触发 Sonar 扫描,并以扫描结果作为红线卡点,以保证代码质量;对接三方自有审批平台,在发布前进行检查审批,审批通过才允许发布。接下来,我们就以对接 Sonar 服务为例,手把手教你开发一个带红线功能的 Sonar 扫描步骤。
723 125
|
11月前
|
存储 人工智能 Serverless
AI 短剧遇上函数计算,一键搭建内容创意平台
为了帮助更多内容创作者和企业快速实现 AI 短剧创作,函数计算 FC 联合百炼联合推出“AI 剧本生成与动画创作解决方案”,通过函数计算 FC 构建 Web 服务,结合百炼模型服务和 ComfyUI 生图平台,实现从故事剧本撰写、插图设计、声音合成和字幕添加到视频合成的一站式自动化流程。创作者只需通过简单操作,就能快速生成高质量的剧本,并一键转化为精美的动画。
789 109
|
11月前
|
人工智能 监控 安全
云端问道18期实践教学-AI 浪潮下的数据安全管理实践
本文主要介绍AI浪潮下的数据安全管理实践,主要分为背景介绍、Access Point、Bucket三个部分
419 54
|
6月前
|
存储 编解码 数据可视化
Hi-C 数据的可视化与注释
Hi-C 数据的可视化与注释
Hi-C 数据的可视化与注释
|
7月前
|
数据挖掘
scRNA-seq 细胞通信 分析教程(长文+代码)
scRNA-seq 细胞通信 分析教程(长文+代码)
287 11
scRNA-seq 细胞通信 分析教程(长文+代码)
|
7月前
单细胞RNA速率分析: scVelo
单细胞RNA速率分析: scVelo
单细胞RNA速率分析: scVelo
|
10月前
|
数据可视化 数据挖掘
R中单细胞RNA-seq分析教程 (9)
R中单细胞RNA-seq分析教程 (9)
R中单细胞RNA-seq分析教程 (9)
|
9月前
|
人工智能 缓存 监控
AI 网关需要具备的 10 大基本能力
我们认为 AI 网关并不是独立于 API 网关的新形态,本质也是一种 API 网关,区别在于针对 AI 场景的新需求专门做了扩展,它既是 API 网关的继承,也是 API 网关的演进。因此我们从 API 视角,对 AI 网关的能力做了分类,便于形成概念的共识。
406 12