PS:如果你需要本教程的練習(xí)代碼和文檔桶良,可以在公眾號回復(fù)“20220122”即可獲得。
前言:
今早看到一篇博文沮翔,提到了FPKM與TPM間轉(zhuǎn)化陨帆。我自己也系統(tǒng)的再次進(jìn)行整理一下(PS:自己前期的基礎(chǔ)不是很牢固曲秉,基本只是使用Count和FPKM,其它的表達(dá)豐度基本沒涉及)疲牵。因此承二,本教程博文也是自己的一個(gè)學(xué)習(xí)筆記。也是結(jié)合很多篇博文組裝出來的纲爸,記錄記錄:ヰ!识啦!
---- Du
?轉(zhuǎn)錄組使用hisat2比對后负蚊,我們會(huì)使用featureCounts、HTseq-count等軟件計(jì)算每個(gè)基因Count值(每個(gè)基因比對上的reads數(shù))颓哮,count值是最原始的家妆,也是最接近真實(shí)的基因表達(dá)情況,是沒被標(biāo)準(zhǔn)化的數(shù)值冕茅,因此伤极,很多的差異表達(dá)分析,輸入文件(input data)使用Count值姨伤。以及哨坪,后面所有的FPK、RPKM乍楚、TPM等都是依據(jù)Count值轉(zhuǎn)換出來的当编。
?計(jì)算FPKM值,可以根據(jù)Count值進(jìn)行計(jì)算炊豪,此步需要我們后期自己計(jì)算凌箕,但也是使用Stringtie軟件進(jìn)行計(jì)算。該軟件也可以使用其腳本prepDE.py進(jìn)行轉(zhuǎn)化词渤,由FPKM To Count牵舱,使用也是相對比較方便。詳情到網(wǎng)址:StringTie (jhu.edu) - http://ccb.jhu.edu/software/stringtie/index.shtml?t=manual
Count
定義:高通量測序中比對到exon上的reads數(shù)缺虐∥弑冢可以使用featureCounts、HTseq-count等軟件進(jìn)行計(jì)算高氮。
優(yōu)點(diǎn):可以有效說明該區(qū)域是否真的有表達(dá)及真實(shí)的表達(dá)豐度慧妄。能夠近似呈現(xiàn)真實(shí)的表達(dá)情況。
缺點(diǎn):由于exon長度不同剪芍,難以進(jìn)行不同exon豐度比較塞淹;由于測序總數(shù)不同,難以對不同測序樣本間比較罪裹。
FPKM
FPKM: FPKM的全稱為Fragments Per Kilobase Million饱普,F(xiàn)ragments Per Kilobase of exon model per Million mapped fragments(每千個(gè)堿基的轉(zhuǎn)錄每百萬映射讀取的fragments)运挫。通俗講,把比對到的某個(gè)基因的Fragment數(shù)目套耕,除以基因的長度谁帕,其比值再除以所有基因的總長度。注意冯袍,這里的基因長度是指基因外顯子的總長度匈挖。
RPKM
RPKM: Reads Per Kilobase of exon model per Million mapped reads (每千個(gè)堿基的轉(zhuǎn)錄每百萬映射讀取的reads);
FPKM與RPKM的區(qū)別
RPKM通常用于單端測序康愤,F(xiàn)PKM常用于雙端測序
如果是單端測序儡循,那么一個(gè)fragmetns就對應(yīng)了一條read,如下所示:
如果是雙端測序翘瓮,那么一條fragments就對應(yīng)兩條reads贮折,當(dāng)然,有時(shí)候雙端測序也有可能出現(xiàn)一條fragment對應(yīng)一條read(另外一條read有可能會(huì)因?yàn)橘|(zhì)量低而被剔除)资盅,F(xiàn)PKM就保證了调榄,一條fragment的兩條reads不會(huì)被統(tǒng)計(jì)2次,如下所示:
FPKM是以fragment為準(zhǔn)呵扛,而不是以reads數(shù)為準(zhǔn)每庆,它們的計(jì)算方式是一樣的
RPM
定義:RPM/CPM: Reads/Counts of exon model per Million mapped reads (每百萬映射讀取的reads)
公式:RPM = ExonMappedReads * 10^6 /TotalMappedReads
優(yōu)點(diǎn):利于進(jìn)行樣本間比較。根據(jù)比對到基因組上的總reads count今穿,進(jìn)行標(biāo)準(zhǔn)化缤灵。即:不論比對到基因組上的總reads count是多少,都將總reads count標(biāo)準(zhǔn)化為10^6蓝晒。sRNA_seq等測序長度較短的高通量測序經(jīng)常采用RPM進(jìn)行標(biāo)準(zhǔn)化腮出,因?yàn)閟RNA長度差異較小,18-35 nt較多芝薇,所以長度對不同的small RNAs相互比較影響較小 (優(yōu)點(diǎn):計(jì)算簡單胚嘲、方便。)洛二。
缺點(diǎn):未消除exon長度造成的表達(dá)差異馋劈,難以進(jìn)行樣本內(nèi)exon差異表達(dá)的比較。
TPM
定義:TPM的全稱為Transcripts per million晾嘶,Transcripts Per Kilobase of exon model per Million mapped reads (每千個(gè)堿基的轉(zhuǎn)錄每百萬映射讀取的Transcripts)
解釋:Ni為比對到第i個(gè)exon的reads數(shù)妓雾;Li為第i個(gè)exon的長度;sum(N1/L1+N2/L2 + ... + Nn/Ln)為所有 (n個(gè))exon按長度進(jìn)行標(biāo)準(zhǔn)化之后數(shù)值的和垒迂。
獲得gene外顯子長度!
library(GenomicFeatures)
## 導(dǎo)入gff3文件
txdb <- makeTxDbFromGFF("ITAG4.1_gene_models.gff", format = "gff")
## 獲取外顯子位置
exons_gene <- exonsBy(txdb, by = "gene")
## 去除外顯子重疊部分械姻,計(jì)算外顯子長度
exons_gene_len <- lapply(exons_gene,function(x){sum(width(reduce(x)))})
exons_gene_len <- as.matrix(t(exons_gene_len))
write.csv(exons_gene_len,"tomato_gene_length_4.1.csv", row.names = T)
我使用番茄基因組4.1的注釋文件,但是提取只得到100多個(gè)基因的外顯子長度机断,不知道是哪一步出現(xiàn)問題楷拳。你可以使用你的物種注釋文件操作一下材部。如果你會(huì)寫編程,也是使用腳本進(jìn)行提取唯竹,也是相對容易的循環(huán)就可以提取得到。
Code | 各表達(dá)量間的轉(zhuǎn)化
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)
}
# An example
################################################################################
cnts <- c(4250, 3300, 200, 1750, 50, 0)
lens <- c(900, 1020, 2000, 770, 3000, 1777)
countDf <- data.frame(count = cnts, length = lens)
# assume a mean(FLD) = 203.7
countDf$effLength <- countDf$length - 203.7 + 1
countDf$tpm <- with(countDf, countToTpm(count, effLength))
countDf$fpkm <- with(countDf, countToFpkm(count, effLength))
with(countDf, all.equal(tpm, fpkmToTpm(fpkm)))
countDf$effCounts <- with(countDf, countToEffCounts(count, length, effLength))
參考:
關(guān)于readsCount苦丁、RPKM/FPKM浸颓、RPM(CPM)、TPM的理解
RNA-Seq的count旺拉、RPKM/FPKM产上、CPM、TPM的關(guān)系
RPKM, FPKM and TPM, clearly explained | RNA-Seq Blog
StatQuest學(xué)習(xí)筆記24——RPKM FPKM TPM
Htseq Count To Fpkm | KeepNotes blog
“小杜的生信筆記”公眾號蛾狗、知乎晋涣、簡書平臺,主要發(fā)表或收錄生物信息學(xué)的教程沉桌,以及基于R的分析和可視化(包括數(shù)據(jù)分析谢鹊,圖形繪制等);分享感興趣的文獻(xiàn)和學(xué)習(xí)資料留凭!