单细胞转录组ICA降维与细胞轨迹追溯

2020-09-18  本文已影响0人  小潤澤

ICA降维简介

ICA又称为独立成分分析,在单细胞转录组学里面作为一种线性降维参与到单细胞转录组的分析中。首先我们介绍一下观测变量的线性组合:


简而言之就是一组随机观测变量x,和另外一组随机变量y,将它们用线性方式来表示
而ICA的目的是把一组数据拆分成不同的模块,并用这些模块线性表示这组数据

上式中 y 表示某一组随机变量;而 x 表示为线性组合成 y 的模块
而降维的一般原则就是尽可能在保证随机变量 y 之间有差异的条件下,尽可能的减少模块 x的个数
ICA的目的是将一组数据用其中最“独立”的几个模块线性来表示

单细胞中的ICA

显然,对应于单细胞转录组数据来说:


想利用ICA进行降维,那么对应于每一个cell(列向量)来说,我们可以依据每个cell的基因表达模式进行模块的拆分
这一部分主要选择cell间基因表达差异较大的基因作为模块(类似于kmeans分基因表达模块),那么我们将这些模块线性表示为每个"cell"

每一个mod里面是一组基因表达量

举个比较简单的例子:


由此可见,每个细胞的数据特征便可以利用基因表达量及设计矩阵进行线性表示
那么,这里有五个基因,相当于个5维空间,假设我要降维成二维,意味着我仅仅保留两个基因,却能很好的将这5个cell区分开,那么我们势必要得到其中各个细胞之间差异最大的两个基因。比方说基因A和基因B在各个细胞中差异最大



那么此时保留住基因A和基因B即可,在设计矩阵中把其他基因的系数均改为0即可,那么所得式子如上,那么在二维坐标轴上即可可视化了,也就达到了降维的目的

在真正的单细胞表达矩阵里,我们往往根据基因的表达模块(每个模块含若干基因,类似于bulk-seq的kmeans分表达模块)


其中m1表示的是cell_1对应mod_A的一组基因表达量向量

那么线性表示为上图,假设mod_A和mod_B能较好的区分细胞,那么降维后:

将设计矩阵其他mod的系数均改为1
而这些模块在生物学意义上表示为某些具有特定功能的一类基因,比方说mod_A控制信号通路,mod_B控制细胞增殖,等等
ICA降维的好处是,它能够保留细胞间差异最大的模块(基因集),有了这种差异我们就可以知道哪些细胞中的哪些基因先表达,哪一些后表达,根据这些特征追溯轨迹;而使用ICA降维,需要满足数据呈现非高斯分布,而在单细胞数据里很难说明数据是否符合非高斯分布

细胞拟时分析

这一块分析又称为细胞轨迹追溯,为什么要做这一块分析呢,是因为在同一个组织中,有不同类型的细胞;也就是说,哪怕是统一组织,细胞的分化程度也是不一样的,有的细胞分化的快,成为了成熟的细胞,有的细胞分化慢,还处于初级状态或者中间状态,正是因为有这样的差异,我们根据基因表达情况和biomarker可以判断出一条细胞“演化”的轨迹

那么常规的追溯细胞规矩的方法依赖于降维,降维后根据距离来判断轨迹,也就是,距离相近的点(细胞)算作为一类细胞

这里有两种方法计算,一种是利益ICA或者PCA进行线性降维;另外一种是利用diffusion maps算法转换为概率进行非线性降维

如果是采用线性降维,则需要用反向图嵌入:



那么对于单细胞表达矩阵来说,先进性PCA或者ICA进行降维然后根据降维后的cluster对cell进行聚类,根据聚类情况“拟合”出一条细胞轨迹,有些较为远离轨迹的点就近归于最靠近的那条轨迹上,并且再次将数据映射到原有的高维空间,进行矫正
最终根据生物学知识定根,这样的话,轨迹就计算出了
总结一些,采用线性降维画轨迹图,先聚类,用每一类细胞的均值作为节点来定轨迹

再有另外一种采用的是非线性降维方法diffusion maps
该方法将点(细胞)间的距离化为概率,类似于t-SNE:


图片来自:here
然后计算每一条路径的概率:

如上图,从1号点到6号点的路径有:一,1->2->6;二,1->4->5->6;三,1->4->7->6等
由于任意两点(细胞)间的距离我们都用概率表示了,那么比如1->2->6的分数为 p(1->2)×p(2->6),图中p(1|2)表示1->2两个点(细胞)的概率,即p(1->2)
又譬如1->4->5->6,1->4->7->6这两条路径,都是从 1 这个点(细胞)经过 4 这个点(细胞)后,分成两条路径,即经过 5 这个点(细胞)或 7 这个点(细胞){相当于分类成两条路径},最终回到 6 这个点(细胞);那么其概率为 p(1->4)×p(4->5)×p(5->6) + p(1->4)×p(4->7)×p(7->6),图中p(1|4)表示1->4两个点(细胞)的概率,即p(1->4)

接下来,采用最小生成树来画轨迹,即点与点(细胞与细胞间连线)概率之和最小的路径,并以此作为轨迹,可参考:Single cell RNA-seq data analysis with R视频学习笔记(八)

RNA velocity模型

这一个模型也是一个经典的细胞轨迹模型,其基本原理是对于某个基因来说,其转录本可以分为两类,一类是unspliced mRNA,另一类是spliced mRNA。
而根据生物学过程,unspliced mRNA一定发生在spliced mRNA之前,那么在某一时刻的细胞,有实验室认为,可以从mRNA剪切前后的比例来估计mRNA丰度随时间的变化来估算细胞发育轨迹
细胞为了保持活力,永远不会停止不前。在任何给定时刻,细胞都会上调或下调数百或数千个基因,这个过程的特征是不同的mRNA表达水平,在这种细胞分化过程中,数百个基因开启或关闭,这取决于这个祖细胞试图变成何种类型的成体细胞。比方说A细胞分化为B细胞的过程中,ab这个基因会大量表达(ab基因在A细胞中表达低,在B细胞中表达高),那么ab基因增加的趋势暗示着细胞分化的方向(若ab基因表达量增加,那么此时unspiced mRNA的比例会增加)



这是不同基因在不同细胞时期unspliced mRNA和spliced mRNA含量变化图


根据文献:
RNA velocity of single cells来看,unspliced mRNA和spliced mRNA满足的动力学方程为:

简化模型,即α(t)为常数,β(t)为 1,γ(t)为常数

目前有两个假设来估计γ
第一种,Model I
假设:

那么在短时间内忽略mRNA的降解,那么有:

因此,测量不同时间点的s(t)与时间t做线性回归可以得到γ
但是这种方法只能在极短时间内有效,因为忽略降解

第二种,Model II
我们还可以假设未剪切的分子数保持不变,即u(t)=u0,则:


同样测量不同时间点的s(t)与时间t做拟合可以得到γ,因此带入微分方程的解,即可求出u(t)和s(t)

那么,每个细胞的发育方向该如何确定呢?
PCA降维
我们看一下单细胞的表达矩阵:


那么表达矩阵每一个细胞(每一列)可以看作为一个向量,对于PCA降维来说,由于我们已知 u(t)和s(t) 这两个unspliced mRNA和splice mRNA表达量随时间 t 变化的函数 ,那么利用现在时刻的表达矩阵,预估未来一小段时间的各个细胞的基因表达量,即求出未来一段时间 tu(t)和s(t),从而形成一个新的细胞基因表达向量,那么发育箭头指向就是未来时刻的细胞基因表达向量减去现在时刻的细胞基因表达向量,由现在时刻的细胞基因表达向量指向未来时刻的细胞基因表达向量
PCA降维

t-SNE降维
对于t-SNE降维来说,由于是非线性降维,定义其方向不能像线性降维那么简单,作者首先定义:


即求出ri,jdi的相关性
其中:

di,在Model I 的条件下:


其中t表示未来一小段时间,也就是说 di 表示的是未来时刻的细胞基因表达向量减去现在时刻的细胞基因表达向量
即设现在时刻某细胞的各基因表达向量为 s0 ,未来某段时间该细胞的各基因表达向量为 s(t) = s0 + t·ds/dt ,那么未来时刻与现在时刻的差值为 t·ds/dt

作者定义单细胞表达矩阵的细胞基因表达向量为:


其中X代表整个单细胞表达矩阵,celln和xn代表各个细胞的基因表达向量,那么某个细胞 i 从现在时刻指向未来时刻的步长及方向为:

图中xi,xj代表细胞 i 和细胞 j 的细胞表达向量
如此经过校正便可以得到相应的细胞发育方向了
t-SNE降维

总结一下,这个模型的目的是利用当前时间点下的细胞表达数据,利用微分方程模型去预测未来一小段时间的这些细胞的表达模式,从而在空间内构成一个向量,来代表细胞发育(向未来发育)的方向


参考:《独立成分分析》

[细胞轨迹]
(https://www.youtube.com/watch?v=XmHDexCtjyw&list=PLjiXAZO27elC_xnk7gVNM85I2IQl5BEJN&index=10)

计算原理

上一篇下一篇

猜你喜欢

热点阅读