技术贴 | R语言:如何绘制合并气泡图?
本文由yang根据实践经验而整理,希望对大家有帮助。
原创微文,欢迎转发转载。
在组学数据挖掘中在进行差异基因表达分析时,得到显著差异基因后,接下来就需要分析这些基因参与了哪些功能,常见的就是GO功能注释和KEGG通路富集分析。GO: 基因本体(Gene Ontology)是一个在生物信息学领域中广泛使用的本体,它涵盖生物学的三个方面:细胞组分(cellular component)、分子功能(Molecular Function)、生物过程(biological process)。KEGG(Kyoto Encyclopedia of Genes and Genomes)数据库是系统分析基因产物在细胞中的代谢途径以及这些基因产物功能的数据库。富集分析完成后,气泡图常常会作为一种方式进行可视化。
R语言如何绘制合并气泡图
##加载R包,更改工作目录,读取数据文件。
library(ggplot2)
setwd("F:/222")
df <-read.table("GO_enrichment.xls",header=TRUE,sep='\t')
###header=T,表示第一行为列名,T=TRUE。需要包含以下主要的数据:category,Term,DEG,Total和qvalue这几列。
##1.1 挑选qalue值<0.05的GO Term 条目进行展示
out_df <- df[df$qvalue<0.5, 1:9]
dim(out_df)
head(out_df)
out_df$Term=factor(out_df$Term,levels=out_df$Term)
#rich factor,指特定Term中注释到的目标基因数目与背景基因数目的比值
out_df$rich=out_df$DEG/out_df$Total
out_df$Number=out_df$DEG
#ggplot 绘制气泡图
ggplot(out_df,aes(rich,Term)) +
geom_point(aes(size=Number,color=qvalue)) +
scale_colour_gradient(low="red",high="green",limits=c(0,0.5)) +
theme(panel.background=element_rect(fill="white",color="black"),
panel.grid.major=element_line(color="grey80",linetype="dotted"))
##这样转录组文章当中大家经常见到的气泡图就制作完成了。
##这是2019年刚刚发表在International Journal of Molecular Sciences 上的一篇文章中出现的气泡图,论文的题目为Biosynthesis and Signal Transduction of ABA, JA, and BRs in Response to Drought Stress of Kentucky Bluegrass。可以看到作者用到了6个气泡图,不难发现,作者文章的整体篇幅占用比较大,怎么通过R语言将气泡图几个合成一个那。
##1.2 只画qvalue<0.5的,并体现富集到的term所属类别比较中。
ggplot(out_df,aes(rich,Term)) +
geom_point(aes(size=Number,color=qvalue,shape=Category)) +
scale_colour_gradient(low="red",high="green",limits=c(0,0.5)) +
theme(panel.background=element_rect(fill="white",color="black"),
panel.grid.major=element_line(color="grey80",linetype="dotted"))
##这样子可以看出几个比较能够放在一张气泡图当中,更好的节省文章的篇幅,节省版面费,文章也更加美观,组间之间的差异更好的显现出来。
感谢阅读!