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

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

引言

本系列开启 R 中单细胞RNA-seq数据分析教程,持续更新,欢迎关注,转发!

基于 Seurat 的标签转移

前面提到的两种方法虽然简单明了,但这种简单性也限制了它们的表现。在这些方法中,签名列表中的每个基因都被同等对待,但实际上,这些基因在区分细胞类型时的作用可能大不相同。如果忽视了这些基因重要性的差异,那么分析结果很难达到最佳效果。因此,你可能需要尝试一些更高级的方法,而不仅仅是简单地计算相关性。

接下来,我们介绍目前最常用的标签转移方法——Seurat 中实现的基于锚点的标签转移。这种方法的原理并不复杂。它首先将参考数据集中使用的降维方法(例如 PCA)应用于查询数据。然后,它会在两个数据集之间寻找所谓的“锚点”。所谓锚点,是指参考数据集中的一个细胞和查询数据集中的一个细胞,它们在经过降维变换后的数据中互为最近邻。这些锚点还会经过进一步筛选,要求它们在原始基因表达空间中具有一定相似性。之后,会构建一个权重矩阵,用来定义每个查询细胞与每个锚点之间的关系。最后,通过这个权重矩阵,将锚点细胞的标签或值传递给查询细胞。

这些步骤已经在 Seurat 中实现了两个函数:FindTransferAnchorsTransferData。以下是将这些方法应用于我们的参考和查询脑类器官数据集的示例脚本。

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))

动动您发财的小手点个赞吧!欢迎转发!

相关文章
|
4月前
|
移动开发 编解码 数据挖掘
空间转录组:从R导入数据
空间转录组:从R导入数据
空间转录组:从R导入数据
|
6月前
|
数据可视化 数据处理
CUT&Tag 数据处理和分析教程(9)
CUT&Tag 数据处理和分析教程(9)
157 15
CUT&Tag 数据处理和分析教程(9)
|
6月前
|
数据挖掘
scRNA-seq 细胞通信 分析教程(长文+代码)
scRNA-seq 细胞通信 分析教程(长文+代码)
190 11
scRNA-seq 细胞通信 分析教程(长文+代码)
|
11月前
|
Ubuntu Shell Linux
pyenv 管理多个 Python 版本(1)
pyenv 管理多个 Python 版本(1)
417 86
pyenv 管理多个 Python 版本(1)
|
11月前
|
Shell Python
使用 pyenv 来管理多个 Python 版本(2)
使用 pyenv 来管理多个 Python 版本(2)
325 71
使用 pyenv 来管理多个 Python 版本(2)
|
Java 关系型数据库 BI
基于springboot企业客户信息反馈平台
基于springboot企业客户信息反馈平台
|
数据可视化
绘制热图时看不出颜色差异?四种方式转换处理使结果显而“易”见
绘制热图时看不出颜色差异?四种方式转换处理使结果显而“易”见
20753 2
|
11月前
|
前端开发 数据挖掘 测试技术
R中单细胞RNA-seq分析教程 (6)
R中单细胞RNA-seq分析教程 (6)
492 12
R中单细胞RNA-seq分析教程 (6)
|
Java 数据挖掘 BI
如何使用Hutool插入图片到Excel中?
如何使用Hutool插入图片到Excel中?
744 0
下一篇
开通oss服务