R语言|KEGG通路分析图绘制|GO通路分析图绘制|按大小排列|David数据库|生物信息
R语言|KEGG通路分析图绘制|GO通路分析图绘制|按大小排列|David数据库|生物信息
·
R语言|KEGG通路分析图绘制|GO通路分析图绘制|按大小排列|David数据库|生物信息
- 首先提交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通路分析
- 下载如下三个数据,并且保存到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条内容
所有评论(0)