這個案例來介紹GO注釋條目圖的繪制。
在對基因進行GO注釋之后,可以通過GO條目圖,直觀展示出基因的分布情況,例如不同差異表達基因,可以直觀的反映出在生物過程(biological process)、細胞組分(cellular component)和分子功能(molecular function)富集的GO term上差異基因的個數(shù)分布情況。
 1.jpg (34.06 KB, 下載次數(shù): 25) 下載附件 保存到相冊 2018-3-23 07:40 上傳 圖1:生物過程、細胞組分和分子功能三大類別分類畫的三個子圖
有多種方法繪制GO注釋結果,最簡單的方法是利用ggplot2包進行繪制。
繪制GO條目圖需要注意幾點: 1、由于GO的注釋結果可能很多,所以,每次最好取其中一部分進行繪制。例如選擇最前面的10個-30個基因來進行繪制;
2、Term中的文字較多,空間太小會重疊在一起,可以選擇變換角度顯示或者調換坐標軸。
輸入文件: 一般的GO注釋結果都包含幾個比較重要的列。Ontology,Term,GO_ID,Input_number,Percentage
 案例代碼:
#加載ggplot2包
library(ggplot2)
go <- read.csv("data/go.csv",header = T)
#View(go)
#選取數(shù)據(jù),每個分類取前10個類目
go_sort <- go[order(go$Ontology,-go$Percentage),]
m <- go_sort[go_sort$Ontology=="Molecular function",][1:10,]
c <- go_sort[go_sort$Ontology=="Cellular component",][1:10,]
b <- go_sort[go_sort$Ontology=="Biological process",][1:10,]
slimgo <- rbind(b,c,m)
#首先需要將Trem轉換為因子
slimgo$Term=factor(slimgo$Term,levels=slimgo$Term)
#有時候記不住列名,可以提前查看一下
colnames(slimgo)
#橫軸為Term,縱軸為百分比Percentage,Ontology映射為顏色
p=ggplot(data = slimgo, mapping = aes(x=Term,y=Percentage,fill=Ontology))
#繪制條形圖
p+geom_bar(stat="identity")

#進行坐標轉換
pp=p+geom_bar(stat="identity")+coord_flip()
pp=p+geom_bar(stat="identity")+coord_flip()+scale_x_discrete(limits=rev(levels(slimgo$Term)))
pp

#修改一下圖例順序
pr=pp+scale_fill_discrete(name="Ontology",breaks=c("Biological process","Molecular function","Cellular component"))
#因為已經(jīng)映射為顏色了,可以去掉圖例,節(jié)省空間,有多種方法去除圖例
pr=pp+scale_fill_discrete(name="Ontology",breaks=c("Biological process","Molecular function","Cellular component"))+guides(fill=FALSE)
pr+theme_bw()

上一篇:為什么序列拼接中,kmer只能選擇奇數(shù)? 下一篇:為何RNAseq比對率低,如何處理?
|