【生信实战】空间转录组反卷积——带你了解Spot里究竟都有点啥细胞

随着空间转录组技术的普及,越来越多的课题开始使用这一技术。当前,以10X Visium为代表的空间转录组技术是目前最常见的技术。然而,10X Visium由于技术本身的局限性,其分辨率较低,所得到spot并非单细胞水平,往往由10个左右的细胞构成一个spot,这给后续的分析带来了巨大的困扰。

1. 概念

所谓空间转录组反卷积算法是一种利用单细胞转录组数据作为参考,来推断空间转录组数据中每个位置的细胞类型和比例的方法。空间转录组数据是指在保留组织或细胞的空间信息的同时,测量基因表达的数据。由于空间转录组数据的分辨率有限,每个位置可能包含多种细胞类型的混合物,因此需要一种方法来解析每个位置的细胞组成。
空间转录组反卷积算法的意义是,它可以帮助我们更好地理解组织或细胞的空间结构和功能,揭示细胞类型之间的相互作用和通讯,发现空间上的细胞异质性和状态变化,以及探索空间转录组数据与其他空间数据(如组织形态学,免疫组化,荧光原位杂交等)的关联性。空间转录组反卷积算法在生物医学领域有着广泛的应用,例如神经科学,肿瘤学,发育生物学,免疫学等。

2 原理

按照实现的原理来说主要可以分为三种实现反卷积的方法
(1)概率模型:这类方法假设每个位置的基因表达服从一个多项式分布,其参数由参考单细胞数据中的细胞类型的基因表达的加权和决定。这类方法的优点是可以考虑基因表达的离散性和噪声,以及细胞类型的先验信息。这类方法的代表RCTD,Cell2location等;
(2)非负矩阵分解和非负最小二乘:这类方法将空间转录组反卷积问题转化为一个非负矩阵分解或非负最小二乘的优化问题,即寻找一组非负的权重,使得每个位置的基因表达与参考单细胞数据中的细胞类型的基因表达的加权和的差异最小。这类方法的优点是可以利用现有的高效的优化算法,以及可以加入正则化项来防止过拟合。这类方法的代表有SpatialDWLS,Splotlight等;
(3)深度学习框架:这类方法利用深度神经网络来学习一个从空间转录组数据到细胞类型比例的映射函数。这类方法的优点是可以自动提取特征,以及可以处理非线性和复杂的关系。这类方法的代表有Tangram。

反卷积算法原理

常用软件总结

按照是否需要对应的单细胞转录组的数据有可以分为有参算法和无参算法
(1)有参算法:RCTD、Cell2location等;
(2)无参算法:STdeconvolve等。

那么哪些这么多算法究竟哪些才比较符合真实的情况呢,我们看一下文献的总结:


算法性能比较

右边是使用ISS法基于原位杂交得到的“阳性”结果,而左边则是靠软件反卷积去“猜测”的细胞组成结果。
在图中可以非常明显的观察到RCTD、cell2locaiton等有参考算法明显优于无参考的算法。且在各类算法中,RCTD所得到的结果和真实的更吻合,具有更突出的性能。

3 实战

这里以Seurat提供的代码为例进行讲解

#devtools::install_github("dmcable/spacexr", build_vignettes = FALSE) #安装RCTD
library(spacexr)
# set up reference
ref <- readRDS("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) #构建用于参考的单细胞数据,这里其实重点就是counts单细胞表达矩阵,cluster是我们的celltype的注释,nUMI可以为空

# set up query with the RCTD function SpatialRNA
st_data <- readRDS("st_data.rds") #载入我们的空间转录组数据,如果是标准的space ranger数据可以使用Load10X_Spatial载入
counts <- st_data[["Spatial"]]$counts
coords <- GetTissueCoordinates(slide.seq)
colnames(coords) <- c("x", "y")
coords[is.na(colnames(coords))] <- NULL
query <- SpatialRNA(coords, counts, colSums(counts))

#运行RCTD开始反卷积
RCTD <- create.RCTD(query, reference, max_cores = 8)
RCTD <- run.RCTD(RCTD, doublet_mode = "full") # 我们使用10X Visium的数据,由于spot的特性,使用full,如果是高分辨率的平台可以使用doublet或singlet
decon_mtrx <- as.matrix(RCTD@results$weights) 

运行到这里我们就得到了各Spot的成分了,我们会得到一张表格,标题为细胞的类型,列为spot的名字,然后每一个单元格就是我们这个spot中各细胞的占比。
接下来如果如何画出类似上面文章的占比的图呢,代码如下:

  library(SPOTlight)
  st_data$cell <- names(st_data$orig.ident)
  st_data <- subset(st_data, cell %in% rownames(decon_mtrx))
  p = plotSpatialScatterpie(st_data, decon_mtrx, scatterpie_alpha = 1, pie_scale = 0.3) 

4 写在后面

对于10X Visium的数据来说,按照传统单细胞的分析十分荒谬,每个spot中包含的细胞已经多如牛毛,cluster中的细胞类型更是如繁星般。因此,充分的了解我们的组织上的细胞构成,做反卷积进行“真正”的细胞注释才是最大化的利用我们的空间转录组数据。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341

推荐阅读更多精彩内容