KEGG功能富集可视化“玩出”新花样,文章档次提高的不是一点点!

组学分析是目前生物学研究中最重要的研究手段之一,而数据的可视化,发表文章也是大家所追求的。好的数据通过较好的方式呈现,能够让人眼前一亮,给文章增色不少。功能富集也是组学分析中经常用到的,而一般见到的都是柱状图的可视化方式,这样显得平平无奇。而很多高分文章都采用个性化的方式呈现结果,让文章“档次”也提高了,接下来,跟着发表在Nature CommunicationsCell上的两篇高分文章的脚步,看看GO、KEGG等结果的可视化能够呈现怎样的新花样。

数据准备

首先,为了方便演示,搜索GO数据库中的GSE124022芯片数据用于分析。

直接使用GEO2R分析差异基因(芯片数据的分析网上教程很多,这里不再赘述,仅仅用于寻找差异基因)

差异基因得到后,采用在线数据库DAVID进行GO分析(网上有相关教程)。

最终,得到富集的结果,包括GO term、P值,gene count等信息,这就是接下来需要可视化的原始文件。这里,介绍两种可视化的方法,以供选择。

这些可视化结果都是通过R软件实现的,不过只要数据结构按照要求整理,通过标准的代码都可以自己完成,不用担心R语言代码的问题。

一、可视化方式1:Treemap可视化

参考发表在Nature Communications上的文章A spatially resolved brain region- and cell typespecific isoform atlas of the postnatal mouse brain,其对功能富集的可视化采用了Treemap.

(http://127.0.0.1:37126/help/library/treemap/help/treemap)

(文章截图)

Treemap在图形呈现上给人一种层次美感,外观是高度可自动化调配的,数据的大小、文字、颜色等信息都可以映射到图形中,最后经过微调就完成了。接下来,具体看看如何呈现。

第一步,安装软件包treemap

1. install.packages('treemap')

第二步,设置工作路径,加载软件包,并读入数据

1. library(treemap) #加载数据包

2. setwd('D:/生物信息学/GO analysis') #设置工作目录

3. a <- read.table('GO练习.txt',header = T,sep = '\t') #读入分析文件

第三步,使用treemap()函数绘图,具体参数调整可以通过help(treemap)查看。绘图具体代码如下:

1. treemap(a,

2.         index='Category', #设置分组的列,也就是要显示的GO term名称

3.         vSize='Genes', #设置决定每个框面积大小的列

4.         vColor='P.Value', #设置颜色

5.         fontsize.labels=c(12, 10), #设置标签字体大小

6.         align.labels=list(c('center', 'center')), #设置标签对齐的方式

7.         border.col='black', #设置边框的颜色  

8.         border.lwds=c(4,2)#设置边框的线条的宽度

9. )

结果是这样的,与NC文章中一样。

如果想要呈现不同GO term富集的显著性,只需再加一行代码即可,指定数据填充的类型(标红),填充颜色根据显著性呈现渐变,如下:

1. treemap(a,

2.         index='Category', #设置分组的列,也就是要显示的GO term名称

3.         vSize='Genes', #设置决定每个框面积大小的列

4.         vColor='P.Value', #设置颜色

5.         type='value', #指定颜色填充数据的类型

6.         fontsize.labels=c(12, 10), #设置标签字体大小

7.         align.labels=list(c('center', 'center')), #设置标签对齐的方式

8.         border.col='black', #设置边框的颜色  

9.         border.lwds=c(4,2)#设置边框的线条的宽度

10. )

最终结果如下:

二、可视化方式2:scatterplot可视化

参考发表在Cell上的文章Proteogenomics of Non-smoking Lung Cancer in East Asia Delineates Molecular Signatures of Pathogenesis and Progression,采用了气泡图的方式,但又不同于传统的气泡图呈现方式。

(文章截图)

气泡图用点的大小表示term中包含的基因数,横坐标使用-log10(P-value),所以在作图前需要计算,富集term的名称直接显示在图上。看图可以知道,这种图需要基本的画图工具ggplot2.

(https://cran.rstudio.com/bin/windows/contrib/4.0/ggplot2_3.3.3.zip)

数据结构如下:

第一步,加载数据包,设置工作路径,读物文件。

1. install.packages('ggplot2')

2. library(ggplot2)

3. setwd('D:/生物信息学/GO analysis')

4. b <- read.table('GO_气泡图.txt',header = T,sep = '\t')

第二步画图,指定x轴为数据中-log10(P-value)那一列,y周围GO terms,气泡大小用Gene counts指定。

1. p <- ggplot(b,aes(x= X.log10.P.value.,y= Category))+ #画图指定x轴与y轴

2.        geom_point(aes(size=Gene.Count,color=Category),alpha=2)+ #指定气泡大小和颜色填充

3.        scale_size(range=c(10,25))+ #图的大小设置

4.        theme_bw()+  #设置背景为白色

5.        theme(legend.position = c('none'))+ #添加文字的位置

6.        geom_text_repel(aes(label = Category),size = 3,segment.color = 'black', show.legend = T )#设置标签

做出的图如下:

好像与文章中的图还有区别,去掉y轴刻度即可。最终效果如下:

1. p+theme(axis.text.y = element_blank())#去掉y轴刻度

很多时候,大家使用同样的方法,得到一样的结果,但是在可视化上面却是千差万别,首先要能将数据的完整性和意义呈现出来,其次就是在这个基础上,通过好的方法可视化,能够为我们的文章增添色彩。这也就是为什么那些高分文章不仅结果好,图片也看起来更舒适更漂亮的原因!

(0)

相关推荐