(详细心得笔记)如何使用NCBI(DAVID)对大豆(Glycine max)基因进行GO和KEGG富集分析并绘制相应图片

DAVID网址

https://david.ncifcrf.gov/home.jsp
绘图使用R语言(R4.2)

网页使用流程

第一步-选择Start Analysis开始分析

网页首页.png

第二步-进入页面在左侧边栏选择Upload

分析界面1.png

2-1.在此页面选择1(选择Upload),在此页面2处粘贴ensemble格式的基因号(切记不可phytozome),例如:GLYMA_01G0000011

2-2.在此页面3处,选择ENSEMBL_GENE_ID选项

2-3.在此页面4处选择Gene List选项

2-4.在此页面5处点击Submit List

第三步-进入页面左侧边栏选择List

分析界面2.png

3-1.此界面注意应该是在1(List)处

3-2.在此界面2处确认自己上传基因号属于哪个物种,会给出自动识别到的Glycine max

3-3.在此界面3处确认上传的list名称,可以在此界面4(Rename)处进行修改

3-4.所有确认无误后,在此界面5处点击Use

3-5.点击右侧蓝色箭头下面的Functional Annotation Tool进行选择

第四步-获取GO注释信息

获取GO注释信息.png

4-1.取消此界面1处的默认勾选

4-2.选择此界面Gene_Ontology处的2、3、4三个选项

4-3.将此界面下啦至最低处选择Function Annotation Chart选项

4-4.Function Annotation Chart界面选择Download File选项(下图红色框;如果不能下载就在网页contral + S保存后使用Excle打开)。备注:保留文件,稍后画图用。

GO注释结果界面.png

GO/KEGG下载事例.png

第五步--获取KEGG注释信息

获取KEGG注释信息.png

5-1.取消此界面1处的默认勾选

5-2.选择此界面Pathways处的2(KEGG_PATHWAY)选项

5-3.将此界面下啦至最低处选择Function Annotation Chart选项

5-4.Function Annotation Chart界面选择Download File选项(与4-4中操作相同)备注:保留文件,稍后画图用。

第六步-使用R语言绘制GO条形图和KEGG气泡图

rm(list)=ls()         #清理掉之前任务缓存的数据  
setwd("/Users/**/Desktop/GOandKEGG/")  ##设置工作路径
library(ggplot2)  ##加载ggplot2包。如果未安装,使用install.packages("ggplot2")指令安装
df=read.table("KEGG_up.txt",sep = "\t",header = T)    #读取5-4 KEGG注释结果
#KEGG适合气泡图###
##计算Ratio和富集因子;GeneRatio即注释在该条目中的感兴趣基因占所有差异基因数的比例;Rich.factor 富集因子,表示差异基因中注释到该通路的基因比例与所有基因中注释到该通路的基因比例的比值。
df$GeneRatio <- df$Count / df$List.Total ##注意:df$后面的内容一定根表格中相应题头相对应,否则无法运行。以下皆如此。
df$Rich.factor <- (df$Count / df$List.Total)/(df$Pop.Hits/df$Pop.Total)
##根据Ratio大小排列顺序##
df <- df[order(df$GeneRatio),] ##根据什么排序就把df$后GeneRatio改成什么。
df$Function <- factor(df$Function,levels=df$Function)

pdf(file = "KEGG.pdf")
p = ggplot(df,aes(GeneRatio,Function))
pbubble = p+ geom_point(aes(color=PValue,size=Count))
pr = pbubble+scale_color_gradient(low="red",high = "blue")

pr = pr+labs(color=expression(PValue),size="Count",
             x="GeneRatio",y="")
pr + theme_bw()
print(
  pr + theme_bw()
  )
dev.off() #输出图片
GO条形图事例.png
###GO注释适合条形图###
##代码可以接上面的直接一起运行
dat = read.table("go_up.txt",header = T,sep = "\t")
##根据FoldEnrichment大小排列顺序##
dat<- dat[order(dat$Count),]
dat$Function <- factor(dat$Function,levels=dat$Function)

# 你的数据框为dat,第一列为GOTERM_MF_DIRECT、GOTERM_BP_DIRECT和GOTERM_CC_DIRECT
# 使用gsub函数进行替换
dat$Category <- gsub("GOTERM_MF_DIRECT", "MF", dat$Category)
dat$Category <- gsub("GOTERM_BP_DIRECT", "BP", dat$Category)
dat$Category <- gsub("GOTERM_CC_DIRECT", "CC", dat$Category)


p <- ggplot(dat,aes(y=Count,x=Function,fill=PValue)) + 
  geom_bar(stat="identity",position = "dodge") +
  facet_grid(Category~.,scales = "free",space = "free") + 
  coord_flip() + 
  theme_bw() +
  theme(plot.title = element_text(hjust = 0.5),
        strip.text.y = element_text(size = 14),
        legend.position="right",
        legend.title = element_text(size=18),
        legend.text = element_text(size=14),
        axis.text.x = element_text(size=14),
        axis.text.y = element_text(size=18),
        axis.title.x = element_text(size=14),
        axis.title.y = element_text(size=14))
p
ggsave(p,filename = "GO_Count.pdf",width = 20,height = 10,dpi=300)
ggsave(p,filename = "GO_Count.jpg",width = 20,height = 10,dpi=300)
KEGG气泡图事例.png

祝大家科研步步过,代码不报错~欢迎交流指导

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容