||
在高通量测序(比如RNA-seq)中很重要的一块就是检测基因的表达量,基因表达量计算和差异表达分析是转录组数据分析的基础。与qPCR类似,转录组数据基因表达量的衡量也是采用相对定量的方法。那么,到底该如何定量呢?
假设通过比对得到了A,B,C,D四个基因在3个样本中的read counts,如下表,那么,可以用比对到参考基因的reads数来衡量不同样本基因的表达量吗?能否认为样本1中gene B比gene C表达量高吗?或者gene B在样本3中比样本1表达量高吗?
表1 不同基因比对得到的reads个数
基因名称 | 样本1 | 样本2 | 样本3 |
gene A (2kb) | 20 | 24 | 30 |
gene B (4kb) | 40 | 50 | 60 |
gene C (1kb) | 10 | 16 | 15 |
gene D (10kb) | 0 | 0 | 1 |
total reads | 70 | 90 | 106 |
答案当然是不可以。原因主要有两点:
① 基因长度的影响。
在同一个样本中,基因越长,随机打断得到的片段就越多,该基因被测到的概率就越大,比对到该基因的reads就越多。
② 测序深度的影响。
不同样本中,样本的测序深度越高,同一基因被测到的次数越多,比对到该基因的reads就越多。
为了能进行不同样本不同基因间的比较,就需要给这些数据同样的“起跑线”,类似物理学的参照系。简单来说也就是将该基因的read counts除以总reads数和基因长度,消除测序深度和基因长度的影响。于是就有了常见的RPKM、FPKM、TPM等标准化方法。
RPKM
RPKM(Reads Per Kilobase Million):即Reads Per Kilobase of exon model per Million mapped reads。
计算公式:
RPKM= total reads/mapped reads(Million) /length(kb)
total reads:某个样本mapping到特定基因的外显子上的所有的reads;
mapped reads(Million):某个样本的所有reads总和(以Million为单位);
length(kb):某个基因的长度(外显子的长度的总和,以kb为单位)。
下面是依照公式计算上表中基因的RPKM值(注意:为了便于显示,这里将公式中的Million改为100):
表2 不同基因的RPKM值的计算结果(“M”为100时)
基因名称 | 样本1 | 样本2 | 样本3 |
gene A (2kb) | 14.29 | 13.33 | 14.15 |
gene B (4kb) | 14.29 | 13.89 | 14.15 |
gene C (1kb) | 14.29 | 17.78 | 14.15 |
gene D (10kb) | 0 | 0 | 0.09 |
total RPKM | 42.87 | 45.00 | 42.54 |
FPKM
FPKM(Fragments Per Kilobase Million): Fragments Per Kilobase of exon model per Million mapped fragments
FPKM和RPKM的计算方法基本一致,只不过把reads换成了fragments。对于单末端测序数据,由于Cufflinks软件计算的时候是将一个read当做一个fragment来算的,故而FPKM等同于RPKM。
对于双末端测序,如果一对paired-read都比对上了,那么这一对paired-read称之为一个fragment;而如果只有一个比对上了,另外一个没有比对上,那么就将这个比对上的read称为一个fragment。而计算RPKM时,一对paired-read会当成两个read分别计算。
关于Fragments和Reads的区别见下图:
TPM
TPM(Transcripts Per Kilobase Million):Transcripts Per Kilobase of exon model per Million mapped reads
而TPM 的计算公式:
TPM=(Ni/Li)*1000000/sum(Ni/Li+……..+ Nm/Lm)
Ni:mapping到基因i上的read数; Li:基因i的外显子长度的总和
一个样本中某基因的TPM值的计算方法:先对每个基因的read数用基因的长度进行校正,之后再用校正后的这个基因read数(Ni/Li)与校正后的这个样本的所有read数(sum(Ni/Li+……..+ Nm/Lm))求商。
下面是依照公式计算上表中基因的TPM值(注意:为了便于显示,同上,将公式中的100万改为100):
表3 不同基因的TPM值的计算结果(“M”为100时)
基因名称 | 样本1 | 样本2 | 样本3 |
gene A (2kb) | 33.33 | 29.63 | 33.26 |
gene B (4kb) | 33.33 | 30.86 | 33.26 |
gene C (1kb) | 33.33 | 39.51 | 33.26 |
gene D (10kb) | 0 | 0 | 0.22 |
total TPM | 100 | 100 | 100 |
不管是计算FPKM、RPKM,还是计算TPM,我们需要一个Read Count的数据矩阵(行为基因,列为样本)。在计算TPM是先对基因长度进行标准化,之后再对列进行标准化。
这样使得最终的TPM矩阵的每列总和都相同(1M),也就是说每个样本中的TPM的总和都是一样的。理论上,这使得我们更容易比较不同样本中所占同一基因的read数的比例。
备注:在进行microRNA表达分析时,往往不考虑碱基长度的影响,因为miRNA的长度范围大部分集中在21-23nt,差异不大,但原理上大家要弄懂。
总结:
不管是计算FPKM、RPKM,还是计算TPM,我们都要先得到一个Read Counts的矩阵(行为基因,列为样本)。在计算FPKM和RPKM时,都是先按列(也就是这个样本的总read数)进行标化,之后再对对个基因的长度进行标准化。而TPM是先对基因长度进行标准化,之后再对列(这个时候就不再是这个样本的总read数了)进行标准化。这样使得最终的TPM矩阵的每列都相同,也就是说每个样本中的TPM的和都是一样的。这样就会使得我们更容易去比较同一个基因在不同样本中所占的read数的比例。而RPKM/FPKM由于最终的表达值矩阵的列和不同,故而不能直接比较同一个基因在不同样本中所占的read数,需要再换算成比例。
转载自
http://www.360doc.com/content/19/0315/12/19913717_821662843.shtml
http://www.360doc.com/content/19/0315/12/19913717_821662274.shtml
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-13 20:05
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社