今天来学习一个空转的可以分析配体受体共定位方法(这个方法还可以分析如空间模式spatial patterns,空间高变基因,我比较关注共定位):SpaGene,该方法于2022年9月发表在Genome Res杂志上,文献标题为《Scalable and model-free detection of spatial patterns and colocalization》。
SpaGene 是一种新型的空间组学分析方法,无需依赖模型,能够快速在大规模空间组学研究中识别空间模式。它在分析模拟数据和真实空间转录组学数据时表现优于现有方法,具有更强的分析能力和可扩展性。SpaGene 不仅可以重建未观察到的组织结构,还能通过共定位发现配体 - 受体相互作用,为研究细胞间的相互作用提供了有力工具。原理如下:

SpaGene的工作原理
通过spagene鉴定到的五种空间模式以及与其他方法性能的比较:

SpaGene 在分析主嗅球(main olfactory bulb,MOB)的空间转录组学数据时,成功识别了多个已知的空间可变基因,这些基因在 MOB 的特定层中表达。例如:

基于这些识别出的空间可变基因,SpaGene 成功重建了 MOB 的七层结构:

SpaGene 成功识别了四个已知在特定小脑层中表达的空间可变基因:
基因 | 表达层 | 功能描述 |
|---|---|---|
Kcnd2 | 颗粒层(Granule Layer, GL) | 该基因在颗粒层中高表达,编码钾电压门控通道亚家族D成员2,与神经元的兴奋性和信号传导相关。 |
Car8 | 浦肯野层(Purkinje Layer, PL) | 在浦肯野层中高表达,编码碳酸酐酶相关蛋白8,与浦肯野细胞的结构和功能相关。 |
Gad1 | 分子层(Molecular Layer, ML) | 主要表达于分子层,编码谷氨酸脱羧酶1,参与γ-氨基丁酸(GABA)的合成,对抑制性神经传递有重要作用。 |
Mbp | 白质(White Matter) | 在白质中高表达,编码髓鞘碱性蛋白,是髓鞘的主要成分之一,对神经纤维的髓鞘化和信号传导至关重要。 |

SpaGene 不仅能够识别空间可变基因,还能扩展用于识别配体-受体相互作用:

先来简单学习一波官网的案例:https://htmlpreview.github.io/?https://github.com/liuqivandy/SpaGene/blob/master/Tutorial/mbrain_10X.html
## 使用西湖大学的 Bioconductor镜像
options(BioC_mirror="https://mirrors.westlake.edu.cn/bioconductor")
options("repos"=c(CRAN="https://mirrors.westlake.edu.cn/CRAN/"))
library(devtools)
install_github("liuqivandy/SpaGene")
这里的示例数据来自作者的github上:是一个10x visium的空转数据 https://github.com/liuqivandy/SpaGene/tree/master/Rawdata
输入数据为一个count矩阵和空间坐标位置location:
## Load the data
load("brain10X/brain10x_raw.rds")
head(location)
count[1:5,1:5]
## Find spatially variable genes and patterns
brain10x_sv <- SpaGene(count,location)
head(brain10x_sv$spagene_res)
# the most significant spt
spagene_res <- brain10x_sv$spagene_res[order(brain10x_sv$spagene_res$adjp),]
head(spagene_res)
# 鉴定空间模式 spatial patterns,设置npattern=15
pattern <- FindPattern(brain10x_sv,nPattern = 15)
PlotPattern(pattern,location,pt.size = 0.5)
pattern的理解: gene similarity with the pattern (genepattern), and the pattern weight (patternw),每个pattern具体的值:

可视化 spatial patterns:

找到每个pattern相关的top5基因,并绘制热图可视化:
# Top 5 genes falling into each pattern
top5 <- apply(pattern$genepattern,2,function(x){
names(x)[order(x,decreasing=T)][1:5]
})
dat <- pattern$genepattern[rownames(pattern$genepattern)%in%top5,]
head(dat)
pheatmap(dat,fontsize_row = 6)

所有的 包括人和小鼠的配体受体对可以在这里下载:https://github.com/LewisLabUCSD/Ligand-Receptor-Pairs
########################
## Identify colocalized ligand-receptor pairs
library(stringr)
load("LRpair_human.rds")
head(LRpair)
LRpair$ligand_gene_symbol <- str_to_title(LRpair$ligand_gene_symbol)
LRpair$receptor_gene_symbol <- str_to_title(LRpair$receptor_gene_symbol)
brain10x_lr <- SpaGene_LR(count,location,LRpair=LRpair)
# the most signficant colocalized LR pairs
head(brain10x_lr[order(brain10x_lr$adj),])
## Plot Ligand-receptor pair Cck-Cckbr
plotLR(count,location,LRpair=c("Cck","Cckbr"),alpha.min=0.2,pt.size = 1)
在单细胞中鉴定到的配受体对,可以在空转上进一步验证,看其是否具有真实发生的可能~
