先在AgriGO进行差异基因的GO富集分析
得到的txt结果文件的表头。
用R进行画图,以下代码。
##读取GO分析的文件
df1 <- read.table("remake/Het16-2-Het44-6/GO/down/753943391.1.txt",sep = "\t",
header = T,stringsAsFactors = F)
##因为结果中没有比率所以加一列比率(即富集因子——rich factor)
df1$bi <- df1$queryitem/df1$bgitem
##筛选df1中FDR小于0.05的条目
a <- df1[df1$FDR<0.05,]
##筛选完之后只保留第1,2,3,4,9,11列,即GO_acc,term_type,Term,queryitem,FDR,bi
a_go = a[c(1,2,3,4,9,11)]
##分别创建BP\MF\CC 三个表,完成GO富集气泡图的准备工作
abp=a_go[grep("P",a_go$term_type),]
amf=a_go[grep("F",a_go$term_type),]
acc=a_go[grep("C",a_go$term_type),]
##加载ggplot2作图
library(ggplot2)
##创建一个函数make_GO_bubble来画气泡图
make_GO_bubble <- function(go_data,term_name){
##对输入的数据按照queryitem升序排列,选择前十个
GO_DATA=go_data[order(go_data$queryitem,decreasing = T),]
GO_DATA=head(GO_DATA,10)
##创建草图,x轴为bi列,y轴为Term列
p = ggplot(GO_DATA,aes(bi,Term))
##气泡图加上了气泡,大小根据queryitem,颜色根据FDR
bubble=p+ geom_point(aes(size=queryitem,color=-log10(FDR)))
##再加上颜色变化从绿到红
bubble = bubble + scale_color_gradient(low="green",high = "red")
##图片样式
pr=bubble + theme_test(base_size = 16,base_rect_size = 1)
##字
pr=pr+labs(x="Rich factor",y=term_name,title="ENRICHMENT OF DEGS")
return(pr)
}
##画图
make_GO_bubble(abp,term_name="Biological Process")
make_GO_bubble(amf,term_name="Molecular Function")
make_GO_bubble(acc,term_name="Cell Component")
##画所有差异基因的气泡图
make_GO_bubble(a,term_name="df1")