RPKM, FPKM, TPM区别

  • A+
所属分类:Transcriptomics

在RNA-Seq的分析中,对基因或转录本的read counts数目进行標准化(normalization)是一个极其重要的步骤,因为落在一个基因区域內的read counts数目取决於基因长度和测序深度。很容易理解,一个基因越长,测序深度越高,落在其內部的read counts数目就会相对越多。当我们进行基因差异表达的分析时,往往是在多个样本中比较不同基因的表达量,如果不进行数据標准化,比较结果是没有意义的。因此,我们需要標准化的两个关键因素就是基因长度和测序深度,常常用RPKM (Reads Per Kilobase Million), FPKM (Fragments Per Kilobase Million) 和 TPM (Transcripts Per Million)作为標准化数值。那么,这三者计算原理是什么,有何区別呢?

为了更清楚的展示计算过程,我们用三个样本的4个基因的read counts矩阵做例子(来源於YouTube)。如表1:

Gene Name Sample1 Counts Sample2 Counts Sample3 Counts
A (2kb) 10 12 30
B (4kb) 20 25 60
C (1kb) 5 8 15
D (10kb) 0 0 1

大家可以清楚地看到,样本3的4个基因read counts数目明显多於其他两个样本,説明其测序深度较高,基因B的长度的基因A的两倍,也使得其read counts在三个样本中都高於A。接下来我们要做就是对这个矩阵进行標准化,分別计算RPKM, FPKMTPM,    请睁大你的眼睛(为了使数值可读性更好,下面的计算中我们用10代表million)。

我们先来説説RPKM怎么算。第一步先將测序深度標准化,计算方法很简单,先分別计算出每个样本的总reads数(这里以10为单位),然后將表中数据分別除以总reads数即可,这样就得到了reads per million. 如下表2:

Gene Name Sample1   Counts Sample2 Counts Sample3   Counts
A (2kb) 2.86 2.67 2.83
B (4kb) 5.71 5.56 5.66
C (1kb) 1.43 1.78 1.42
D (10kb) 0 0 0.09

第二步即是基因长度的標准化了。將表2的read per million直接除以基因长度即可,如表3:

Gene Name Sample1 Counts Sample2 Counts Sample3 Counts
A (2kb) 1.43 1.33 1.42
B (4kb) 1.43 1.39 1.42
C (1kb) 1.43 1.78 1.42
D (10kb) 0 0 0.009

到这里,我们即得到了传説中的RPKM。

FPKM和RPKM的定义是相同的,唯一的区別是FPKM適用於双端测序文库,而RPKM適用於单端测序文库。FPKM会將配对比对到一个片段(fragment)上的两个reads计算一次,接下来的计算过程跟RPKM一样。

下面,终於轮到TPM登场了。虽然同样是標准化测序深度和基因长度,TPM的不同在於它的处理顺序是不同的。即先考虑基因长度,再是测序深度。我们仍以表1的那个例子来説明TPM是计算过程。

第一步直接除以基因长度,得到reads per kilobase,如表4:

Gene Name Sample1   Counts Sample2   Counts Sample3   Counts
A (2kb) 5 6 15
B (4kb) 5 6.25 15
C (1kb) 5 8 15
D (10kb) 0 0 0.1

第二步標准化测序深度时,总的reads数要用第一步中除过基因长度的数值。即第一样本除以15,第二个样本除以20.25,第三个样本除以45.1 (別忘了我们的单位是10哦)。表5就是你们想要的TPM了。

Gene Name Sample1   Counts Sample2   Counts Sample3   Counts
A (2kb) 3.33 2.96 3.326
B (4kb) 3.33 3.09 3.326
C (1kb) 3.33 3.95 3.326
D (10kb) 0 0 0.02

下面,是考验你们数学功底的时候了,有没有看出来TPM分分钟完虐FPKM/RPKM?其实,只要我们在表3和表5下面多加一行你就能很轻鬆地看到区別了。

RPKM

Gene Name Sample1   Counts Sample2   Counts Sample3   Counts
A (2kb) 1.43 1.33 1.42
B (4kb) 1.43 1.39 1.42
C (1kb) 1.43 1.78 1.42
D (10kb) 0 0 0.009
Total 4.29 4.5 4.25

TPM

Gene Name Sample1   Counts Sample2   Counts Sample3   Counts
A (2kb) 3.33 2.96 3.326
B (4kb) 3.33 3.09 3.326
C (1kb) 3.33 3.95 3.326
D (10kb) 0 0 0.02
Total 10 10 10

我们看到每个样本的TPM的总和是相同的,这就意味着TPM数值能体现出比对上某个基因的reads的比例,使得该数值可以直接进行样本间的比较。

看到这里,相信大家已经完全理解了RNA-Seq数据標准化的流程了。虽然现在有很多计算差异表达的软件是直接支持read counts作为输入,並且自已完成標准化过程,如DESeq2,但作为生信人,知道这些中间量的计算过程还是很有必要的。

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: