2021-03-23 GO富集分析气泡图

先在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")

你可能感兴趣的:(2021-03-23 GO富集分析气泡图)