前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >空间单细胞|Slide-seq分析、可视化与整合(2)

空间单细胞|Slide-seq分析、可视化与整合(2)

作者头像
数据科学工厂
发布2024-07-26 18:14:38
210
发布2024-07-26 18:14:38
举报
文章被收录于专栏:数据科学(冷冻工厂)

数据集

在本文中,我们将对利用Slide-seq v2技术获得的小鼠海马区数据集进行深入分析。

为了方便数据获取,您可以利用我们的SeuratData包,具体操作示例如下。一旦安装了该数据集,您只需输入?ssHippo,即可查看构建Seurat对象时所使用的命令列表。

代码语言:javascript
复制
InstallData("ssHippo")

slide.seq <- LoadData("ssHippo")

空间变化特征的识别

正如Visium教程中所述,我们可以通过两种主要方法来识别具有空间变异性的特征:一种是在预先标记的解剖区域之间进行差异表达分析,另一种是采用统计方法来评估特征与空间位置的相关性。

在本例中,我们展示了后一种方法,即通过FindSpatiallyVariableFeatures()函数实现的Moran's I统计量,只需设置方法为'moransi'即可。Moran's I能够计算整体的空间自相关性,并提供一个类似于相关系数的统计值,用以衡量特征与空间位置的相关程度。这允许我们根据特征表达的空间变异性进行排序。为了快速估算这一统计值,我们采用了一种基本的分箱策略,该策略会在Slide-seq puck上绘制一个矩形网格,并计算每个网格内特征和位置的平均值。x轴和y轴上的分箱数量可以通过x.cuts和y.cuts参数分别控制。另外,虽然不是强制要求,但安装可选的Rfast2包(通过运行install.packages('Rfast2'))可以显著提高计算效率,从而减少运行时间。

代码语言:javascript
复制
DefaultAssay(slide.seq) <- "SCT"
slide.seq <- FindSpatiallyVariableFeatures(slide.seq, assay = "SCT", slot = "scale.data", features = VariableFeatures(slide.seq)[1:1000],
    selection.method = "moransi", x.cuts = 100, y.cuts = 100)

现在我们可视化 Moran’s I 识别的前 6 个特征的表达。

代码语言:javascript
复制
SpatialFeaturePlot(slide.seq, features = head(SpatiallyVariableFeatures(slide.seq, selection.method = "moransi"),
    6), ncol = 3, alpha = c(0.1, 1), max.cutoff = "q95")

使用 RCTD 进行空间反卷积

FindTransferAnchors功能可以用于整合来自空间转录组数据集的单个斑点数据,而Seurat v5版本还增加了对Robust Cell Type Decomposition(鲁棒细胞类型分解)的支持。这是一种计算技术,当提供单细胞RNA测序(scRNA-seq)参考数据时,可以用来从空间数据集中反推斑点级别的数据。RCTD已被证实能够精确地对来自SLIDE-seq、Visium和10x公司的Xenium in-situ空间平台等多种技术的空间数据进行注释。

要执行RCTD,我们首先需要从GitHub上安装spacexr包,这个包提供了RCTD的实现。

代码语言:javascript
复制
devtools::install_github("dmcable/spacexr", build_vignettes = FALSE)

从 Seurat 查询和参考对象中提取计数、聚类和点信息,以构建 RCTD 用于注释的参考和 SpatialRNA 对象。

代码语言:javascript
复制
library(spacexr)

# set up reference
ref <- readRDS("../data/mouse_hippocampus_reference.rds")
ref <- UpdateSeuratObject(ref)
Idents(ref) <- "celltype"

# extract information to pass to the RCTD Reference function
counts <- ref[["RNA"]]$counts
cluster <- as.factor(ref$celltype)
names(cluster) <- colnames(ref)
nUMI <- ref$nCount_RNA
names(nUMI) <- colnames(ref)
reference <- Reference(counts, cluster, nUMI)

# set up query with the RCTD function SpatialRNA
slide.seq <- SeuratData::LoadData("ssHippo")
counts <- slide.seq[["Spatial"]]$counts
coords <- GetTissueCoordinates(slide.seq)
colnames(coords) <- c("x", "y")
coords[is.na(colnames(coords))] <- NULL
query <- SpatialRNA(coords, counts, colSums(counts))

利用参照数据集和待分析的数据集,我们对数据集进行了细胞类型的标注,并将这些标签整合到了待查询的Seurat对象中。Robust Cell Type Decomposition(RCTD)算法支持并行计算,这意味着可以通过分配更多的处理器核心来提升运算速度。

代码语言:javascript
复制
RCTD <- create.RCTD(query, reference, max_cores = 8)
RCTD <- run.RCTD(RCTD, doublet_mode = "doublet")
slide.seq <- AddMetaData(slide.seq, metadata = RCTD@results$results_df)

然后,展示RCTD的注释结果。由于我们在双细胞检测模式下执行了RCTD分析,该算法为每个条形码或斑点指定了主要细胞类型(first_type)和次要细胞类型(second_type)。

代码语言:javascript
复制
p1 <- SpatialDimPlot(slide.seq, group.by = "first_type")
p2 <- SpatialDimPlot(slide.seq, group.by = "second_type")
p1 | p2
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 冷冻工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据集
  • 空间变化特征的识别
  • 使用 RCTD 进行空间反卷积
相关产品与服务
GPU 云服务器
GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于生成式AI,自动驾驶,深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档