文库标准化的目的
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)