本系列讲解 空间转录组学 (Spatial Transcriptomics) 相关基础知识与数据分析教程[1],持续更新,欢迎关注,转发,文末有交流群!
本文将演示几种数据处理步骤——标准化、特征选择和降维——的方法,这些步骤在应用下游分析方法之前是必需的。
我们使用来自 scater和 scran包的方法,这些方法最初是为 scRNA-seq
数据开发的,并(简化地)假设通过将 spot 视为与 cell 等价,可以将这些方法应用于基于 spot 的 ST 数据。
在处理步骤之后,还包括聚类和标记基因的识别。
library(scran)
library(scater)
library(ggspavis)
library(pheatmap)
library(patchwork)
library(BayesSpace)
library(SpatialExperiment)
# set seed for reproducibility
set.seed(123)
在此,我们加载来自 10x Genomics Visium 的数据,这些数据取自一块来自背外侧前额叶皮层(DLPFC)区域的人脑尸检组织切片(Maynard et al. 2021),并已在上一章第 9 章中完成了质量控制与过滤。
# load data saved in previous chapter
(spe <- readRDS("seq-spe_qc.rds"))
一种简单且快速的标准化方法是 “library size normalization”,其步骤是利用 library size factors 计算对数转换后的标准化计数(“logcounts”),并将每个 spot 视为等同于一个 cell。该方法简单、快速,通常能提供一个良好的基线。它可以通过 scater和 scran包进行计算。
然而,library size normalization 并未利用任何空间信息。在某些数据集中,将每个 spot 视为等同于单个 cell 的简化假设并不合适,并可能在分析过程中造成问题。
一些来自 scRNA-seq 流程的非空间替代方法(例如通过 deconvolution 进行标准化)也不太适用于基于 spot 的 ST 数据,因为 spot 可能包含来自一个或多个 cell type 的多个 cell,且数据集可能包含多个样本(例如多个组织切片),这可能导致 sample-specific 的聚类。
# calculate library size factors
spe <- computeLibraryFactors(spe)
summary(sizeFactors(spe))
hist(sizeFactors(spe), breaks = 50, main = "Histogram of size factors")
# calculate logcounts and store in new assay
spe <- logNormCounts(spe)
assayNames(spe)
SpaNorm是专门为 ST 数据开发的,它采用逐基因的模型(例如 negative binomial),将变异分解为一个依赖于 library size 的(技术性)成分和一个独立于 library size 的(生物学性)成分。
识别一组顶级的 “highly variable genes”(HVGs)是许多 scRNA-seq 流程中的标准特征选择步骤,也可作为基于 spot 的 ST 数据中一种简单且快速的基线方法。这同样基于把 spot 视为等同于 cell 的简化假设。
在此,我们采用一种标准方法来挑选 HVGs;首先,我们移除 mitochondrial genes,因为这些基因通常表达量极高,且并非主要的生物学关注点。
# identify mitochondrial genes
nm <- rowData(spe)$gene_name
mt <- grepl("^MT-", nm, ignore.case = TRUE)
table(mt)
# remove them
spe <- spe[!mt, ]
## mt
## FALSE TRUE
## 21820 13
接下来,应用来自 scran 的方法。这会给出一份 top HVGs 的列表,可作为后续步骤的输入。参数 prop 定义要选取的 HVGs 的比例——例如,prop = 0.1 返回前 10%。(或者,也可以使用参数 n 来指定一个固定数量的 top HVGs,比如 1000 或 2000。)
# fit mean-variance relationship
dec <- modelGeneVar(spe)
# select top HVGs
sel <- getTopHVGs(dec, prop = 0.1)
# number of HVGs selected
length(sel)
另一种做法是使用 spatially-aware 的方法来识别一组 “spatially variable genes”(SVGs)。这些方法会考虑测量值的空间坐标,从而能够生成一份更具生物学信息价值的基因排序,这些基因与组织区域内的生物学结构相关。随后,这组 SVGs 可以在后续步骤中替代 HVGs,或与 HVGs 互补使用。
未完待续,欢迎关注!
Reference
[1]
Ref: https://lmweber.org/OSTA/