什么是火山圖火山圖(Volcano Plot)在一張圖中顯示了兩個重要的指標(biāo)(Fold change/pvalue),可以非常直觀且合理地篩選出在兩樣本間發(fā)生差異表達(dá)的基因。檢驗(yàn)分析出兩樣本間顯著差異表達(dá)的基因后,以log2(fold change)為橫坐標(biāo),以T檢驗(yàn)顯著性檢驗(yàn)P值的負(fù)對數(shù)-log10(pvalue)為縱坐標(biāo),即可得火山圖(Volcano Plot)。 這里有兩個重要概念需要了解: FDR:在差異表達(dá)分析過程中,采用Benjamini-Hochberg方法對原有假設(shè)檢驗(yàn)得到的顯著性p值(p-value)進(jìn)行校正,并最終采用校正后的p值,即FDR(False Discovery Rate)。 FC(Fold Change):兩樣品(組)間表達(dá)量的比值。
繪制火山圖我們使用R語言中的ggplot2包來繪制火山圖。首先加載R包及示例數(shù)據(jù)。 library('ggplot2') head(temp1,10) -log10FDR logFC Regulate 64170 1.971938 -2.2884388 Down 6674 1.864104 -1.2460804 Down 7401 1.864104 1.2950939 Up 57217 1.864104 -1.2676311 Down 50613 1.801074 1.6640064 Up 3433 1.801074 4.2696415 Up 54830 1.801074 -1.9012811 Down 54886 1.801074 -1.5446208 Down 6355 1.801074 1.4273926 Up 338324 1.801074 0.9592775 Normal
其中行名為GeneID,第一列為-log10FDR,第二列為log2FC,第三列為上下調(diào)信息。 將第三列設(shè)置為有序因子,方便后續(xù)圖片顏色設(shè)置。 temp1$Regulate=factor(temp1$Regulate, levels=c('Up','Down','Normal'), order=T)
繪制成點(diǎn)圖: P_volcano=ggplot(temp1,aes(x=temp1$logFC,y=temp1[,'-log10FDR']))+ geom_point(aes(color=temp1$Regulate))+
#設(shè)置點(diǎn)的顏色
scale_color_manual(values =c('Up' = 'red', 'Down' = 'blue', 'Normal' = 'grey'))+ labs(x='log2FC',y='-log10FDR')+
#增加閾值線:分別對應(yīng)FDR=0.05,|log2FC|=1
geom_hline(yintercept=-log10(0.05),linetype=4)+ geom_vline(xintercept=c(-1,1),linetype=4)+
xlim(-5,5)+ theme(plot.title = element_text(size = 25,face = 'bold', vjust = 0.5, hjust = 0.5), legend.title = element_blank(), legend.text = element_text(size = 18, face = 'bold'), legend.position = 'right', legend.key.size=unit(0.8,'cm'), axis.ticks.x=element_blank(), axis.text.x=element_text(size = 15,face = 'bold', vjust = 0.5, hjust = 0.5), axis.text.y=element_text(size = 15,face = 'bold', vjust = 0.5, hjust = 0.5), axis.title.x = element_text(size = 20,face = 'bold', vjust = 0.5, hjust = 0.5), axis.title.y = element_text(size = 20,face = 'bold', vjust = 0.5, hjust = 0.5), panel.background = element_rect(fill = 'transparent',colour = 'black'), panel.grid.minor = element_blank(), panel.grid.major = element_blank(), plot.background = element_rect(fill = 'transparent',colour = 'black')) P_volcano
結(jié)果圖如下: 
會生信,畫圖很簡單!想學(xué)的可以參考我們的作圖課程《R語言繪圖基礎(chǔ)(ggplot2)》,該課程直接從生物數(shù)據(jù)案例入手,手把手教你掌握ggplot2繪圖基礎(chǔ),從簡單的柱狀圖開始,一步一步深入,實(shí)現(xiàn)R語言繪圖技能的提高,幫你輕松做美圖更好發(fā)文章!
|