Read count、CPM、 RPKM、FPKM和TPM的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Read count、CPM、 RPKM、FPKM和TPM的区别相关的知识,希望对你有一定的参考价值。

参考技术A 除了上述两个主要因素外,还会有其他因素对read counts的检测有所影响,例如转录组的组成,GC含量,random hexamers引起的测序偏好等等。由于上述因素的存在,导致在不同样本间使用read counts 进行比较是不太现实的,人们便提出了许多对read counts进行Normalization的方法。

Read count
数值概念:比对到某基因的reads数。
用途:用于换算CPM、RPKM、FPRM等后续其他指标,同时作为基因异分析软件(如DESeq、edgeR和limma)的输入值。也就是说 ,而非CPM、RPKM、 FPKM,表达定量的结果主要用于主成分分析、层次聚类分析。

数值概念:计算公式:CPM= A/mapped reads*1000000 A为比对到某基因的reads数(read count)。

用途:在某些情况下,只想了解每个基因被覆盖到的相对reads数,而不希望对其做长度校正,就会使用这个指标。

用总reads进行均一化是最简单的方法,其基于以下两个基本假设:
1) 绝大多数的gene表达量不变;
2) 高表达量的gene表达量不发生改变;
但实际上在转录组中,一小部分丰度极高的基因往往会贡献很多reads,如果这些“位高权重”的基因还是差异表达的,就会影响所有其它基因分配到的reads数。而且两个样本总mRNA量完全相同的前提假设也过于理想了。如果想进行表达量的基因间比较,则不得不考虑基因长度的不同。如果进一步做长度的均一化,就得到了下面的RPKM、FPKM。

数值概念:计算公式:RPKM=(1000000*A)/( mapped reads *gene length/1000)
A为比对到某基因的 reads数(read count)。

RPKM法能消除基因长度和测序量差异对计算基因表达的影响,计算得到的基因表达量可直接用于比较不同样品间的基因表达差异和不同基因间表达高低的比较。

用途:用于与基因表达量相关的后期分析。基因表达趋势分析、WGCNA共表达网络构建,热图绘制等都使用。

FPKM意义与RPKM极为相近。二者区别仅在于,Fragment与Read。RPKM的诞生是针对早期的SE测序,FPKM则是在PE测序上对RPKM的校正。只要明确Reads和Fragments的区别,RPKM和FPKM的概念便易于区分。Reads即是指下机后fastq数据中的每一条Reads,Fragments则是指每一段用于测序的核酸片段【双端序列即使丢弃1端reads,让按照1个Fragments计算】。
RPKM is for single end RNA-seq
FPKM is very similar to RPKM, but for paired end RNA-seq.

TPM is like RPKM and FPKM, except the order of operations is switched.

同RPKM一样,TPM对基因的长度进行了校正,计算比对到基因上的reads/基因长度得到长度校正的表达量 reads per kilobase (RPK)。再以文库中RPK之和作为Scale Factor求出TPM。

相比于RPKM使用read counts之和来作为文库校正因子,TPM使用RPK之和作为文库校正因子的好处是考虑了不同样本间的基因长度的分布。因为RPK是一个对基因长度进行校正后的表达量单位,所以RPK之和也不会再带入基因长度的bias。因此,如果需要比较的样本之间转录本分布不一致时(例如不同物种RNA-seq的比较),使用TPM是一个较佳的Normalization方案。

更多参考: https://www.jianshu.com/p/cd2888fec66b

RNA-Seq分析|RPKM, FPKM, TPM, 计算对比

在分析了若干转录组之后发现,处理数据的时候最重要的不是技巧多么绚丽,你调包的能力有多么强。而是把基本的概念特别是统计和数学上的方法咬烂嚼吐,才是真正理解和掌握了分析数据的底层原理:

在RNA-Seq的分析中,对基因或转录本的read counts数目进行normalization是一个extremely essential的过程,因为落在一个基因区域内的read counts数目取决于基因长度和测序深度。

Thats to say,一个基因越长,测序深度越高,落在其内部的read counts数目就会相对越多。

所以DE时,往往是在多个样本(样本来自不同组织、不同器官、不同个体、甚至做进化数据的时候是不同物种)中比较不同基因的表达量,如果不进行数据标准化,比较结果是没有意义的。

Therefore,我们需要标准化的two key factors 就是基因长度和测序深度,常常用RPKM (Reads Per Kilobase Million), FPKM (Fragments Per Kilobase Million) 和 TPM (Trans Per Million)作为标准化数值,前两者都是DESeq2 package中的funcitons。但是实践证明,在样本差异过大或者需要更加精准的比较或者定量目标基因的表达量的时候,还是TPM最为准确和有效。

来源于YouTube的一张示意图: 

技术分享图片

1、2、3样本total reads=35、45、106

RPKM=10/35/2=1.43 (如下图所示)

技术分享图片

而TPM的有效性在于它的处理基因测序的深度和长度的顺序是不同的。

即先考虑基因长度,再是测序深度:

 技术分享图片

技术分享图片

最后算出来的TPM=3.33

而再比对一下最后结果的total after normalized reads 

RPKM: 

技术分享图片

TPM: 

技术分享图片

当我们看到这个结果的时候,就应该马上想到每个样本的TPM的总和是相同的,这就意味着TPM数值能体现出certain样本比对上target基因的reads的比例,而这个比例的总和在不同样本之间是相同的,所以可以使得该数值可以直接进行样本间的比较

 

以上是关于Read count、CPM、 RPKM、FPKM和TPM的区别的主要内容,如果未能解决你的问题,请参考以下文章

关于readsCount、RPKM/FPKM、RPM(CPM)、TPM的理解

标准化之CPM/RPKM/FPKM/TPM

RNA_Seq分析中的标准化(reads_count,FPKM, RPKM, TPM)

39count_rpkm_fpkm_TPM

RPKM、FPKM、TPM计算公式

【点】count、RPM、RPKM、FPKM、TPM