空间转录组: Visium HD 数据集分析 (2)

简介: 空间转录组: Visium HD 数据集分析 (2)

引言

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

QC 质量控制

我们使用 SpotSweeper 对子集化的 16 µm 数据进行质量控制。

# calculate per-cell QC metrics
mt <- grepl("^MT-", rownames(.vhd16))
.vhd16 <- addPerCellQCMetrics(.vhd16, subsets=list(mt=mt))
# determine outliers based on 
# - low log-library size
# - few uniquely detected features
# - high mitochondrial count fraction
.vhd16 <- localOutliers(.vhd16, metric="sum", direction="lower", log=TRUE)
.vhd16 <- localOutliers(.vhd16, metric="detected", direction="lower", log=TRUE)
.vhd16 <- localOutliers(.vhd16, metric="subsets_mt_percent", direction="higher", log=TRUE)
.vhd16$discard <- 
    .vhd16$sum_outliers | 
    .vhd16$detected_outliers | 
    .vhd16$subsets_mt_percent_outliers
# tabulate number of bins retained 
# vs. removed by any criterion 
table(.vhd16$discard)

我们可以将 SpotSweeper 在空间中识别的局部异常值可视化:

plotCoords(.vhd16, point_shape=15, annotate="discard") + ggtitle("discard") +
plotCoords(.vhd16, point_shape=15, annotate="sum_outliers") + ggtitle("low_lib_size") +
plotCoords(.vhd16, point_shape=15, annotate="detected_outliers") + ggtitle("low_n_features") +
plot_layout(nrow=1, guides="collect") & 
    theme(
        plot.title=element_text(hjust=0.5),
        legend.key.size=unit(0, "lines")) &
    guides(col=guide_legend(override.aes=list(size=3))) & 
    scale_color_manual("discard", values=c("lavender", "purple"))

最后,我们将 Visium HD 16 µm 对象子集到通过 QC 的容器中:

.vhd16 <- .vhd16[, !.vhd16$discard]
dim(.vhd16)

聚类

首先,我们确定目标区域中的高变异基因(HVG):

.vhd16 <- logNormCounts(.vhd16)
dec <- modelGeneVar(.vhd16)
hvg <- getTopHVGs(dec, n=3e3)

首先通过一对空间核函数捕捉基因表达在空间上的变化,接着进行降维处理,再通过图聚类方法划分出不同的空间区域。

# set seed for random number generation
# in order to make results reproducible
set.seed(112358)
# 'Banksy' parameter settings
k <- 8   # consider first order neighbors
l <- 0.2 # use little spatial information
a <- "logcounts"
xy <- c("array_row", "array_col")
# restrict to selected features
tmp <- .vhd16[hvg, ]
# compute spatially aware 'Banksy' PCs
tmp <- computeBanksy(tmp, assay_name=a, coord_names=xy, k_geom=k)
tmp <- runBanksyPCA(tmp, lambda=l, npcs=20)
reducedDim(.vhd16, "PCA") <- reducedDim(tmp)
## run UMAP (for visualization purposes only)
# .vhd16 <- runUMAP(.vhd16, dimred="PCA")
# build cellular shared nearest-neighbor (SNN) graph
g <- buildSNNGraph(.vhd16, use.dimred="PCA", type="jaccard", k=20)
# cluster using Leiden community detection algorithm
k <- cluster_leiden(g, objective_function="modularity", resolution=1.2)
table(.vhd16$Banksy <- factor(k$membership))

接下来,我们可以进行差异基因表达(DGE)分析,以识别每个聚类的标记基因;我们还计算所选标记基因在各聚类中的平均表达水平:

# differential gene expression analysis
mgs <- findMarkers(.vhd16, groups=.vhd16$Banksy, direction="up")
# select for a few markers per cluster
top <- lapply(mgs, \(df) rownames(df)[df$Top <= 2])
top <- unique(unlist(top))
# average expression by clusters
pbs <- aggregateAcrossCells(.vhd16, 
    ids=.vhd16$Banksy, subset.row=top, 
    use.assay.type="logcounts", statistics="mean")

每个簇中的标记基因可以通过热图可视化:

# visualize averages z-scaled across clusters
pheatmap(
    mat=t(assay(pbs)), scale="column", breaks=seq(-2, 2, length=101), 
    cellwidth=10, cellheight=10, treeheight_row=5, treeheight_col=5)

或者,我们可以可视化空间中选定标记的 bin-wise 表达:

gs <- c("MMP2", "PIGR", "IGHG1")
ps <- lapply(gs, \(.) plotCoords(.vhd16, annotate=., point_shape=15, 
                                 point_size=0.8, assay_name="logcounts"))
wrap_plots(ps, nrow=1) & theme(
  legend.key.width=unit(0.5, "lines"),
  legend.key.height=unit(1, "lines")) &
  scale_color_gradientn(colors=rev(hcl.colors(9, "Rocket")))

相关文章
|
3月前
|
编解码 数据可视化 数据挖掘
空间转录组: Visium HD 数据集分析 (1)
空间转录组: Visium HD 数据集分析 (1)
292 27
空间转录组: Visium HD 数据集分析 (1)
|
3月前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
555 30
|
2月前
|
机器学习/深度学习 人工智能 并行计算
Transformer的核心:自注意力机制
自注意力机制是Transformer的核心,让序列中每个元素直接关联所有其他元素,实现全局信息交互。相比RNN的顺序处理和CNN的局部感知,它能并行计算、捕捉长距离依赖,并提供可解释的权重分布,彻底改变了序列建模方式,成为大模型崛起的关键基石。(239字)
|
2月前
|
Java 开发者
Java高级技术深度解析:性能优化与架构设计
本文深入解析Java高级技术,涵盖JVM性能调优、并发编程、内存模型与架构设计。从G1/ZGC垃圾回收到CompletableFuture异步处理,剖析底层机制与实战优化策略,助力构建高性能、高可用的Java系统。
269 47
|
6月前
|
移动开发 编解码 数据挖掘
空间转录组:从R导入数据
空间转录组:从R导入数据
空间转录组:从R导入数据
|
2月前
|
机器学习/深度学习 存储 自然语言处理
从文字到向量:Transformer的语言数字化之旅
向量化是将文字转化为数学向量的过程,使计算机能理解语义。通过分词、构建词汇表、词嵌入与位置编码,文本被映射到高维空间,实现语义相似度计算、搜索、分类等智能处理,是NLP的核心基础。
|
2月前
|
编解码 数据可视化 数据挖掘
空间转录组: Visium HD 数据集分析 (3)
空间转录组: Visium HD 数据集分析 (3)
|
2月前
|
人工智能 监控 算法
Transformer模型训练全解析:从数据到智能的炼金术
模型训练是让AI从数据中学习规律的过程,如同教婴儿学语言。预训练相当于通识教育,为模型打下通用知识基础;后续微调则针对具体任务。整个过程包含数据准备、前向传播、损失计算、反向更新等步骤,需克服过拟合、不稳定性等挑战,结合科学与艺术,最终使模型具备智能。
|
2月前
|
存储 安全 网络协议
阿里云服务器经济型e、通用算力型u2i、计算型c9i、通用型g9i、内存型r9i实例详解与选购参考
在阿里云当前的活动中,可供用户挑选的云服务器实例规格丰富多样,主要包括经济型e、通用算力型u2i、计算型c9i、通用型g9i以及内存型r9i,常常感到无所适从。这些实例各具特色,性能各异,如何根据自身需求做出明智选择,成为众多用户关注的焦点。本文将详细解析这五大实例的性能特点、适用场景及选购建议,旨在帮助用户轻松挑选出最适合自己的云服务器实例,以供参考和选择。

热门文章

最新文章