hello,大家好,今天我们来初步总结一下所有单细胞分析用到的NMF。
我们先来简单回顾一下批次矫正的方法liger。LIGER 是 19年发在 Cell 上的,算是连着自己的 resource 发了自己的计算方法。 在我分享的文章中10X单细胞(空间转录组)数据整合分析批次矫正之liger中详细分享了liger,其中用到了iNMF,我们这次也要详细的讲解。
![](https://img.haomeiwen.com/i18814178/7d029e875af1f50b.png)
其实liger批次矫正的核心思想是非负矩阵分解,希望两个 batch 的数据在分解中满足一定性质,共享尽可能多的信息,并且认为这部分共享的信息就是生物信息。
两个 batch 的数据可以写成如下形式,表达谱可分为 biological 信息和 technical 信息的加和。
![](https://img.haomeiwen.com/i18814178/171c71ff578d2961.png)
MNN 假设(关于MNN就不再赘述,网上说了很多了)
关于 MNN 在这个框架下的假设
、
正交,也就是 Biology variance 和 batch effect 所代表的的方向相互正交。
|
-
| >> |![W](https://math.jianshu.com/math?formula=W)
α - ![W](https://math.jianshu.com/math?formula=W)
ζ|, 即 不同 Cell 之间的生物差异远大于 Batch 之间的差异时。
根据这两个假设,可以从上述的
= ![X](https://math.jianshu.com/math?formula=X)
+ ![X](https://math.jianshu.com/math?formula=X)
中推导出 MNN 的目标函数。(不包括校正那一步)
LIGER
接下来我们看 LIGER 的关键部分,也就是两个非负矩阵分解,但是在分解过程中不同 batch 之间共享一组 W (可以看成代表生物 module ),另外还有一部分代表 data specific 的technical module 来 model batch effect。
![](https://img.haomeiwen.com/i18814178/c8611cac362ba220.jpg)
写成数学表达式也就是
![](https://img.haomeiwen.com/i18814178/a057cd1d1d414272.png)
首先在这篇文章中 gene cell 的维度和之前说的是反过来的,如果顺过来也就是
![](https://img.haomeiwen.com/i18814178/ef0c8f2da5c09c5e.png)
对比上文 MNN 中的式子
![](https://img.haomeiwen.com/i18814178/697e63958f9a0977.png)
可以发现,其实 LIGER 中也就是
=
、
=
、
=
=
,然后这些矩阵均非负。
此时再观察 LIGER 的优化目标
![](https://img.haomeiwen.com/i18814178/3f88f6a4cda8941e.png)
可以看到还有一项是关于
的惩罚,而
其实是![E](https://math.jianshu.com/math?formula=E)
,这表示希望学到的![E](https://math.jianshu.com/math?formula=E)
尽可能小,反之即希望学到的![E](https://math.jianshu.com/math?formula=E)
尽可能大,也就是保留尽量多的共享生物信息。
所以总结一下 LIGER 在之前模型上的假设
1、 =
、
=
、
=
=
,说明给定 biological module 和technical module 之后,这个 loading 应该是大家共享的,也即说明两者有一定的关系,可以由同一个 factor loading 控制。
-
尽可能小,也就是说明希望这个 embedding 能够捕捉到的生物信息尽可能多。
-
、
、
均非负,这部分其实是体现 module 的味道,非负意味着完全由 加法得到,也就是每个表达谱是由这些 module 的 activity 叠加得到的。
Summary
这些模型其实都是下述模型在不同假设情况下的特列
![](https://img.haomeiwen.com/i18814178/6a2c5c9f44bbdf70.png)
其实liger最核心的思想就是integrative non-negative matrix factorization (iNMF)。
接下来我们就来分享各种NMF,其实关于NMF的分享,我已经写了很多,文章在10X单细胞(10X空间转录组)之NMF的实际运用示例(探索肿瘤特征)、10X单细胞(10X空间转录组)数据分析之约束非负矩阵分解(cNMF)等,供大家参考。
首先是iNMF
我们来看 iNMF 中的目标函数为:
![](https://img.haomeiwen.com/i18814178/754bfda3dad5632b.png)
其实 LIGER 就是从 iNMF 中来的(上面讲了),一模一样。 但是值得说明的是, iNMF 原文目的是为了多组学的数据,也就是同一个 sample 测了多种组学,但是 LIGER 将整合多组学的方法顺延到了整合不同 batch 上(当然其实也非常明显,不同组学的区别就是 technology 不同, single cell中的 batch effect 当然也可以看做是这个)。
JNMF
而 iNMF 其实是建立在张老师 2009年这篇 JNMF 的基础上的一个延伸,文章在A novel computational framework for simultaneous integration of multiple types of genomic data to identify microRNA-gene regulatory modules,
我们来看两者的目标函数就可以非常清楚的看出这个延伸在哪。
![](https://img.haomeiwen.com/i18814178/1373c7eaa6753527.png)
相比之下 JNMF 只考虑两个数据集之间共享的部分信息,对于各自特有的没有考虑,而 iNMF 考虑了这部分异质性的信息,但在优化的时候又对其做了约束,希望这个异质性的信息尽可能的小,也就是共享的信息尽可能大。(共享的信息其实是说在这个 W 张成的 common space 能尽可能的重构原来的表达谱)。
CSMF
Common and Specific patterns via Matrix Factorization ,顾名思义就同时考虑了共享的和异质性两部分。 但是和 iNMF 最大的区别是,iNMF 假设了在 bio space(W张成),以及 tech space(V 张成的空间)坐标是相同的,或者两者是共享一套 factor loading 的。 CSMF 去掉了这个限制。但是同时也去掉了对于 specific 部分的惩罚。 话不多说直接看目标函数!
![](https://img.haomeiwen.com/i18814178/969228d6005a4152.png)
可以看到区别就是
![](https://img.haomeiwen.com/i18814178/40c12b7ea02b76d2.png)
也就是上文中说到的 iNMF 假设了在 bio space (
张成的空间),以及 tech space(
张成的空间)坐标是相同的,或者两者是共享一套 factor loading 的。 而 CSMF 去掉了这个限制。且同时在目标函数中也去掉了对于 specific 部分的惩罚。(这个我感觉不是很合理其实,但是不知道是不是处于优化的考虑)。
cFIT,关于cFIT,文献在Integration and transfer learning of single-cell transcriptomes via cFIT,
cFIT 的核心如下图
![](https://img.haomeiwen.com/i18814178/5d5e9aef9663d845.jpg)
可以看到关键就是在于 cFIT 认为
![](https://img.haomeiwen.com/i18814178/7774ca55deca9b67.png)
这是什么意思呢,其实就是认为最后的 ![X](https://math.jianshu.com/math?formula=X)
都是由![H](https://math.jianshu.com/math?formula=H)
![j](https://math.jianshu.com/math?formula=j)
![W](https://math.jianshu.com/math?formula=W)
这个代表生物真实表达量通过一个线性变化得到的。其中
代表线性变换的 scale,![b](https://math.jianshu.com/math?formula=b)
表示一个 offset。一句话总结, cFIT 认为batch effect 的影响是一个 gene specific 的 线性变换。
为 noise 乍一看 cFIT 和之前所述的分解为两部分的 model 并没有什么关系。 但是只要稍作变换就可以看出其实还是原始模型的变种。
![](https://img.haomeiwen.com/i18814178/b0ab7f8c5c57b47c.png)
也就是说认为 batch effect 带来的表达谱![X](https://math.jianshu.com/math?formula=X)
是线性于 ![X](https://math.jianshu.com/math?formula=X)
的。
summary
![](https://img.haomeiwen.com/i18814178/0ba7d8cbf2b931a2.png)
从上面几个式子可以看出来最关键的部分就是怎么处理这个![X](https://math.jianshu.com/math?formula=X)
。
生活很好,有你更好
网友评论