基因表达量一般以TPM或FPKM为单位来展示。
TPM,Transcripts Per Kilobase Million
计算公式:
TPMi=(Ni/Li)*1000000/sum(Ni/Li+………+ Nm/Lm)
Ni:mapping到基因i上的read数; Li:基因i的外显子长度的总和
计算方法也同RPKM/FPKM类似,
先对每个基因的read数用基因的长度进行校正(标准化)
RPK <- count/(efflength/1000)
校正后的这个基因read数(Ni/Li)与校正后的这个样本的所有read数(sum(Ni/Li+………+ Nm/Lm))求商
RPK/sum(RPK)
最后再乘以10^6
RPK/sum(RPK)*1e6
TPM可以看作是RPKM/FPKM值的百分比。
counts2TPM <- function(count=count, efflength=efflen){
RPK <- count/(efflength/1000) #每千碱基reads (Reads Per Kilobase) 长度标准化
PMSC_rpk <- sum(RPK)/1e6 #RPK的每百万缩放因子 (“per million” scaling factor ) 深度标准化
RPK/PMSC_rpk
}
tpm <- as.data.frame(apply(counts,2,counts2TPM))