RPKM,FPKM,TPM等标准化方法还有那些问题?DESeq2的标准化方法的原理就是提高中等表达基因的地位一个例子 在上一节的StatQuest生物统计学专题中,我们简单直白的讨论了RPKM,FPKM,TPM的定义和生物学意义,明白了RPKM,FPKM,TPM标准化方法就是为了去除基因长度和测序深度对测序Read数的影响,见StatQuest生物统计学专题 - RPKM,FPKM,TPM,并且在一般意义上,更推荐使用TPM标准化方法。 然而不得不说明的是,诸如DESeq2、edgeR等差异表达分析软件都不是使用的RPKM,FPKM,TPM方法,为什么呢? RPKM,FPKM,TPM等标准化方法还有那些问题?其实TPM之类的标准化方法虽然解决了基因长度和测序深度的影响的问题,但还是不能解决一个问题:那就是测序文库组成不同造成的差异。 什么意思呢? 我们知道RPKM,FPKM,TPM是可以解决由于测序深度的差异而引起的Read数变异,如下图所示,样本2#的总Read数是样本1#的2倍,每个基因的Read数也是1#的2倍。我们知道这种Read数差异并不是基因表达的不同,而是由于测序深度不同所致,只需要将样本1#、2#除以各自的总Read数,那么这个Read数变异就会得到修正。 让我们再考虑两种新的情况,我们知道RNA-seq或其他高通量方法,往往是不同组织间的基因表达比较,比如肝细胞或脾细胞,他们会有一些各自特异性表达的基因,或者对于一些敲减基因的实验,有些基因在其中一个样本中高表达,而在另一个样本中不表达。 如下图所示的两个样本,两者的测序深度是一样的,总Read数相同。但是由于A2M基因在样本2#中不表达,导致563个Read会分配到样本2#的其他5个基因中去:如样本2#的基因A1BG的Read数是235,大于样本1#中的30。然而实际上这种差异并不是生物学效应所致,而是由于基因A2M被敲减所致,并不是A1BG等5个基因在样本2#中表达增加了,而是基因A2M在样本2#中表达减少了。 在这种情况下,这种测序文库组成不同的差异是RPKM,FPKM,TPM等方法无法解决的。 DESeq2的标准化方法的原理就是提高中等表达基因的地位那么如何解决这个问题呢? 本周先看一下DESeq2是如何进行library normalization的,DESeq2的标准化方法共有7步,看起来很繁琐,但是原理很简单,它有一个贯穿始终的基本思想——提高中等表达基因的地位。 而且这7步只是为了得到一个标准化因子,并进行变换。 首先以下述数据集为例,共有3个样本,每个样本有3个基因: 第一步 对Read矩阵取对数变换 DESeq2默认是使用自然对数,也可以使用log2或log10。 第二歩 取各基因的平均数 要说明的是,由于样本1的基因1的Read数是0,所以在取对数时,它的值是-Inf(负无穷大),因此对基因1取平均数时就直接得出是-Inf即可。
第三步 过滤掉-Inf基因 将存在-Inf值的基因过滤掉,过滤掉的基因不再参与标准化因子的计算。
第四步 将对数矩阵减去对数均值,得到对数比值矩阵 将对数矩阵的每个Read分别减去此基因的对数矩阵。
第五步 计算每个样本的对数比值矩阵的中位数 取中位数,而不是均值,也是为了进一步降低异常值的影响,具有较大表达差异的基因对中位数的影响甚微。考虑到绝大部分情况下,表达差异大的基因都是很少的,所以这个“中位数”更能代表的是中等表达基因或管家基因的情况。 第六步 将对数中位数转换为其相应的真数,得到各个样本的标准化因子 第七步 将原始表达矩阵除以这个标准化因子 原始矩阵的每个样本的全部Read数均除以各自的标准化因子(包括较大表达差异的基因)。 我们可以看到标准化之后,对于基因3来说,样本1#的Read数提升,而样本3#的Read数下降,基因3在3个样本中的表达其实是接近的。 做一下总结:
一个例子我们按照这个DESeq2的标准化方法的思想,对图2中的数据进行一个简单的标准化,没有完全按照上述的7步法,只是体会这种标准化的意思(结果没有大的差异,但是算法并不完全正确)。
参考资料 StatQuest课程:https:///video-index/ |
|