FPKM RPKM TPM counts
记录标准化的概念以及一些步骤;理解加上收集
参考阅读: 跟着刘小泽一起回顾标准化方法 fpkm转化成tpm RNAseq数据,下载GEO中的FPKM文件后该怎么下游分析 标准化进行时
一般测序拿到的数据都是fpkm值,进行下游差异分析需要先将其转化为tpm再进行limma差异分析;转化为tpm之后仍需要判断是否对数据进行log标准化;
#一众转换函数
countToTpm <- function(counts, effLen)
{
rate <- log(counts) - log(effLen)
denom <- log(sum(exp(rate)))
exp(rate - denom + log(1e6))
}
countToFpkm <- function(counts, effLen)
{
N <- sum(counts)
exp( log(counts) + log(1e9) - log(effLen) - log(N) )
}
fpkmToTpm <- function(fpkm)
{
exp(log(fpkm) - log(sum(fpkm)) + log(1e6))
}
countToEffCounts <- function(counts, len, effLen)
{
counts * (len / effLen)
}
#计算TPM值,只需要用一下apply函数
tpms <- apply(expMatrix,2,fpkmToTpm)
tpms[1:3,]
#最后可以根据TPM的特征进行检查,看每列加和是否一致
colSums(tpms)
判断数据是否需要转换,果子的经验是10以内不需要
exprSet <- log2(exprSet+1)
TPM值对总和应该是一致的,所以可以在此基础上对基因的表达量进行差异比较;虽然不是真的精确。