DAVID网址
https://david.ncifcrf.gov/home.jsp
绘图使用R语言(R4.2)
网页使用流程
第一步-选择Start Analysis开始分析
第二步-进入页面在左侧边栏选择Upload
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
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注释信息
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打开)。备注:保留文件,稍后画图用。
第五步--获取KEGG注释信息
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注释适合条形图###
##代码可以接上面的直接一起运行
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)