R语言|KEGG通路分析图绘制|GO通路分析图绘制|按大小排列|David数据库|生物信息

  1. 首先提交gene symbol到David网站
    在这里插入图片描述
    在这里插入图片描述
    上传后选择相应的基因列表,然后点击Function Annotation Tool进行分析

在这里插入图片描述
选择通路分析中的Pathway,并且下载相关文件
在这里插入图片描述
在这里插入图片描述
将download file中的信息复制到自己创建的txt文件中,我将其命名为KEGG.txt。
在这里插入图片描述
然后使用R语言进行绘图

绘图

# R
library(stringi)
library(ggplot2)
library(dplyr)

#设置文件目录,将这里改成你自己的KEGG存放路径就行
setwd("C:\\Users\\Liao Minzhen\\Desktop")

#读取和整理KEGG的结果
downgokegg<-read.delim("KEGG.txt.txt")
#接下来对数据处理,选择需要可视化的数据:
enrich<-downgokegg
enrich_signif=enrich[which(enrich$PValue<0.05),]
enrich_signif=enrich_signif[,c(1:3,5)]
head(enrich_signif)
enrich_signif=data.frame(enrich_signif)
KEGG=enrich_signif
KEGG$Term<-stri_sub(KEGG$Term,10,100)

#可视化,用P_value做横轴,将p值按从小到大排列,且固定顺序
KEGG_sort <- KEGG[order(KEGG$PValue), ]
KEGG_sort$Term <- factor(KEGG_sort$Term, levels = KEGG_sort$Term)

ggplot(KEGG_sort,aes(x=PValue,y=Term))+
  geom_point(aes(color=Count,size=PValue))+
  scale_color_gradient(low='slateblue4',high='firebrick3')+
  theme_bw()+
  theme(panel.grid.minor = element_blank(),panel.grid.major = element_blank())+
  theme(axis.text.x = element_text(size = 15))+ 
  theme(axis.text.y = element_text(size = 15))+
  theme(axis.title = element_text(size = 20))+
  theme(axis.title = element_text(size = 20))+
  scale_size(range = c(5, 10))
ggsave("KEGG_plot_50.png", plot = last_plot(), width = 10, height = 6)

在这里插入图片描述

GO通路分析

  1. 下载如下三个数据,并且保存到txt文件中,分别命名为BP,CC,MF,这其实是三个生物过程,可以百度搜一下~
    在这里插入图片描述
GO_CC<-read.delim('CC.txt')
GO_CC_signif=GO_CC[which(GO_CC$PValue<0.05),]
GO_CC_signif=GO_CC[,c(1:3,5)]
head(GO_CC_signif)
GO_CC_signif=data.frame(GO_CC_signif)
GO_CC_signif$Term<-stri_sub(GO_CC_signif$Term,12,100)
GO_BP<-read.delim('BP.txt')
GO_BP_signif=GO_BP[which(GO_BP$PValue<0.05),]
GO_BP_signif=GO_BP_signif[,c(1:3,5)]
head(GO_BP_signif)
GO_BP_signif=data.frame(GO_BP_signif)
GO_BP_signif$Term<-stri_sub(GO_BP_signif$Term,12,100)
GO_MF<-read.delim('MF.txt')
GO_MF_signif=GO_MF[which(GO_MF$PValue<0.05),]
GO_MF_signif=GO_MF_signif[,c(1:3,5)]

head(GO_MF_signif)
GO_MF_signif=data.frame(GO_MF_signif)
GO_MF_signif$Term<-stri_sub(GO_MF_signif$Term,12,100)
enrich_signif=rbind(GO_BP_signif,rbind(GO_CC_signif,GO_MF_signif))
go=enrich_signif
go=arrange(go,go$Category,go$PValue)
#对于读取的数据小伙伴可以在参数设置选择自己想可视化的数据结果。接下来我们设置一下图例的名称:
##图例名称设置
m=go$Category
m=gsub("TERM","",m)
m=gsub("_DIRECT","",m)
go$Category=m
GO_term_order=factor(as.integer(rownames(go)),labels = go$Term)
COLS<-c("#66C3A5","#8DA1CB","#FD8D62")

###开始画图

ggplot(data=go,aes(x=GO_term_order,y=Count,fill=Category))+
  geom_bar(stat = "identity",width = 0.8)+
  scale_fill_manual(values = COLS)+
  theme_bw()+
  xlab("Terms")+
  ylab("Gene_counts")+
  labs()+
  theme(axis.text.x = element_text(face = "bold",color = "black",angle = 90,vjust = 1,hjust = 1))
ggsave("GO_plot.png", plot = last_plot(), width = 10, height = 6)
  1. 图片如下
    在这里插入图片描述
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐