查看原文
其他

梅零落 2018-06-04


引言在RNA-Seq的分析中,我们常用RPKM、FPKM和TPM作为转录组数据定量的表示方法。它们都是对表达量进行标准化的方法,为何不直接用read数表示,而选标准化呢,因为落在一个基因区域内的read数目取决于基因长度和测序深度。基因越长read数目越多,测序深度越高,则一个基因对应的read数目也相对越多。所以必须要标准化,而标准化的对象就是基因长度与测序深度。

RPKM

Reads Per Kilobase of exon modelper Million mapped reads (每千个碱基的转录每百万映射读取的reads),主要用来对单端测序(single-end RNA-seq)进行定量的方法。

RPKM(推荐软件,Range) 的计算公式:

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)) 的乘积的比值。

FPKM

Fragments Per Kilobase of exon model per Million mapped fragments(每千个碱基的转录每百万映射读取的fragments),主要是针对pair-end测序表达量进行计算。

FPKM (推荐软件,cufflinks) 和RPKM 的计算方法基本一致。

FPKM和RPKM的区别就是一个是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计算),结果却仍然是不同,因为Cufflinks有自己的模型和自己的一些内在算法。

RPM/CPM

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

RPM的计算公式:

RPM=total exon reads / mapped reads (Millions)

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

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

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

由定义和计算公式可直接看出RPM与RPKM的区别,这里就不做说明了。

TPM

Transcripts Per Kilobase of exonmodel per Million mapped reads (每千个碱基的转录每百万映射读取的Transcripts),优化的RPKM计算方法,可以用于同一物种不同组织的比较。

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

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

Ni:mapping到基因i上的read数;

Li:基因i的外显子长度的总和。

在一个样本中一个基因的TPM:先对每个基因的read数用基因的长度进行校正,之后再用校正后的这个基因read数(Ni/Li)与校正后的这个样本的所有read数(sum(Ni/Li+……..+ Nm/Lm))求商。由此可知,TPM概括了基因的长度、表达量和基因数目。TPM可以用于同一物种不同组织间的比较,因为sum值总是唯一的。(不喜欢看公式分析,那么看看这个实例吧:http://www.bio-info-trainee.com/2017.html)

总结

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

福利

看完上面的文字,是不是还迷迷糊糊的,那么来看看下面的视频吧:http://v.youku.com/v_show/id_XMTU0NzA0MzQ2NA==.html(StatQuest- RPKM, FPKM and TPM)

参考链接:http://blog.sciencenet.cn/blog-1113671-1038659.html

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

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

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












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

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