在RNA-seq的分析中,需要对基因或者转录本的read counts数进行标准化过程。因为落在一个基因区域内的read counts取决于基因长度和测序深度。当基因长度越长,测序深度越深,则落在该基因的read counts越多。
当进行基因差异表达的分析时,往往是在多个样本中比较不同基因的表达量,如果不进行数据标准化,比较结果则是没有意义的。
常用的三种标准化分析是RPKM (Reads Per Kilobase Million)、FPKM (Fragments Per Kilobase Million) 和 TPM (Transcripts Per Million)
为了更清楚的展示计算过程,我们用三个样本的4个基因的read counts矩阵做例子(来源于YouTube)。如表1:
可以清楚地看到,样本3的4个基因read counts数目明显多于其他两个样本,说明其测序深度较高,基因B的长度的基因A的两倍,也使得其read counts在三个样本中都高于A。
1、RPKM/FPKM
RPKM和FPKM的计算过程相同,都是先将测序深度标准化,再对基因长度标准化。
第一步:先将测序深度标准化,分别计算出每个样本的总reads数(为了使数值可读性更好,下面的计算中我们用10代表million),然后将表中数据分别除以总reads数即可,这样就得到了reads per million. 如下表2:
第二步:基因长度的标准化。将表2的read per million直接除以基因长度即可,如表3:
这里,就算出来RPKM值的结果,FPKM和RPKM的定义是相同的,唯一的区别是FPKM适用于双端测序文库,而RPKM适用于单端测序文库。FPKM会将配对比对到一个片段(fragment)上的两个reads计算一次,接下来的计算过程跟RPKM一样。
2、TPM
TPM的计算过程与RPKM相反,即先标准化基因长度,再标准化测序深度。仍以表1的那个例子来说明TPM是计算过程。
第一步:直接除以基因长度,得到reads per kilobase,如表4:
第二步:标准化测序深度时,总的reads数要用第一步中除过基因长度的数值。即第一样本除以15,第二个样本除以20.25,第三个样本除以45.1 。表5就是TPM的结果。
链接:https://www.jianshu.com/p/ffa45423e01c
补充:
因为科研过程中需要将counts值转换为FPKM值计算,所以对FPKM这一部分进行一下补充
对数量级的理解
要求出FPKM值,需要获得三个参数。
cDNA Fragments:为单个基因比对到基因组上的reads数,在测序数据里就是count值。HTseq处理后可以直接得到的结果。
Mapped Fragments:指每个样品中所有基因比对到基因组上的reads数。也就是用求和函数sum()将单一样品的count值全部加起来。注意,由于单位是百万,所以求和后需要除以10^6。
Transcript Length:也就是exon length,是指reads比对到基因外显子上的长度。这个需要找到参考基因组才能获得数据。