基因差異性分析三大利器大揭秘,讓你秒懂如何選擇!
基因數(shù)據(jù)的差異性分析是一種針對不同生物樣本或不同處理條件下基因表達(dá)量變化的分析方法。它可以用來識別基因在兩個或多個樣本之間的表達(dá)差異,從而幫助我們了解基因在不同生物狀態(tài)下的功能和調(diào)控機制。對于基因芯片的差異表達(dá)分析,由于其數(shù)據(jù)普遍被認(rèn)為服從正態(tài)分布,因此常用的差異表達(dá)分析方法是在每個基因上應(yīng)用t檢驗或方差分析。而高通量分析涉及到多個基因的同時檢驗,因此需要進行多重比較校正,以控制假陽性的發(fā)生。
?
基因數(shù)據(jù)的差異性分析通常包括以下步驟:
數(shù)據(jù)預(yù)處理:包括對原始數(shù)據(jù)進行質(zhì)量控制、去除掉低質(zhì)量的基因和樣本、進行歸一化等。
差異性分析:通過統(tǒng)計學(xué)方法(如t檢驗、方差分析、Wilcoxon檢驗等)或機器學(xué)習(xí)方法(如支持向量機、隨機森林等)來比較不同樣本之間的基因表達(dá)量,找出表達(dá)量顯著差異的基因。差異性分析的結(jié)果可以用Volcano圖或Heatmap等方式進行可視化展示,以便更好地理解差異基因的特點和表達(dá)模式。
?
功能富集分析:對差異基因進行功能富集分析,可以幫助我們了解這些基因在生物學(xué)過程、通路、功能和疾病中的作用和調(diào)控機制。功能富集分析方法包括基因本體論分析、富集分析、通路分析等。
?
結(jié)果解釋和驗證:基于差異性分析和功能富集分析的結(jié)果,可以進一步進行實驗驗證,以確定差異基因的生物學(xué)意義和功能,從而更好地理解基因在不同生物狀態(tài)下的作用和調(diào)控機制。
?
DESeq2,EdgeR和limma是三種R語言中常用的差異表達(dá)分析工具包,可以用于分析RNA-seq或microarray等高通量數(shù)據(jù)的差異表達(dá)。
?
DESeq2:一般差異分析軟件如DESeq2和edgeR的原理是比較組間差異和組內(nèi)差異。所以說通常情況下,如果沒有重復(fù),則組內(nèi)差異無法計算。DESeq2采用數(shù)據(jù)歸一化和去除批次效應(yīng)的方法,以消除樣本之間的技術(shù)變異。它通過對樣本中的基因計數(shù)數(shù)據(jù)進行負(fù)二項式模型擬合,來鑒定基因在不同樣本之間的表達(dá)差異并進行差異基因的統(tǒng)計顯著性檢驗。同時也可用于考慮生物學(xué)重復(fù)的影響,從而更準(zhǔn)確地估計基因表達(dá)量的方差和標(biāo)準(zhǔn)誤差。DESeq2使用Wald檢驗來鑒定差異基因,并使用Benjamini-Hochberg方法來進行多重檢驗校正。另外,DESeq2還提供了多種可視化方法,如MA圖、Heatmap和PCA分析等。
##DESeq差異分析
dds <- estimateSizeFactors(dds) 計算歸一化系數(shù)sizeFactor
dds <- estimateDispersions(dds) 估計基因的離散程度
dds <- nbinomWaldTest(dds) 統(tǒng)計檢驗,差異分析

EdgeR:適用于RNA-seq和microarray數(shù)據(jù)。使用負(fù)二項式模型來對基因表達(dá)數(shù)據(jù)進行建模,使用TMM(trimmed mean of M values)方法進行數(shù)據(jù)歸一化。EdgeR使用exact test或quasi-likelihood F-test來進行差異分析。同時,它也使用Benjamini-Hochberg方法來進行多重檢驗校正。edgeR有一部分功能是依賴于limma包。
?

limma:目前在基因芯片的分析用的最多的就是limma。雖然它是針對芯片數(shù)據(jù)開發(fā)的,但也有l(wèi)imma-voom可以分析轉(zhuǎn)錄組數(shù)據(jù)。在處理RNA-Seq數(shù)據(jù)時,raw read count先被轉(zhuǎn)成log2-counts-per-million (logCPM),然后對mean-variance關(guān)系建模。limma使用線性模型來分析microarray和RNA-seq數(shù)據(jù)。通過經(jīng)驗Bayes方法來調(diào)整基因表達(dá)值,以提高差異基因的檢測能力,并使用FDR控制方法進行多重檢驗校正。limma也提供了許多可視化方法,如MA圖、Heatmap和Volcano圖等。
?
小云以limma為例,帶大家實踐一下吧~
design <- model.matrix(~0+group+lane)
colnames(design) <- gsub("group", "", colnames(design))
?
contr.matrix <- makeContrasts(
???BasalvsLP = Basal-LP,
???BasalvsML = Basal - ML,?
? LPvsML = LP - ML,
???levels = colnames(design))
?
par(mfrow=c(1,2))
v <- voom(x, design, plot=TRUE)
?
vfit <- lmFit(v, design)
vfit <- contrasts.fit(vfit, contrasts=contr.matrix)
efit <- eBayes(vfit)
?
summary(decideTests(efit))
?
tfit <- treat(vfit, lfc=1)
dt <- decideTests(tfit)
summary(dt)
?
de.common <- which(dt[,1]!=0 & dt[,2]!=0)
length(de.common)
?
vennDiagram(dt[,1:2], circle.col=c("turquoise", "salmon"))
?
#韋恩圖展示了僅basal和LP(左)、僅basal和ML(右)的對比的DE基因數(shù)量,還有兩#種對比中共同的DE基因數(shù)量(中)。在任何對比中均不差異表達(dá)的基因數(shù)量標(biāo)于右下。
?

library(gplots)
basal.vs.lp.topgenes <- basal.vs.lp$ENTREZID[1:100]
i <- which(v$genes$ENTREZID %in% basal.vs.lp.topgenes)
mycol <- colorpanel(1000,"blue","white","red")
heatmap.2(lcpm[i,], scale="row",
???labRow=v$genes$SYMBOL[i], labCol=group,
???col=mycol, trace="none", density.info="none",
???margin=c(8,6), lhei=c(2,10), dendrogram="column")
#在basal和LP的對比中前100個DE基因log-CPM值的熱圖。調(diào)整后,每個基因(每行)#的表達(dá)均值為0,并且標(biāo)準(zhǔn)差為1。給定基因相對高表達(dá)的樣本被標(biāo)記為紅色,相對低表達(dá) ?#的樣本被標(biāo)記為藍(lán)色。淺色和白色代表中等表達(dá)水平的基因。樣本和基因已通過分層聚類的 ?#方法重新排序。圖中還顯示有樣本聚類的樹狀圖。

以上就是基因差異性分析常用的R包~歡迎大家來和小云交流哦!
?

