功能富集分析已经是解释蛋白功能和推进下游机制研究的常用手段。但是,对专心于实验的科研人而言,代码的利用和绘制个性化图片仍然是一道门槛。这里将会为科研人提供一份完整的KEGG富集分析流程,希望对各位科研工作有所帮助。输数据——显著差异基因/蛋白列表
一、输入数据——显著差异基因/蛋白列表
一张好的列表通常有以下几个特征[1]:
01 包含一些重要的基因/蛋白,比如marker genes;
02 合理的数量,100-2000;
03 fold changes≥2 and P-values≤0.05,没有必要牺牲阈值达到合理的基因数量;
04 基因集中富集于几个的通路,而不是随机散布;
05 相比于一个大小相同且随机的列表,一个好的显著差异基因/蛋白列表应该始终能富集到更多的通路;
06 具有可重复性;
07 高质量的高通量数据应该能被其他实验验证。集分析
第一步
二、富集分析
在https://david.ncifcrf.gov/tools.jsp提交列表,以蛋白组数据为例,建议使用gene symbol,最终富集列表展示gene symbol。
第二步
选择功能注释工具,可以看到网站富集到Rattus norvegicus。
第三步
按照富集红框中参数筛选结果,获得最后的富集结果。认为该通路富集的P-Value<0.05且Fold Enrichment≥1.5时,具有显著性[1]。将结果另存为一个名为pathways.txt文件,该文件放在桌面。
Count:富集到通路的基因/蛋白数量,默认为2,富集结果比较少时也可设为1,对结果影响不大;
LT(List Total):提交的列表中有功能注释的基因/蛋白的数量;
PH(Pop Hits):该通路包含的基因/蛋白的总数量;
PT(Pop Total):该物种包含的基因/蛋白的总数量;
EASE(P-Value):将Count-1/LT/PH/PT带入计算,利用Fisher’s Exact test计算P值,可以理解为更保守的P值,默认为0.1;
Fold Enrichment:
(Count/LT)/(PH/PT),表示富集程度,认为该值≥1.5时,富集具有意义。
、可视化——气泡图
第一
三、可视化——气泡图
将C:/Users/X/Desktop替换为你的桌面路径,注意斜杠方向。
第二步
直接运行代码,完成气泡图的绘制。如果大家不知道怎么运行代码,请参考另一篇分享“实用干货 | 轻松绘制Circos图——环形热图”。
##代码
library("ggplot2")
library(stringr)
work_path="C:/Users/pc/Desktop"
# kegg bubble plot----
enrich_kegg<-read.csv(paste0(work_path,"/pathways.txt"),sep= "\t",header=TRUE)
enrich_kegg<- enrich_kegg[,c('Term','PValue','Fold.Enrichment','Count')]
enrich_kegg<- enrich_kegg[1:min(20,nrow(enrich_kegg)), ]
enrich_kegg<-enrich_kegg[enrich_kegg$PValue<0.05,]
enrich_kegg$Term<-str_split_fixed(enrich_kegg$Term, ":", 2)[,2]
enrich_kegg<- enrich_kegg[order(enrich_kegg$Fold.Enrichment,enrich_kegg$Count,enrich_kegg$PValue),]
enrich_kegg$Term<-factor(enrich_kegg$Term,levels= enrich_kegg$Term)
# total
bubble_plot1<-ggplot(data=enrich_kegg,aes(y= Term,x=Fold.Enrichment,size=Count,color=PValue)) +geom_point(shape=16)+
scale_color_gradient(low="#FC3302",high="#059AFD") +scale_size_area(max_size = 15) +
labs(x="Fold Enrichment", y="") +
xlim(min(enrich_kegg$Fold.Enrichment), max(enrich_kegg$Fold.Enrichment))+guides(color= guide_colourbar(order = 1),
size = guide_legend(order = 2) ) +
theme_bw(base_size=12)+#base_family= "Times") +theme(
text=element_text(family="serif"),
panel.background = element_blank(),
panel.grid=element_line(size=.1,color= "grey50"),
panel.grid.major=element_line(size=.1,color= "grey50"),
legend.text = element_text(size = 16),
legend.title = element_text(size = 18),
axis.text.x = element_text(face = "bold", color = "black", size = 16),
axis.text.y = element_text(face = "bold", color = "black", size = 18),
axis.title.x = element_text(face = "bold", color = "black", size = 20),
axis.title.y = element_text(face = "bold", color = "black", size = 20)
)
ggsave(paste0(work_path,'/bubble.jpg'), bubble_plot1,width=320,height=220,units='mm', dpi=1200)
ggsave(paste0(work_path,'/bubble.pdf'), bubble_plot1,width=320,height=220,units='mm', dpi=1200)
参考文献: