hayidahubei的个人博客分享 http://blog.sciencenet.cn/u/hayidahubei

博文

FPKM, RPKM, RPM以及TPM的关系之见解

已有 57072 次阅读 2017-3-10 09:50 |个人分类:RNA_seq处理|系统分类:科研笔记|关键词:学者| tophat, cufflinks, stringtie


FPKM,RPKM,RPM以及TPM的关系之见解



RPKM: Reads Per Kilobase of exon model per Million mapped reads (每千个碱基的转录每百万映射读取的reads)

FPKM: Fragments Per Kilobase of exon model per Million mapped fragments(每千个碱基的转录每百万映射读取的fragments)

RPM/CPM: Reads/Counts of exon model per Million mapped reads (每百万映射读取的reads)

TPMTranscripts Per Kilobase of exon model per Million mapped reads (每千个碱基的转录每百万映射读取的Transcripts)

#####################################################################


RPKM (Reads Per Kilobase Million)

FPKM (Fragments Per Kilobase Million)

TPM(Transcripts Per Kilobase Million)

RPM (Reads per million)

CPM (Counts per million)

#####################################################################


FPKM (推荐软件,cufflinks/Stringtie) RPKM (推荐软件,Range/Deseq) 的计算方法基本一致,公式如下(外显子的表达)

                            RPKM= total exon reads/ (mapped reads (Millions) * exon length(KB))

你可以用这个公式计算基因,外显子,转录本的表达,这里以基因的表达为例进行说明:

                    total exon reads:某个样本mapping到特定基因的外显子上的所有的reads

                    mapped reads (Millions) :某个样本的所有reads总和

                    exon length(KB):某个基因的长度(外显子的长度的总和,以KB为单位)


在一个样本中一个基因的RPKM等于落在这个基因上的总的read(total exon reads)与这个样本的总read(mapped reads (Millions))和基因长度(exon length(KB)) 的乘积的比值。


#####################################################################


RPM的计算公式:

RPM=total exon reads / mapped reads (Millions)

RPM per gene is calculated as the number of reads per gene divided by the number ofsingle-mapping reads per sample library times one million

#####################################################################


TPM (推荐软件,RSEM/Stringtie) 的计算公式:

                                       TPMi=(Ni/Li)*1000000/sum(Ni/Li+……..+ Nm/Lm)

                                       Ni:mapping到基因i上的read数; Li:基因i的外显子长度的总和

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

#####################################################################


FPKMRPKM的区别就是一个是fragment, 一个是read. 对于单末端测序数据由于Cufflinks计算的时候是将一个read当做一个fragment来算的故而FPKM等同于RPKM. 对于双末端测序而言如果一对paired-read都比对上了那么这一对paired-read称之为一个fragment而如果一对paired-Read中只有一个比对上了另外一个没有比对上那么就将这个比对上的read称之为一个fragment. 而计算RPKM如果一对paired-read都比对上了会当成两个read计算而如果一对paired-read中只有一个比对上了另外一个没有比对上那么就计read数为1. 故而即使是理论上将各个参数都设置成一样的也并不能说FPKM=2RPKM. 对于单末端测序虽然理论上FPKM等同于RPKM, 但是实际上即使是使用同一个mapping软件得到的mapping结果然后再分别去计算同一个基因的RPKM (自己人工计算,或者用现成的一些软件都能算FPKM (Cufflinks/Stringtie计算)结果却仍然是不同因为不同软件有自己的模型和自己的一些内在算法。

      RPMRPKM的区别看公式或者全称就能看出来,就不赘述了!

      不管是计算FPKMRPKM还是计算TPM我们都要先得到一个ReadCount的矩阵(行为基因列为样本). 在计算FPKMRPKM时,都是先按列(也就是这个样本的总read数)进行标化之后再对对个基因的长度进行标准化TPM是先对基因长度进行标准化之后再对列(这个时候就不再是这个样本的总read数了)进行标化. 这样使得最终的TPM矩阵的每列都相同(列和都等于1000000也就是说每个样本中的TPM的和都是一样的. 这样理论上就会使得我们更容易去比较同一个基因在不同样本中所占的read数的比例. 而RPKM/FPKM由于最终的表达值矩阵的列和(有效的read总数,测序深度)不同,故而理论上不方便直接比较同一个基因在不同样本中所占的read数的比例.

      虽然上面说了对于单末端测序数据FPKM等同于RPKM. 但是不论是单末端测序还是双末端测序Cufflinks的表达值的单位都是FPKM至于在单末端测序数据下Cufflinks的表达值的单位用RPKM代替FPKM个人仍旧是持反对意见的。

      以上有些结论仅仅只是个人观点如果有高见希望能够共同探讨!



https://m.sciencenet.cn/blog-1113671-1038659.html


下一篇:上传NGS数据到GEO

0

该博文允许注册用户评论 请点击登录 评论 (3 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-27 15:23

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部