轉(zhuǎn)錄組差異基因分析有很多包,常見的或者公認的卻只有這么幾種,edgeR包介紹完之后,我想所有人應該能夠輕松應對普通轉(zhuǎn)錄組的差異分析了。
還是利用上節(jié)的數(shù)據(jù):
setwd("F:/生物信息學")
A <- read.csv("GSE169758_markdup.featco.2.counts.csv",header = T,row.names = 1)
安裝并加載R包:
BiocManager::install('edgeR')
library(edgeR)
edgeR包的應用很廣,可應用于基因、外顯子、轉(zhuǎn)錄本的差異表達。edgeR包還有個功能是可以分析沒有生物學重復的樣本,從幫助文檔查看獲取合適的方法,當樣本沒有重復,但是想看差異的時候可以試試。但是還是建議所有的生物學實驗都設置重復?。?!
edgeR需要傳入的數(shù)據(jù)也是row counts。指定分組:
group <- rep(c('Mcc', 'Pan'), each = 6)
構建 DGEList 對象:
dgelist <- DGEList(counts = A, group = group)
過濾低質(zhì)量count 數(shù)據(jù),并對數(shù)據(jù)進行標準化:
keep <- rowSums(cpm(dgelist) > 1 ) >= 2 #方法的選擇依據(jù)具體情況
dgelist <- dgelist[keep, , keep.lib.sizes = FALSE]
norm <- calcNormFactors(dgelist, method = 'TMM')#方法的選擇依據(jù)具體情況
差異表達分析,首先根據(jù)分組信息構建分析矩陣,分組這里要注意,一定是Control在前,處理組在后。
design <- model.matrix(~group)
估算表達離散值并進行擬合,擬合方法有很多選擇:
dge <- estimateDisp(norm, design, robust = TRUE)
fit <- glmFit(dge, design, robust = TRUE)
df <- topTags(glmLRT(fit), n = nrow(dgelist$counts))
df <- as.data.frame(df)
最后得到差異基因列表:
圖片
將結果保存,可以手動篩選或者和上節(jié)一樣代碼篩選:
write.csv(df, file='df.csv')
至此,普通轉(zhuǎn)錄組差異分析三大R包全部介紹完畢,接下來會說一些細節(jié)的問題,包括基因注釋等等。當然還有大家最關心的數(shù)據(jù)可視化,力求用最好的方法和圖形呈現(xiàn)轉(zhuǎn)錄組數(shù)據(jù)結果,讓你的paper大放異彩!