查看原文
其他

StatQuest生物统计学专题 - RPKM,FPKM,TPM

冰糖 生信菜鸟团 2022-06-07


其实RPKM,FPKM,TPM的概念和应用,大家或多或少的都知道。生信菜鸟团以前的专题也已经讲过这几个概念:浅谈RPKM,FPKM,RPM,TPM的区别。在本专题里面重提这个话题,是基于这样一个考虑:RPKM,FPKM,TPM的生物学意义其实很简单,计算时的逻辑其实也很清楚,但是偏偏它的数学形式很复杂,全名也很绕。

以RPKM为例:

全名为:
   Reads Per Kilobase of exon model per Million mapped reads.

计算方式为:
   RPKM= total exon reads/ (mapped reads (Millions) * exon length(KB));
   其中,
       total exon reads:某个样本mapping到特定基因的外显子上的所有的reads;
       mapped reads (Millions) :某个样本的所有reads总和;
       exon length(KB):某个基因的长度(外显子的长度的总和,以KB为单位).

希望你第一次见到这些的时候不是晕的,而本专题重新提到他们,是因为他们其实很简单。

RPKM,FPKM,TPM是为了消除基因长度和测序深度的影响

在RNA-Seq的分析中,为了获得差异表达基因,只需要对不同基因的测序Read数进行比较即可。然而比对到不同基因上的Read数目并不能直接用于比较这两个基因的表达量差异,因为在RNA-seq中有一个很浅显的道理,基因越长,比对到此基因上的Read就会越多;测序深度越大,那么本次RNA-seq的所有Read数都会增加。也就是说Read数除了和基因表达量相关外,也和基因的长度、测序深度有关,因此为了比较多个RNA-seq重复(测序深度有一定差异)的不同基因(基因长度有一定差异)之间的表达量差异,那么就不能使用Read数直接进行比较,而是需要对Read数进行标准化。

计算RPKM,FPKM,TPM的一个例子

RPKM的计算逻辑

RPKM的计算逻辑其实很简单,我们刚才已经说过,测序Read数是会受到基因长度和测序深度影响的,所以RPKM就是为了消除这两项偏差,那么如何消除呢?

既然受到基因长度影响,那么将测序Read数除以基因长度就OK了,而受到测序深度影响,那么再将Read数除以总Read数进行标准化也就消除了测序深度的影响。

只不过这里基因长度是用kb表示的,所以RPKM中是K,Kilobase。而总Read数太大了,直接除以这个数字就会使得标准化出来的Read数出现太多的小数,所以为了美观,一般都是除以以百万为单位的总Read数,举例来说,假定一次RNA-seq的总Read数为2*10^7,那么在进行Read标准化的时候,并不是直接除以这个数值,而是除以20,因为2*10^7 = 20*10^6 = 20M,所以RPKM中才是M,Million。

总结一下,RPKM的计算方法:

  1. 计算总Read数:计算每一个RNA-seq样本的总Read数,然后将其换算为以百万位单位(M);

  2. 标准化总Read数:将所有基因的Read数除以总Read数;

  3. 标准化基因长度:再将所有基因的Read数除以基因长度(基因长度单位为kb);

计算RPKM的的一个例子

举例来说,假定有以下RNA-seq数据,测定了A、B、C、D四个基因,长度分别是2、4、1、10kb,共测定了3个生物重复:Rep1、Rep2、Rep3。

第一步,计算总Read数

由于只有4个基因,所以总Read数并没有太大,因此使用10模拟百万进行总read换算。

StatQuest-IV-1

第二步:标准化总Read数

将Rep1、Rep2、Rep3除以各自换算后的总Read数(也就是3.5,4.5,10.6),得到RPM,见下图:

StatQuest-IV-2

第三步:标准化基因长度

再将基因A、B、C、D的RPM值除以各自的基因长度,得到RPKM,见下图:

StatQuest-IV-3

如此一个RPKM标准化就完成了。

FPKM与RPKM

其实FPKM同RPKM是一样的,只是RPKM用于单末端测序,而FPKM用于双末端测序。

二代测序时,会将所有的DNA打成片段(fragment),然后再去测序。单末端测序时,一个片段对应一个Read,但是双末端测序时,一个片段会从两端分别测定一次,因此这两个配对Read对应的是同一片段(偶尔也会有一个片段只对应一个Read的情况,另一个Read因为某些原因被剔除或丢失了)。

区别也就在这里,对于FPKM来说,配对到同一片段上的两个Read只会算作一个Read,也就是说FPKM是以Fragment为准,不以Read数为准,其他计算方式是完全一样的。

StatQuest-IV-4

TPM的计算逻辑及例子

TPM的计算方法其实同RPKM很类似,同样的对基因长度和测序深度进行标准化,只不过RPKM是先进行测序深度标准化,后进行基因长度标准化;而TPM是先进行基因长度标准化,后进行测序深度标准化。事实证明,TPM的标准化方法更有优势,为何会这样,见后述。这里先看看TPM的计算。

仍以图一的数据为例:

StatQuest-IV-5

第一步:进行基因长度标准化

先将基因A、B、C、D的Read数除以各自的基因长度(基因长度单位kb),得到RPK。

第二歩:计算总Read数(RPK)

计算总Read数,并将其进行百万转换。由于基因数太少,这里是使用10模拟百万转换。

由于TPM先进行基因长度标准化,所以这里的总Read数计算已经变为基因长度标准化后的Read数,也就是RPK数。

StatQuest-IV-6

第三步:进行总Read数标准化

将Rep1、Rep2、Rep3的RPK除以各自的转换后的总Read数,得到TPM值。

StatQuest-IV-7

总结一下,TPM的计算方法:

  1. 标准化基因长度:将所有基因的Read数除以基因长度(基因长度单位为kb);

  2. 计算总Read数:计算每一个样本的总Read数,然后将其换算为以百万位单位(M);

  3. 标准化总Read数:将所有基因的Read数除以总Read数;

TPM相比较RPKM,FPKM的优势

目前都已经推荐进行TPM标准化,不再使用了RPKM、FPKM了,为何会这样?

先看看刚才的RPKM和TPM数据:

将每个转录本的相应RPKM和TPM值进行加总后,可以发现不同转录本的总RPKM并不相同,而进行TPM变换后的加总TPM值是相同的。事实上所有进行TPM变换后的转录本的加总TPM值都是相同的(正常情况下,是百万)。

StatQuest-IV-8

这个差异会造成什么样的影响呢?

由于RNA-seq就是为了通过比较不同样本间的标准化后的Read数差异来得出基因表达量差异的结果的,那么不同样本的加总RPKM不同,就会导致无法通过直接比较RPKM值确定两者的差异。

举例来说,在不考虑统计差异的情况下,以基因A为例,Rep1的RPKM值为1.43,Rep3的RPKM值是1.42,那么能说基因A在Rep1中的表达量大于Rep3中的表达量吗?

答案是不能,因为Rep1的总RPKM值是4.29,而Rep3的总RPKM值是4.25,虽然Rep1中基因A的RPKM大,但是Rep1的总RPKM值也是较大的(说白了,RPKM的测序深度标准化并不完善)。

而对于TPM数据就不同了,由于总TPM都是相同的,Rep1中基因A的TPM值3.33大于Rep3中基因A的TPM值3.326,所以在不考虑统计学差异的情况下,可以直接得出Rep1中基因A的表达量是要大于Rep3的。

参考资料

StatQuest课程:https://statquest.org/video-index/


猜你喜欢

生信基础知识100讲

生信菜鸟团-专题学习目录(5)

生信菜鸟团-专题学习目录(6)

还有更多文章,请移步公众号阅读

▼ 如果你生信基本技能已经入门,需要提高自己,请关注下面的生信技能树,看我们是如何完善生信技能,成为一个生信全栈工程师。

▼ 如果你是初学者,请关注下面的生信菜鸟团,了解生信基础名词,概念,扎实的打好基础,争取早日入门。



      

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存