空间转录组: 降维聚类+差异分析

简介: 空间转录组: 降维聚类+差异分析

引言

本系列讲解 空间转录组学 (Spatial Transcriptomics) 相关基础知识与数据分析教程,持续更新,欢迎关注,转发,文末有交流群!

降维

下一步的标准做法是使用主成分分析(PCA)进行降维,应用于 top HVGs(或 SVGs)集合。然后,top 主成分(PCs)的集合可以作为后续步骤的输入。

spe <- runPCA(spe, subset_row = sel)

此外,我们可以使用 UMAP 算法进行非线性降维,应用于 top PCs 的集合(默认 50 个)。前两个 UMAP 维度可以通过将它们绘制在 x 轴和 y 轴上用于可视化目的。

spe <- runUMAP(spe, dimred = "PCA")

聚类

接下来,我们在上述处理步骤之后,展示一些下游分析的简短示例。

在此,我们运行一种具有空间意识的聚类算法 BayesSpace,以识别空间域。

BayesSpace 专门为基于测序的 ST 数据开发,并考虑了测量的空间坐标。

# run BayesSpace clustering
.spe <- spatialPreprocess(spe, skip.PCA = TRUE)
.spe <- spatialCluster(.spe, nrep = 1000, burn.in = 100, q = 10, d = 20)

# cluster labels
table(spe$BayesSpace <- factor(.spe$spatial.cluster))

可视化

我们可以在 x-y 空间中把聚类标签可视化为空间域,并与该数据集附带的手工注释参考标签(ground_truth)进行比较。

# using plotting functions from ggspavis package
# and formatting using patchwork package
plotCoords(spe, annotate = "ground_truth") + 
plotCoords(spe, annotate = "BayesSpace") + 
  plot_layout() & 
  theme(legend.key.size = unit(0, "lines")) & 
  scale_color_manual(values = unname(pals::trubetskoy()))

table(spe$BayesSpace, spe$ground_truth, useNA = "ifany")

通过查看 top PCs 的空间分布,我们可以观察到表达变异的主要驱动因素是白质(WM)与非 WM 皮质层之间的区别。

pcs <- reducedDim(spe, "PCA")
pcs <- pcs[, seq_len(4)]
lapply(colnames(pcs), \(.) {
    spe[[.]] <- pcs[, .]
    plotCoords(spe, annotate = .)
}) |> 
    wrap_plots(nrow = 1) & coord_equal() & 
    geom_point(shape = 16, stroke = 0, size = 0.2) & 
    scale_color_gradientn(colors = pals::jet(), n.breaks = 3) & 
    theme_void() & theme(
        plot.title = element_text(hjust = 0.5), 
        legend.key.width = unit(0.2, "lines"), 
        legend.key.height = unit(0.8, "lines"))

差异表达

在将 spot 聚类以识别空间域之后,我们可以测试在空间域之间差异表达(DE)的基因;这些基因可视为空间域的标记基因。

在此,我们将使用成对 t 检验,并专门检测上调(而非下调),即所报告的标记基因应在该基因所属的聚类中表达更高。

# using scran package
mgs <- findMarkers(spe, groups = spe$BayesSpace, direction = "up")
top <- lapply(mgs, \(df) rownames(df)[df$Top <= 2])
length(top <- unique(unlist(top)))

我们可以将选定的标记基因可视化为热图(显示聚类水平的平均表达):

# compute cluster-wise averages
pbs <- aggregateAcrossCells(spe, 
    ids = spe$BayesSpace, subset.row = top, 
    use.assay.type = "logcounts", statistics = "mean")
# use gene symbols as feature names
mtx <- t(assay(pbs))
colnames(mtx) <- rowData(pbs)$gene_name
# using pheatmap package
pheatmap(mat = mtx, scale = "column")

或空间图(显示 spot 水平的表达值):

# gene-wise spatial plots
gs <- c("MBP", "PLP1", "NRGN", "SNAP25", "NEFL", "HPCAL1")
ps <- lapply(gs, \(.) {
    plotCoords(spe, 
        annotate = ., 
        feature_names = "gene_name", 
        assay_name = "logcounts") })
# figure arrangement
wrap_plots(ps, nrow = 2) & 
  theme(legend.key.width = unit(0.4, "lines"), 
        legend.key.height = unit(0.8, "lines")) & 
  scale_color_gradientn(colors = rev(hcl.colors(9, "Rocket")))

相关文章
|
存储 数据可视化
单细胞分析: Scanpy 核心绘图 (3)
单细胞分析: Scanpy 核心绘图 (3)
1393 0
单细胞分析: Scanpy 核心绘图 (3)
|
数据可视化 数据挖掘
空间转录组: DLPFC数据集分析 (3)
空间转录组: DLPFC数据集分析 (3)
472 83
空间转录组: DLPFC数据集分析 (3)
|
存储 编解码 移动开发
空间转录组:数据格式介绍
空间转录组:数据格式介绍
空间转录组:数据格式介绍
|
存储 数据可视化 数据挖掘
单细胞分析: Scanpy 核心绘图 (1)
单细胞分析: Scanpy 核心绘图 (1)
1055 4
|
缓存 JSON API
京东 item_get 接口对接全攻略:从入门到精通
京东item_get接口是获取商品详情的核心工具,支持价格、库存、图片等数据调取。本文详解对接流程、签名生成、Python调用示例及错误处理,涵盖权限申请、批量查询与最佳实践,助力开发者高效构建合规电商应用。(239字)
|
机器学习/深度学习 人工智能 测试技术
魔搭社区模型速递(3.16-3.22)
魔搭ModelScope本期社区进展:📟1177个模型,📁216个数据集,416个创新应用,📄 11篇内容
756 1
|
机器学习/深度学习 计算机视觉
《深度剖析:残差连接如何攻克深度卷积神经网络的梯度与退化难题》
残差连接通过引入“短路”连接,解决了深度卷积神经网络(CNN)中随层数增加而出现的梯度消失和退化问题。它使网络学习输入与输出之间的残差,而非直接映射,从而加速训练、提高性能,并允许网络学习更复杂的特征。这一设计显著提升了深度学习在图像识别等领域的应用效果。
972 13
|
Java 开发者 Spring
Spring bean的生命周期详解!
本文详细解析Spring Bean的生命周期及其核心概念,并深入源码分析。Spring Bean是Spring框架的核心,由容器管理其生命周期。从实例化到销毁,共经历十个阶段,包括属性赋值、接口回调、初始化及销毁等。通过剖析`BeanFactory`、`ApplicationContext`等关键接口与类,帮助你深入了解Spring Bean的管理机制。希望本文能助你更好地掌握Spring Bean生命周期。
1627 1
|
运维 监控 关系型数据库
【一文搞懂PGSQL】7. PostgreSQL + repmgr + witness 高可用架构
该文档介绍了如何构建基于PostgreSQL的高可用架构,利用repmgr进行集群管理和故障转移,并引入witness节点增强网络故障检测能力。repmgr是一款轻量级的开源工具,支持一键部署、自动故障转移及分布式节点管理。文档详细描述了环境搭建步骤,包括配置postgresql参数、安装与配置repmgr、注册集群节点以及配置witness节点等。此外,还提供了故障手动与自动切换的方法及常用命令,确保集群稳定运行。
|
分布式计算 安全 Hadoop
Hadoop 集群一直处于安全模式,强制退出后出现数据丢失警告。解决方法
本文介绍了Hadoop集群安全模式的相关命令和问题解决。当集群处于安全模式时,可使用`hdfs dfsadmin -safemode get`检查状态,`enter`进入,`leave`或`forceExit`离开。若因数据块不一致导致安全模式持续,可通过强制退出,然后删除丢失数据块的文件以恢复正常。如果遇到权限问题,可以使用`chmod`授权或关闭HDFS权限验证(不推荐),配置修改后需重启集群生效。
3145 0
Hadoop 集群一直处于安全模式,强制退出后出现数据丢失警告。解决方法