FPKM\RPKM\TPM学习[转载]
转自:http://www.360doc.com/content/18/0112/02/50153987_721216719.shtml
1.问题提出
在RNA-Seq的分析中,对基因或转录本的read counts数目进行标准化(normalization)是一个极其重要的步骤,因为落在一个基因区域内的read counts数目取决于基因长度和测序深度。
很容易理解,一个基因越长,测序深度越高,落在其内部的read counts数目就会相对越多。
当我们进行基因差异表达的分析时,往往是在多个样本中比较不同基因的表达量,如果不进行数据标准化,比较结果是没有意义的。
因此,我们需要标准化的两个关键因素就是基因长度和测序深度,常常用RPKM (Reads Per Kilobase Million), FPKM (Fragments Per Kilobase Million) 和 TPM (Transcripts Per Million)作为标准化数值。
那么,这三者计算原理是什么,有何区别呢?
2.例子说明
为了更清楚的展示计算过程,我们用三个样本的4个基因的read counts矩阵做例子。
从上表,样本3的4个基因read counts数目明显多于其他两个样本,说明其测序深度较高,基因B的长度的基因A的两倍,也使得其read counts在三个样本中都高于A。
接下来我们要做就是对这个矩阵进行标准化,分别计算RPKM, FPKM和TPM, 请睁大你的眼睛(为了使数值可读性更好,下面的计算中我们用10代表million)。
2.1计算RPKM
第一步先将测序深度标准化,计算方法很简单,先分别计算出每个样本的总reads数(这里以10为单位),然后将表中数据分别除以基因长度即可,这样就得到了reads per million. 如下表:
第二步即是基因长度的标准化了。将表2的read per million直接除以基因长度即可,如下表:
到这里,我们即得到了RPKM。
2.2FPKM
FPKM和RPKM的定义是相同的,唯一的区别是FPKM适用于双端测序文库,而RPKM适用于单端测序文库。
FPKM会将配对比对到一个片段(fragment)上的两个reads计算一次,接下来的计算过程跟RPKM一样。
在两种测序中
在FPKM中,F就是指fragment,也就是说在计算时使用的是fragment而不是reads。
那么由此可以得到在双端测序中, 如果使用RPKM计数(计数reads数目)的话,那么RPKM值将会是FPKM值的1~2倍。(呼!我终于理解了!)
2.3TPM
终于轮到TPM登场了。
虽然同样是标准化测序深度和基因长度,TPM的不同在于它的处理顺序是不同的。
即先考虑基因长度,再是测序深度。我们仍以表1的那个例子来说明TPM是计算过程。
第一步直接除以基因长度,得到reads per kilobase,如下表:
第二步标准化测序深度时,总的reads数要用第一步中除过基因长度的数值。
即第一样本除以15,第二个样本除以20.25,第三个样本除以45.1 (别忘了我们的单位是10哦)。下表就是你们想要的TPM了。
3.RPKM与TPM比较
下面,是考验你们数学功底的时候了,有没有看出来TPM分分钟完虐FPKM/RPKM?其实,只要我们在表3和表5下面多加一行你就能很轻松地看到区别了。
我们看到每个样本的TPM的总和是相同的,这就意味着TPM数值能体现出比对上某个基因的reads的比例,使得该数值可以直接进行样本间的比较。
//至于为什么每个sample的和是相通的,我也没有搞清楚。
FPKM\RPKM\TPM学习[转载]的更多相关文章
- 转录组表达量计RPKM、FPKM、TPM说明
在转录组测序(RNA-Seq)中,基因的表达量是我们关注的重点.基因表达量的衡量指标有:RPKM.FPKM.TPM. RPKM:Reads Per Kilobase Million:说实话,这个英文说 ...
- 对FPKM/RPKM以及TPM的理解
对FPKM/RPKM以及TPM的理解 2018年07月03日 16:05:53 sixu_9days 阅读数:559 标签: FPKM/RPKMTPMRNA-Seq 更多 个人分类: RNA-Seq ...
- Java多线程学习(转载)
Java多线程学习(转载) 时间:2015-03-14 13:53:14 阅读:137413 评论:4 收藏:3 [点我收藏+] 转载 :http://blog ...
- 生信-RPKM与FPKM学习[转载]
转自:https://baike.baidu.com/item/RPKM/1197657 均反应基因的表达水平 1.RPKM的计算公式 分母是总共比对到这个基因的reads的数目(条 为单位),分母是 ...
- Windows Services 学习(转载)
转载:http://blog.csdn.net/fakine/article/details/42107571 一.学习点滴 1.本机服务查看:services.msc /s2.服务手动安装(使用sc ...
- 【学习转载】MyBatis源码解析——日志记录
声明:转载自前辈:开心的鱼a1 一 .概述 MyBatis没有提供日志的实现类,需要接入第三方的日志组件,但第三方日志组件都有各自的Log级别,且各不相同,但MyBatis统一提供了trace.deb ...
- JVM的相关知识整理和学习--(转载)
JVM是虚拟机,也是一种规范,他遵循着冯·诺依曼体系结构的设计原理.冯·诺依曼体系结构中,指出计算机处理的数据和指令都是二进制数,采用存储程序方式不加区分的存储在同一个存储器里,并且顺序执行,指令由操 ...
- Jqgrid学习(转载)
jqGrid API 全 JQGrid是一个在jquery基础上做的一个表格控件,以ajax的方式和服务器端通信. JQGrid Demo 是一个在线的演示项目.在这里,可以知道jqgrid可以做 ...
- R中双表操作学习[转载]
转自:https://www.jianshu.com/p/a7af4f6e50c3 1.原始数据 以上是原有的一个,再生成一个新的: > gene_exp_tidy2 <- data.fr ...
随机推荐
- 【node.js】Error: CERT_UNTRUSTED
背景 : 在linux centos7 上 进行npm 命令是报错: Error: CERT_UNTRUSTED 解决办法: 关掉HTTPS就好了 npm config set strict-ssl ...
- 关于ASP.NET中Request.QueryString的乱码问题(转)
转自 http://www.cnblogs.com/chinhr/archive/2008/09/23/1296582.html 今天在使用Request.QueryString的时候,发现所有接收到 ...
- tar解压包的时候出现错误 gzip: stdin: not in gzip format
在Linux环境下,通过tar -zxvf 命令解压文件时遇到”gzip: stdin: not in gzip format“等错误:如图所示 root@cmfchina:/usr/java# ta ...
- PS-CC常用快捷键总结
灵活使用photoshop软件快捷键是学好该软件的基础,ps快捷键对于ps平时操作有很大帮助 熟练掌握ps的快捷键可以为了处理图片节省很多时间.现在笔者将自己平时常用的快捷键总结如下: 移动工具[V] ...
- 使用iLO远程管理HP系列服务器
iLO是Integrated Ligths-out的简称,是HP服务器上集成的远程管理端口,它是一组芯片内部集成vxworks嵌入式操作系统,通过一个标准RJ45接口连接到工作环境的交换机.只要将服务 ...
- 【CF618G】Combining Slimes 概率+矩阵乘法
[CF618G]Combining Slimes 题意:一个长度为$1\times n$的网格,每次从最右侧往里推入一个数字1或2(数字会一直跑到最左边的空格子里),加入1的概率为p,2的概率为1-p ...
- C# 验证XML
一.验证XML文档 若要验证 XML 文档,需要构造一个 XmlReaderSettings 对象,其中包含用于验证 XML 文档的 XML 架构定义语言 (XSD) 架构.Schema是用于描述和规 ...
- Mac - Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
在终端输入mysql,结果出现 macdeMacBook-Pro:~ mac$ alias mysql=/usr/local/mysql/bin/mysql macdeMacBook-Pro:~ ma ...
- R排序sort、order、rank、arrange
Ø sort sort(x, decreasing = FALSE, ...) ## Default S3 method: sort(x, decreasing = FALSE, na.last = ...
- VMware激活码,Acrobat激活码
VMware Workstation Pro key/注册码: VY1DU-2VXDH-08DVQ-PXZQZ-P2KV8 VF58R-28D9P-0882Z-5GX7G-NPUTF YG7XR-4G ...