BBQ(生物信息基础问题35,36):RNA-Seq 数据的定量之RPKM,FPKM和TPM

  在讨论RNA-seq相关方法的时候,我们有一个基本的假设。就是说我们对细胞/组织/个体的不同状态进行比较,然后就是为了寻找到差异表达的基因。然后从差异表达的基因去推测其生物学功能!

part 1:

  而我们的RNA-Seq一般情况下是针对mRNA以及带polyA的lncRNA进行建库测序分析的。那么理论上把测序的FASTQ文件mapping到参考基因组上,再结合参考基因组的GTF/GFF文件就可以找到全基因组的每一个gene上mapping到了多少个reads count。

  我们来想几个问题:

1:如果有一个基因1,有1000条测序的reads,基因2有2000条测序的reads,能不能说明基因1的表达量比基因2的表达量高呢?
  第一眼看上去,肯定会觉得在同种情况下,基因2的reads多肯定表达量会高的,但是我们忽略一个问题,基因的长度!


基因1( Manuel Garber et al., Nature Methods, 2011 )

基因2( Manuel Garber et al., Nature Methods, 2011 )

我们在这个图中,我们可以看到,基因1和基因2的长度不一样,这样的话是不能说明基因1和基因2 的表达量问题。

2:比如我有geneA,有1000条测序reads,我的另一个处理条件下geneA有2000条测序reads,我能否就说geneA在处理条件下表达量降低了?


geneA mapping情况( Manuel Garber et al., Nature Methods, 2011 )

这个时候我们是不是应该考虑到整体的测序质量的问题呢?那么我们如何去解决上述的这两个问题?

part2:

什么是RPKM与FPKM?

RPKM = Reads Per Kilobase per Million mapped reads

假设回贴到geneA 的 reads count为 CountA,geneA的exon总长度为Len(A) Kbp,总的测序量为D兆reads,那么:

geneA RPKM = CountA / Len(A) / D * 10^9


那么什么是FPKM呢?先来看一下FPKM的定义:

FPKM = Fragments Per Kilobase per Million mapped reads

那么fragment是什么呢?这是以为我们现在测序一般来说都是测双端测序(paired-end sequencing),那么在mapping回参考基因组的时候就会有两条reads,分别是read1和read2,分别来源于建库打断的5' 端和3'端。那么这2条reads就可以在参考基因组上确定1个小的片段,这个片段就叫fragment。

那么FPKM如何计算呢?
FPKM = 1/2 RPKM

part3 :

FPKM/RPKM优缺点比较?
我们了解到使用FPKM/RPKM是可以消除掉基因长度和测序深度的影响的。但是有没有缺点呢?
  所有gene的FPKM的总和不是一个固定的值。比如WT 测的所有gene的FPKM总和可能是10000,treat组测到的FPKM总和可能是15000,这样对于WT和treat组之间的差异表达gene的寻找就有可能出现问题。这个时候TPM就出现了!

part 4:

TPM:

  • 定义:TPM Transcripts Per Kilobase of exon model per Million mapped reads (每千个碱基的转录每百万映射读取的Transcripts)
  • 公式:
    TPM计算公式

举个例子,下表是每个样品的不同基因的reads统计,如何计算TPM呢?


BBQ(生物信息基础问题35,36):RNA-Seq 数据的定量之RPKM,FPKM和TPM_第1张图片
sample reads (来源https://www.youtube.com/watch?v=TTUrtCY2k-w)

计算方法:先除以基因的长度,然后再除以每个样品测序的长度


BBQ(生物信息基础问题35,36):RNA-Seq 数据的定量之RPKM,FPKM和TPM_第2张图片
TPM (https://www.youtube.com/watch?v=TTUrtCY2k-w)

这里贴一下黄树嘉大佬写的一篇推文:为什么说FPKM和RPKM都错了?
https://mp.weixin.qq.com/s/-Wm7f4b4rZBbU_ASUO2D_A

节选部分:

要回答这个问题,我们需要先撇开所有形式上的计算,重新思考到底什么是RNA转录本的表达丰度这个问题

事实上,对于任何一个制备好测序文库的待测样本,它上面任何一个基因的表达量(或者说丰度),都将已是一个客观存在的值,这个值是不管你改变了多少测序环境都不会变的。而且总共有多少个不同的基因在这这一刻进行了表达,实际上也已经是客观定好了——难道不是吗?!

此刻,我们可以假定,对于样本X,其有一个基因g被转录了mRNA_g次,同时样本X中所有基因的转录总次数假定是mRNA_total, 那么正确描述基因g转录丰度的值应该是:


同时,样本X中其他基因的转录丰度的计算也应该和上述公式类似。除了要把分子mRNA_g换为其他基因对应的转录次数之外, 分母mRNAtotal都一样 。于是有趣的事情就是,所有基因转录本丰度的均值r_mean将是一个恒定不变的数,由以上定义这个数就是



所以

  这个期望值竟然和测序状态无关!仅仅由样本中基因的总数所决定的。也就是说,对于同一个物种,不管它的样本是哪种组织(正常的或病变的),也不管有多少个不同的样本,只要它们都拥有相同数量的基因,那么它们的r_mean都将是一致的。这是一个在进行比较分析的时候,非常有意义的恒等关系。

  但在实际的操作中,我们是无法直接计算这些r值的。好在只要能够保证模型本身的自洽性,我们是能通过自建一些统计量来对r值进行间接描述的。比如FPKM和RPKM,实际上它们的目的就是为了描述r
  在有些基因中,虽然有效比对到基因的Fregment数是相等的,但一般来说长度越长的基因,其被转录的次数就越少。那也就是说,N必须将各个被转录的基因的长度考虑进去才能正确描述总体的转录本数!而FPKM/RPKM显然没有做到这一点,这便是FPKM和RPKM出错的内在原因。

part5:RPKM/FPKM/TPM定量失败

情况一:举一个非常简单的例子,比如我有两个样本分别叫做A和B,其中B的每一个gene表达量都只有对应样本A中的gene表达量的一半,那么结果就是如果使用RNA-Seq对这两个样本进行定量,那么定量的结果会是一样的,也就是两者计算的RPKM/FPKM/TPM会是一样的。

情况二:有两类细胞,分别是cell1和cell2,真实的情况是geneA本身是一个表达量很高的gene,同时在cell2中,geneA的表达量继续升高数倍,同时其他gene的表达量几乎不变。这个时候我们对这两种情况进行RNA-Seq建库测序,结果就会是发现其他gene普遍下调,而不仅仅是geneA的上调。最后建库的时候,会测到非常多的geneA的reads,其他gene的reads就会相对减少,所以会造成其他gene RPKM/FPKM/TPM下降的假象。

提问环节
1:请用最简单,最直白的语言描述“geneA的FPKM是10”的测序意义。
每百万reads中来自于某基因的reads数(按10^3计算)

2:一般在RNA-Seq分析的过程中,我们都必须默认两个基本假设:

1是绝大多数的gene表达量不变;
2是高表达量的gene表达量不发生改变;
如果没有这2个基本假设,那么后续的找差异gene基本上是无从谈起,即便找到了所谓的差异表达gene也基本上是个错误的结论。

既然RNA-Seq是相对定量的一个实验,那么有没有办法通过什么办法让其能够变成绝对定量的方法?
  谢晓亮老师在2012年出来了有一种绝对定量的方法,在文库扩增之前的每一个RNA片段加上一个标签(UID),那么同一个片段扩增出来的都带有同种标签。利用UID过滤数据,将相同的产物进行合并,既可以去掉PCR中的重复,而且也可以达到定量的目的。
  Digital RNA sequencing minimizes sequence-dependent bias and amplification noise with optimized single-molecule barcodes(PNAS. 2012, 109(4):1347-52)
  此外我认为还是通过实验的qRCR然后绘制标准曲线去定量,两个方法各有千秋,原理都不一样。还是看看趋势能否一致。

Ref:
1:https://zhuanlan.zhihu.com/p/50811365
2:https://mp.weixin.qq.com/s/-Wm7f4b4rZBbU_ASUO2D_A
3:https://www.youtube.com/watch?v=TTUrtCY2k-w
4:https://www.ncbi.nlm.nih.gov/pubmed/22232676

你可能感兴趣的:(BBQ(生物信息基础问题35,36):RNA-Seq 数据的定量之RPKM,FPKM和TPM)