美文网首页单细胞测序
CDSeq反卷积求解细胞组分的简单理解

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

作者: 小潤澤 | 来源:发表于2021-04-07 22:49 被阅读0次

    前言

    之前我们介绍了利用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. \varphi{z{ij}}:主题z_{ij} 的单词分布
    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反卷积求解细胞组分的简单理解

        本文链接:https://www.haomeiwen.com/subject/kwlykltx.html