查看原文
其他

利用R绘制GO条目图

2017-12-06 基因学院 基因学苑


这个案例来介绍GO注释条目图的绘制。

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

图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()

测试数据以及代码下载:

链接:https://pan.baidu.com/s/1gfpN4Cr 密码:uq5z


---------- END ----------




您可能还会感兴趣的

你们想要的数据处理软件在这里

绘制manhanttan图

中国癌症大数据报告深度分析

CNV-seq分析介绍

生物学才是终极学科

如何搭建生物信息分析平台

为什么生物信息分析难学?

X战警与天赋基因检测

DNA告诉你,你从哪里来?




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存