FPKM:Fragments Per Kilobase of exon model per Million mapped fragments(每千个碱基的转录每百万映射读取的fragments)
RPKM:Reads Per Kilobase of exon model per Million mapped reads (每千个碱基的转录每百万映射读取的reads)
TPM:Transcripts Per Kilobase of exon model per Million mapped reads (每千个碱基的转录每百万映射读取的Transcripts)
Reads和Fragments的区别
Reads即是指下机后fastq数据中的每一条Reads,Fragments则是指每一段用于测序的核酸片段,在单端测序中,一个Fragments只测一条Reads,所以,Reads数与Fragments数目相等;在双端测序中,一个Fragments测两端,会得到2条Reads,但由于后期质量或比对的过滤,有可能一个Fragments的2条Reads最后只有一条进入最后的表达量分析。总之,对某一对Reads而言,这2条Reads只能算一个Fragments,所以Fragments的最终数目是Reads的1到2倍之间。
为什么要进行标准化分析?
在RNA-Seq的分析中,为了获得差异表达基因,只需要对不同基因的测序Read数进行比较即可。然而比对到不同基因上的Read数目并不能直接用于比较这两个基因的表达量差异,因为在RNA-seq中有一个很浅显的道理,基因越长,比对到此基因上的Read就会越多;测序深度越大,那么本次RNA-seq的所有Read数都会增加。也就是说Read数除了和基因表达量相关外,也和基因的长度、测序深度有关,因此为了比较多个RNA-seq重复(测序深度有一定差异)的不同基因(基因长度有一定差异)之间的表达量差异,那么就不能使用Read数直接进行比较,而是需要对Read数进行标准化。
受到基因长度影响,那么将测序Read数除以基因长度;受到测序深度影响,那么再将Read数除以总Read数进行标准化也就消除了测序深度的影响。
基因长度是用 kb表示的,所以RPKM中是K,Kilobase。而总Read数太大了,直接除以这个数字就会使得标准化出来的Read数出现太多的小数,所以为了美观,一般都是除以以百万为单位的总Read数。
RPKM
RPKM = total exon reads/ (mapped reads (Millions) * exon length(KB))
total exon reads:某个样本mapping到 特定基因 的外显子上的所有的reads;
mapped reads (Millions) :某个样本的 所有 reads总和;
exon length(KB):某个基因的长度(外显子的长度的总和,以KB为单位);
例子
假定有以下RNA-seq数据,测定了A、B、C、D四个基因,长度分别是2、4、1、10kb,共测定了3个生物重复:Rep1、Rep2、Rep3。
第一步:计算总Read数
只有4个基因,所以总Read数并没有太大,因此使用10模拟百万进行总read换算
第二步:标准化总Read数
将Rep1、Rep2、Rep3除以各自换算后的总Read数(也就是3.5,4.5,10.6),得到RPM
第三步:标准化基因长度
再将基因A、B、C、D的RPM值除以各自的基因长度,得到RPKM
FPKM
FPKM同RPKM是一样的,只是RPKM用于单末端测序,而FPKM用于双末端测序。
二代测序时,会将所有的DNA打成片段(fragment),然后再去测序。单末端测序时,一个片段对应一个Read,但是双末端测序时,一个片段会从两端分别测定一次,因此这两个配对Read对应的是同一片段(偶尔也会有一个片段只对应一个Read的情况,另一个Read因为某些原因被剔除或丢失了)。
区别也就在这里,对于FPKM来说,配对到同一片段上的两个Read只会算作一个Read,也就是说FPKM是以Fragment为准,不以Read数为准,其他计算方式是完全一样的。
TPM
TPM的计算方法同RPKM很类似,同样的对基因长度和测序深度进行标准化,只不过RPKM是先进行测序深度标准化,后进行基因长度标准化;而 TPM是先进行基因长度标准化,后进行测序深度标准化。事实证明,TPM的标准化方法更有优势。
例子
第一步:进行基因长度标准化
先将基因A、B、C、D的Read数除以各自的基因长度(基因长度单位kb),得到RPK。
第二歩:计算总Read数(RPK)
计算总Read数,并将其进行百万转换,这里是使用10模拟百万转换。由于TPM先进行基因长度标准化,所以这里的总Read数计算已经变为基因长度标准化后的Read数,也就是RPK数。
第三步:进行总Read数标准化
将Rep1、Rep2、Rep3的RPK除以各自的转换后的总Read数,得到TPM值。
TPM相比较RPKM、FPKM的优势
将每个转录本的相应RPKM和TPM值进行加总后,可以发现不同转录本的总RPKM并不相同,而进行TPM变换后的加总TPM值是相同的。事实上所有进行TPM变换后的转录本的加总TPM值都是相同的(正常情况下,是百万)。
由于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的。