【转录组】文库数据标准化方法RPKM FPKM TPM CPM RPM(理论篇)

文库标准化的目的

RNA-seq每个基因的长度和深度均不相同,所以需要对基因的长度和测序深度进行Normalize

输入

一个Read Count的数据矩阵(行为基因,列为样本)。

第一种 RPKM (适合于单端测序)

这个就很简单粗暴地将基因的reads数 除以 测序reads数(去除测序深度效应)和基因长度(去除基因长度效应)

  • RPKM是Reads Per Kilobase per Million mapped reads的缩写

计算公式:

RPKM = total exon reads / (mapped reads(Millions) * exon length(KB))                            

total exon reads:某个样本mapping到特定基因的外显子上的所有的reads;

mapped reads (Millions) :某个样本的所有reads总和;

exon length(KB):某个基因的长度(外显子的长度的总和,以KB为单位)

第二种 FPKM (适合于双端测序)

FPKM(Fragments PerKilobase Million): Fragments Per Kilobase of exon model per Million mapped fragments

FPKM和RPKM的计算方法基本一致,只不过把reads换成了Fragments。

  • 单端测序:FPKM等同于RPKM
  • 双端测序:
    • 如果一对paired-read都比对上了,这一对paired-read称之为一个fragment
    • 如果只有一个比对上了,就将这个比对上的read称为一个fragment。
    • 一对paired-read会当成两个read分别计算

计算公式

FPKM = total exon Fragments / (mapped reads(Millions) * exon length(KB))

第三种 TPM

TPM(Transcripts PerKilobase Million):Transcripts Per Kilobase of exon model per Million mapped reads

计算公式

TPMi=(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是先对基因长度进行标准化,之后再对列进行标准化。

这样使得最终的TPM矩阵的每列总和都相同(等于1000000),也就是说每个样本中的TPM的总和都是一样的。理论上,这使得我们更容易比较不同样本中所占同一基因的read数的比例。

学术界已经不再推荐RPKM、FPKM, 比较基因的表达丰度,例如哪个基因在哪个组织里高表达,用TPM做均一化处理;


第四种 CPM

Counts per million

计算公式:

CPM= A/mapped reads*1000000 
  • A为比对到某基因的reads数(read count)
  • mapped reads为比对到所有 gene 的总reads 数。

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

CPM只对read count相对总reads数做了数量的均一化。当如果想进行表达量的基因间比较,则不得不考虑基因长度的不同。如果进一步做长度的均一化,就用RPKM。

第五种 RPM

与CPM相似

计算公式

RPM = Total exon reads/ Mapped reads(Millions)

学习自

  • RPKM, FPKM, TPM有什么区别?
  • [转录组] Read count,CPM和RPKM的区别是什么?
  • RPM(CPM)/RPKM/FPKM/TPM
  • FPKM、TPM数据标准化
  • RNA_Seq分析中的标准化(reads_count,FPKM, RPKM, TPM)

你可能感兴趣的:(【转录组】文库数据标准化方法RPKM FPKM TPM CPM RPM(理论篇))