前言
之前我们介绍了利用scRNA不同cell cluster的表达特征,利用SVR线性反卷积的手段来估算对应的Bulk-seq中,每个sample相应的细胞组分,传送门:CIBERSORT初探
这一次我们来鉴定介绍下利用概率图模型来估算Bulk-seq中,每个sample相应的细胞组分
原理
这是一篇已经发表的文章:CDSeq: A novel complete deconvolution method for dissecting heterogeneous samples using gene expression data
,该软件利用的是隐含狄利克雷分布主题模型 LDA Topic Model
在介绍软件原理的之前,我们先介绍下scRNA分cell cluster以及如何鉴定高变基因(HVG)
这里可以推荐下单细胞组学的文章:单细胞转录组高变基因统计方法解析
Seurat的FindVariableFeatures函数中有三种方法可供选择:
- vst;
- dispersion;
- mean.var.plot.
简而言之,vst用局部加权回归(loess)预估均值和方差的关系得到期望的方差值,然后z-score量化表达矩阵,最后计算方差;dispersion比较简单粗暴,用方差/均值(VDM);mean.var.plot先计算每个基因的VDM,然后根据平均表达量对每个基因由低到高进行分区,在每个分区内独立计算VDM的z-score。
那么事实上我们理想中的分cell cluster以后,对于这些高变基因的表达谱应该是:
其中红色部分表示的是在每个cell cluster里面特异性表达的基因(事实上区分不同的cell cluster也是根据这些HVG)
而整个CDSeq包最核心的地方是吉布森抽样
# 核心代码
result <- gibbsSampler()
核心代码是吉布斯抽样,我们不妨这样理解,LAD模型主要处理的是文本的data,这里参照了:LDA 数学笔记里面的叙述
LAD模型简介
下述是引用部分:
- M: 语料库中文档的数量
- N: 文档中单词的数量
- K: 语料库中主题的数量
- α: 每篇文档的主题分布 (先验狄利克雷分布) 的参数,是一个 K 维向量,K 是主题数量
越高,代表每篇文档可能包含更多的主题,而不只是包含一个或者两个特定的主题
越低,代表每篇文档包含的主题数越少- θi: 文档 i 的主题分布
- zij: 文档 i 中第 j 个单词的主题编号,服从多项式分布
- β: 每个主题的单词分布 (先验狄利克雷分布) 的参数,是一个 V 维向量,V 是文档中单词的数量,越高,代表每个主题可能包含更多的单词,越低,代表每个主题包含的单词数越少
- 的单词分布
- wij: 特定的单词,服从多项式分布
文本主题模型现在我们要写一篇包含这4个主题的文章
设定文档的长度为 1000 个词
假设文档的主题分布是:30% Arts, 20% Budgets, 30% Children, 20% Education
首先基于文档的主题分布选一个主题 (根据我们的主题分布,1000 个词中大约 300 词来自主题 Arts)
再基于主题的单词分布随机选一个单词
重复上面两步 1000 次
在生成过程中文章的语法无关紧要,重要的是单词的分布,也许我们无法阅读生成后的文章,但是我们至少能知道这篇文章的主题是关于什么的。值得注意的是,这个生成过程,从主题开始,不断挑选单词生成文档,它并不是 LDA 中运行的算法,而它的逆过程才是。LDA 求解文档的主题分布实际上是上述生成过程的逆过程,从文档开始,反过来去发现文档中的主题。
生成过程:主题 -> 文档
逆过程:文档 -> 主题
LAD模型在估算细胞组分中的运用
其中:
- N:代表所有sample总的counts数
- M:代表所有samples
- gi,j:代表第 i 个sample的第 j 个count所对应的基因
- ci,j:代表第 i 个sample的第 j 个count所对应的细胞
- ri,j:代表第 i 个sample的第 j 个count所对应的细胞
- θi:代表sample i 的cell cluster
我们在看一下CDSeq函数的输入文件:
result1<-CDSeq(
bulk_data = mixtureGEP, #Bulk-seq的表达矩阵
cell_type_number = 6, #单细胞数据中分的cell cluster
mcmc_iterations = 5, #吉布森抽样迭代的次数
block_number = 1,
gene_length = as.vector(gene_length), #基因长度
reference_gep = refGEP #scRNA分cell cluster的表达矩阵
)
我们可以这样理解,首先CDSeq先根据scRNA分cell cluster的表达矩阵去拟合隐含狄利克雷分布,那么我们可以理解如下:
scRNA的表达矩阵
类比于文本主题模型,每个Cell cluster相当于不同的主题分布,而每个基因(Gene 1,2,3)在每个Cell cluster中相当于单词,在每个Cell cluster中的表达量相当于这些 “单词”出现的次数
那么依次拟合LAD分布
那么对于Bulk-seq的数据,对于每一个sample i,每一个基因相当于一个 “单词” ,我们对其进行吉布森采样
如果采样到的基因大部分都是 Gene 1,那么我们回顾scRNA的表达矩阵,那么显然在Cell cluster 1中gene 1的表达量最高(单词出现的频率最高),所以在该 sample i 中 Cell cluster 1的成分会高一些,因为在Cell cluster 1中Gene 1的表达量最高
我们不难看到,真正起到估计细胞组分的关键因素其实是HVG,因为HVG在各个Cell cluster里面表达量存在巨大差异,因此主要是通过HVG来估算细胞组分
网友评论