CDSeq反卷积求解细胞组分的简单理解

前言

之前我们介绍了利用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函数中有三种方法可供选择:

  1. vst;
  2. dispersion;
  3. 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模型简介

下述是引用部分:

  1. M: 语料库中文档的数量
  2. N: 文档中单词的数量
  3. K: 语料库中主题的数量
  4. α: 每篇文档的主题分布 (先验狄利克雷分布) 的参数,是一个 K 维向量,K 是主题数量
    越高,代表每篇文档可能包含更多的主题,而不只是包含一个或者两个特定的主题
    越低,代表每篇文档包含的主题数越少
  5. θi: 文档 i 的主题分布
  6. zij: 文档 i 中第 j 个单词的主题编号,服从多项式分布
  7. β: 每个主题的单词分布 (先验狄利克雷分布) 的参数,是一个 V 维向量,V 是文档中单词的数量,越高,代表每个主题可能包含更多的单词,越低,代表每个主题包含的单词数越少
  8. 的单词分布
  9. wij: 特定的单词,服从多项式分布

现在我们要写一篇包含这4个主题的文章
设定文档的长度为 1000 个词
假设文档的主题分布是:30% Arts, 20% Budgets, 30% Children, 20% Education
首先基于文档的主题分布选一个主题 (根据我们的主题分布,1000 个词中大约 300 词来自主题 Arts)
再基于主题的单词分布随机选一个单词
重复上面两步 1000 次

文本主题模型

在生成过程中文章的语法无关紧要,重要的是单词的分布,也许我们无法阅读生成后的文章,但是我们至少能知道这篇文章的主题是关于什么的。值得注意的是,这个生成过程,从主题开始,不断挑选单词生成文档,它并不是 LDA 中运行的算法,而它的逆过程才是。LDA 求解文档的主题分布实际上是上述生成过程的逆过程,从文档开始,反过来去发现文档中的主题。
生成过程:主题 -> 文档
逆过程:文档 -> 主题

LAD模型在估算细胞组分中的运用


其中:

  1. N:代表所有sample总的counts数
  2. M:代表所有samples
  3. gi,j:代表第 i 个sample的第 j 个count所对应的基因
  4. ci,j:代表第 i 个sample的第 j 个count所对应的细胞
  5. ri,j:代表第 i 个sample的第 j 个count所对应的细胞
  6. θ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,每一个基因相当于一个 “单词” ,我们对其进行吉布森采样

Bulk-seq的表达矩阵

如果采样到的基因大部分都是 Gene 1,那么我们回顾scRNA的表达矩阵,那么显然在Cell cluster 1gene 1的表达量最高(单词出现的频率最高),所以在该 sample i 中 Cell cluster 1的成分会高一些,因为在Cell cluster 1Gene 1的表达量最高

我们不难看到,真正起到估计细胞组分的关键因素其实是HVG,因为HVG在各个Cell cluster里面表达量存在巨大差异,因此主要是通过HVG来估算细胞组分

你可能感兴趣的:(CDSeq反卷积求解细胞组分的简单理解)