对FPKM/RPKM以及TPM的理解

2018年07月03日 16:05:53 sixu_9days 阅读数:559 标签: FPKM/RPKMTPMRNA-Seq 更多

个人分类: RNA-Seq
 

虽然一直在接触FPKM/RPKM以及TPM,但是仅仅是知道它们是转录本定量的值,并未究其根本。最近看了几篇文献,对其深层次的含义有了进一步的理解,因而在这里记录下来。

首先来看FPKM/RPKM的起源:

在RNA-Seq中,最简单的定量基因表达量(gene expression)的方法就是将RNA-Seq数据比对到相应的参考序列上时,会有比对到各个基因的read数量,称为raw read counts。但是如果要比较不同样本中基因的表达量,光有raw counts是远远不够的,因为raw cread counts受到很多因素的影响,如目标基因的转录本长度(transcript length)、总的有效比对的read数量(即测序深度 sequencing depth)以及测序的偏差(sequencing bias)等等,这些因素是如何影响raw read counts的后面会有解释。那么为了将不同样本的基因表达量归一化到一个能够量化比较的标准上,科学家们采取的措施是将raw counts同时除以目标基因的外显子长度之和(也就是目标基因转录本长度)和总的有效比对的read总数。这就是RPKM的定义

RPKM = (10^6 * nr) / (L * N)

其中 nr 代表比对至目标基因的read数量;L代表目标基因的外显子长度之和除以1000,单位是Kb,不是bp;N是总的有效比对至基因组的reads数量。

注意这里的 nr:在single-end测序中,一个read就是一个read。而在pair-end测序中,若一对paired-read 都比对上了,当做两个read;若只有一个read比对上,另一个未比对上,当做一个read计算。

类似的,FPKM的定义如下

FPKM = (10^6 * nf) / (L * N)

其中 nf 代表比对至目标基因的fragment数量;L代表目标基因的外显子长度之和除以1000,单位是Kb,不是bp;N是总的有效比对至基因组的fragment数量。

注意这里的 nf:在single-end测序中,FPKM将read当做fragment计算,此时FPKM和RPKM是相同的。而在pair-end测序  中,  若一堆paired-read 都比对上了,当做一个fragment。

以上是这两个量的计算方式,它们这样计算的目都是为了解决在计算RNA-seq转录本丰度的两个bias:
(1)即便是相同表达丰度的转录本,会由于其基因长度上的差异,导致测序获得的Read(Fragment)数不同。因为在测序时,随机抽样的情况下,序列较长的转录本被抽到的概率更大,测得的Read(Fragment)数越多。

(2)由测序文库的不同大小而引来的差异。即同一个转录本,其测序深度越深,通过测序获得的Read(Fragment)数就越多。

FPKM和RPKM通过同时除以L(转录本长度)和N(有效比对的Read(Fragment)总数)的办法,最终将不同样本(或者同个样本在不同条件下)的转录本丰度归一化到一个能够进行量化比较的标准上。

以上一切看起来都很合理

但是!!!

既然说了测序获得的read(fragment)受到基因长度的影响,RPKM和FPKM计算中也去除了目标基因长度的影响,但是除以N时没有考虑到这个影响,N是总的有效比对的read(fragment),它同样会受到各个转录基因长度(distribution of transcript lengths)的影响。所以FPKM/RPKM是不准确的。那么有没有一个统计量能解决这个问题呢?有!那就是TPM

TPMi={( nr/Lr )*10^6 } / sum( nr/Lr+……..+ nm/Lm )

nr:mapping到目标基因上的read数;
Lr:目标基因的外显子长度的总和。

在一个样本中一个基因的TPM:先对每个基因的read数用基因的长度进行校正,之后再用校正后的这个基因read数(nr/Lr)与校正后的这个样本的所有校正后的read数(sum( nr/Lr+……..+ nm/Lm ))求商。

没错!TPM不是除以有效比对的read总数,而是除以经过基因长度归一化后的有效比对的read总数,即归一化后的测序深度。

因此,TPM在计算不同样本的基因表达量比较时,是更加准确的统计量。

在网上浏览时,看到了这篇文章  http://www.fungenomics.com/article/30 是从另一个角度理解FPKM/RPKM与TPM的关系,讲得很好很详细,大家也可以看看。

对FPKM/RPKM以及TPM的理解的更多相关文章

  1. FPKM\RPKM\TPM学习[转载]

    转自:http://www.360doc.com/content/18/0112/02/50153987_721216719.shtml 1.问题提出 在RNA-Seq的分析中,对基因或转录本的rea ...

  2. Bulk RNA-Seq转录组学习

    与之对应的是single cell RNA-Seq,后面也会有类似文章. 参考:https://github.com/xuzhougeng/Learn-Bioinformatics/ 作业:RNA-s ...

  3. RNA-seq 数据文件处理

    http://www.fungenomics.com/article/30 [专题]基因组学技术专题(二)-- 为什么说FPKM/RPKM是错的 下载数据 wget是linux下一个从网络上自动下载文 ...

  4. 转录组表达量计RPKM、FPKM、TPM说明

    在转录组测序(RNA-Seq)中,基因的表达量是我们关注的重点.基因表达量的衡量指标有:RPKM.FPKM.TPM. RPKM:Reads Per Kilobase Million:说实话,这个英文说 ...

  5. TPM、read counts、RPKM/FPKM你选对了吗?

    TPM.read counts.RPKM/FPKM你选对了吗? 已有 3940 次阅读 2017-12-15 15:04 |个人分类:RNA-seq|系统分类:科普集锦|关键词:RNA-seq| RN ...

  6. RPKM FPKM TPM RSEM

    RPKM:Reads Per Kilobases Per Million Reads指的是每1百万个reads中比对到每1kb碱基外显子上的reads数 FPKM:Fragments Per Kilo ...

  7. 生信-RPKM与FPKM学习[转载]

    转自:https://baike.baidu.com/item/RPKM/1197657 均反应基因的表达水平 1.RPKM的计算公式 分母是总共比对到这个基因的reads的数目(条 为单位),分母是 ...

  8. FPKM与RPKM

    FPKM与RPKM (2015-01-09 23:55:17) 转载▼ 标签: 转载   原文地址:FPKM与RPKM作者:Fiona_72965 定义:  FPKM:Fragment Per Kil ...

  9. 全方位理解Android权限之底层实现概览

    0000 这个阶段搞了很多和Android文件权限相关的问题,虽然一知半解,但也算是对Android权限机制有一些自己的理解.遂将这些内容整理出来.因为权限这部分涉及到的内容很多,故将知识分为几块内容 ...

随机推荐

  1. 解决QT出现XXXX.dll不能加载问题

    第一步:下载相关动态链接文件(这里以ig4icd32.dll为例子) 下载地址:ig4icd32.dll文件 第二步:把下载的文件放在两个地方,记住!一定得放在两个地方,我试了少一个都不行! C:\W ...

  2. leetcode551

    public class Solution { public bool CheckRecord(string s) { ; ; ; var preChar = '\0'; ; i < s.Len ...

  3. tomcat启动项目 端口占用

    转自:https://blog.csdn.net/u010427935/article/details/77297529 有时候电脑比较卡,项目比较大的情况下,eclipse没有完全停止tomcat的 ...

  4. TDictionary 是delphi用的,c++builder用起来太吃力。

    TDictionary 是delphi用的,c++builder用起来太吃力.c++还是用std::map代替.c++d map很好用啊.https://blog.csdn.net/ddkxddkx/ ...

  5. onMouseDown和onPress的差异AS2

    為了要做出比Button物件更複雜的互動,我們通常會改用MovieClip來製作按鈕.如此一來,就需要處理event handler.與滑鼠有關的MovieClip event handler包括on ...

  6. mysql打开log-bin报错

    在mysqld下设置log-bin后重启出现错误, [ERROR] You have enabled the binary log, but you haven't provided the mand ...

  7. 文字折行不折行 css

    white-space : 1. normal  默认值 ,文字自动换行.               2. pre 使用<pre>标签形式,表示元素.                 * ...

  8. 压缩文件tar.gz和zip之间的区别

    我们在开发的时候通常要先下载相关的软件或者是源码,或者是jar包.在下载东西的时候总是碰见后缀是.tar.gz和.zip的问题,搞不清楚是怎么回事,不晓得下载哪个文件才是对自己有用的.现在我知道了,其 ...

  9. visual stdio 工程 宏

    $(SolutionDir)  solution目录 $(ProjectDir) Project目录 $(TargetDir) 目标文件夹,如编译出的exe文件所在的目录 $(Configuratio ...

  10. salt常用模块及API

    saltstack提供了非常丰富的功能模块,涉及操作系统的基础功能,常用工具支持等,更多模块信息见官网模块介绍:https://docs.saltstack.com/en/latest/ref/mod ...