分享

利用R绘制GO条目图

 老骨头戏 2019-09-25
 这个案例来介绍GO注释条目图的绘制。

在对基因进行GO注释之后,可以通过GO条目图,直观展示出基因的分布情况,例如不同差异表达基因,可以直观的反映出在生物过程(biological process)、细胞组分(cellular component)和分子功能(molecular function)富集的GO term上差异基因的个数分布情况。

1.jpg (34.06 KB, 下载次数: 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)
#选取数据,每个分类取前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"))
#因为已经映射为颜色了,可以去掉图例,节省空间,有多种方法去除图例
pr=pp+scale_fill_discrete(name="Ontology",breaks=c("Biological process","Molecular function","Cellular component"))+guides(fill=FALSE)
pr+theme_bw()







上一篇:为什么序列拼接中,kmer只能选择奇数?
下一篇:为何RNAseq比对率低,如何处理?

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多