本文へスキップ

RPKM正規化

RPKM正規化とは?

RPKMとは、Reads per kilobase of exon per million mapped readsの略で、各サンプル間の総リード数や各遺伝子の塩基の長さを補正します。例えば、遺伝子の塩基配列長が長いほど配列決定される確率が上昇します。そのため、各遺伝子の塩基配列長を1000塩基の長さに補正します。また、各サンプルでマップされた総リード数が異なるので、各遺伝子のマップされたリード数の総リード数が100万と補正する方法です。
 非常にシンプルなので、遺伝子発現の傾向をみる分には問題ありません。しかしながら、大きなデメリットが存在します。例えば、ある条件下でいくつかの遺伝子が高発現した場合を考えると、RPKM法では高発現した遺伝子にリードを食われてしまい、標準状態と比較すると他の遺伝子があたかも低発現になったように見えてしまいます。
 そこで、こうした高発現する遺伝子を取り除いた後に正規化をおこなうTMM正規化法やiDEGES正規化法が考案されてきました。

計算方法


RPKM = Raw_read_count * (1,000,000/All_read_count) * (1,000/Gene_length)
   = Raw_read_count * 1,000,000,000/ (All_read_count * Gene_length)

1列目から、gene ID, 配列長, カウント数からなるデータ(sample_count.txt)をinputとします。
in_f <- "sample_count.txt"
out_f <- "hoge1.txt"
data <- read.table(in_f, header=TRUE, row.names=1, sep="\t", quote="")

nf_RPM <- 1000000/sum(data[,2])
nf_RPK <- 1000/data[,1]
data[,2] <- data[,2] * nf_RPM * nf_RPK
tmp <- cbind(rownames(data), data)
write.table(tmp, out_f, sep="\t", append=F, quote=F, row.names=F)

Reference

1. 東大・門田さんのHP
inserted by FC2 system