生信分析中經(jīng)常會(huì)得到一些基因,然后做GO富集分析,達(dá)到對(duì)基因進(jìn)行注釋和分類的目的。 本文利用R語(yǔ)言的ggplot2包,從頭帶您繪制可發(fā)表級(jí)別的GO富集分析結(jié)果圖。 一 載入數(shù)據(jù)集和R包 利用各種生信工具得到富集分析結(jié)果,數(shù)據(jù)列可能不一致,但關(guān)鍵幾列都有。 library(ggplot2) data <- read.csv("GO_enrichment_significant.csv",header=TRUE) head(data) 二 GO結(jié)果繪制基礎(chǔ)bar圖 參照之前ggplot2使用方法,更改geom即可繪制簡(jiǎn)單的bar圖,按照GO_category分組顏色 ggplot(data=data, aes(x=GO_term,y=Num_of_symbols_in_list_in_GO, fill=GO_category)) + geom_bar(stat="identity", width=0.8) 可看出和文獻(xiàn)中的差距較大,體現(xiàn)在以下幾個(gè)方面: A:標(biāo)題,坐標(biāo)軸“業(yè)余”; B:GO_category順序未按照輸入文件,相同GO_category沒(méi)在一起; C:橫坐標(biāo)label太長(zhǎng),重疊在一起。 三 “細(xì)節(jié)”調(diào)整GO結(jié)果bar圖 3.1 坐標(biāo)軸調(diào)整策略 #將GO_term設(shè)定為factor即可按照順序輸出 GO_term_order=factor(as.integer(rownames(data)),labels=data$GO_term) ggplot(data=data, aes(x=GO_term_order,y=Num_of_symbols_in_list_in_GO, fill=GO_category)) + geom_bar(stat="identity", width=0.8) + coord_flip() + xlab("GO term") + ylab("Num of Genes") + theme_bw() 好像有一點(diǎn)能看了,嘗試其他策略。 3.2 調(diào)整橫坐標(biāo)label策略 將label調(diào)整成一定角度傾斜 COLS <- c("#66C3A5", "#8DA1CB", "#FD8D62") ggplot(data=data, aes(x=GO_term_order,y=Num_of_symbols_in_list_in_GO, fill=GO_category)) + geom_bar(stat="identity", width=0.8) + scale_fill_manual(values = COLS) + theme_bw() + xlab("GO term") + ylab("Num of Genes") + labs(title = "The Most Enriched GO Terms")+ theme(axis.text.x=element_text(face = "bold", color="gray50",angle = 70,vjust = 1, hjust = 1 )) 嗯 ,標(biāo)簽太長(zhǎng)溢出,采取保留GO-term的前三個(gè)單詞(可以其他策略)后面...代替,可以excel或者R function 解決。 3.3 調(diào)整label長(zhǎng)度后繪圖 GO_term_order=factor(as.integer(rownames(data)),labels=labels) COLS <- c("#66C3A5", "#8DA1CB", "#FD8D62") ggplot(data=data, aes(x=GO_term_order,y=Num_of_symbols_in_list_in_GO, fill=GO_category)) + geom_bar(stat="identity", width=0.8) + scale_fill_manual(values = COLS) + theme_bw() + xlab("GO term") + ylab("Num of Genes") + labs(title = "The Most Enriched GO Terms")+ theme(axis.text.x=element_text(face = "bold", color="gray50",angle = 70,vjust = 1, hjust = 1 ))
好了 ,這樣好像比較順眼了,不管什么軟件工具得到的GO富集結(jié)果,都可以繪圖,然后,,,發(fā)文章去吧。。。 |
|