TCGA|GEO可视化分析第2篇

导读:之前讲了如何用筛选出的差异基因做做相关性分析。那今天我和各位小伙伴深入的讲一下:(1)如何用clusterProfiler做KEGG|GO富集条形图,气泡图;(2)如何用enrichplot做gene-GO terms|gene-KEGG pathways网络图;(3)如何用GOplot绘制gene-GO terms|gene-KEGG pathways和弦图;(4)如何用heatplot绘制gene-GO terms|gene-KEGG pathways关系瀑布图。

正文:GO,KEGG富集分析条形图(barplot)和气泡图(dotplot)都只显示最显著的富集项,而用户如果想知道哪些基因与这些显著项有关,该怎么办呢?cnetplot就是将基因GO terms或KEGG pathways之间的联系描述为一个网络,体现gene-GO terms|gene-KEGG pathways的关系趋势。瀑布图(heatplot)与cnetplot类似,它将gene-GO terms|gene-KEGG pathways关系显示为热图。因为gene-GO terms|gene-KEGG pathway网络图可能会过于复杂,热图可以简化结果,更容易识别表达模式。

Part1:KEGG|GO富集条形图,气泡图

  1. library(openxlsx)
  2. library(clusterProfiler)
  3. library(ggplot2)
  4. library(enrichplot)
  5. library(GOplot)
  6. library(DOSE)
  7. library(stringr)
  8. #先把需要用到的包加载好,没有安装的依赖包一起安装一下。安装好所有的包之后,下面我们开始读取数据。
  9. setwd("E:\\Bioinfo_analysis\\scripts\\corr\\corr_batch") #设置工作路径
  10. fr<-read.xlsx('DEGs.xlsx',rowNames = F,colNames = T) #数据格式如下
  1. gene<-bitr(fr$Genes,fromType = 'SYMBOL',toType = 'ENTREZID',OrgDb = 'org.Hs.eg.db') #基因名ID转换,把基因名转换成ENTREZID
  2. GO<-enrichGO(
  3. gene$ENTREZID,
  4. OrgDb = 'org.Hs.eg.db',
  5. keyType = "ENTREZID",
  6. ont = "ALL",
  7. pvalueCutoff = 0.05,
  8. pAdjustMethod = "BH",
  9. qvalueCutoff = 0.05,
  10. minGSSize = 10,
  11. maxGSSize = 500,
  12. readable = TRUE
  13. ) #GO富集
  14. KEGG<-enrichKEGG(
  15. gene$ENTREZID,
  16. organism = "hsa",#我用到是数据是人的组织数据,所以这里选择‘hsa’
  17. keyType = "kegg",
  18. pvalueCutoff = 0.05,
  19. pAdjustMethod = "BH",
  20. universe,
  21. minGSSize = 5,
  22. maxGSSize = 500,
  23. qvalueCutoff = 0.2,
  24. use_internal_data = FALSE
  25. ) #KEGG富集
  26. barplot(GO, split="ONTOLOGY")+facet_grid(ONTOLOGY~., scale="free") #GO聚类条形图,fig1

BP:生物过程,CC:细胞组成,MF:分子功能。

dotplot(GO, split="ONTOLOGY")+facet_grid(ONTOLOGY~., scale="free") #GO聚类气泡图,fig2
barplot(KEGG,showCategory = 40,title = 'KEGG Pathway') #KEGG聚类条形图,fig3
dotplot(KEGG) #KEGG聚类气泡图,fig4

Part2:gene-GO terms|gene-KEGG pathways网络图

其实以上都是KEGG和GO相关的常规分析,GO,KEGG富集分析条形图(barplot)和气泡图(dotplot)都只显示最显著的富集项,而用户如果想知道哪些基因与这些显著项有关,该怎么办呢?下面我们再升级一下。

enrichplot::cnetplot(GO,circular=TRUE,colorEdge = TRUE)#GO通路-基因网络图,fig5
enrichplot::cnetplot(KEGG,circular=TRUE,colorEdge = TRUE)#KEGG通路-基因网络图,fig6

Fig5和fig6体现的就是KEGG和GO每个富集项中都有哪些基因,我们由此也可以推测一些基因的功能。

Part3:gene-GO terms|gene-KEGG pathways关系瀑布图

我们筛选的差异基因还是比较少的,这样的网路图看起来还是很容易区分不同的表达模式的,不过当差异基因过多的时候,这样的网络图就会显得比较乱,可能过于复杂,那我们应该怎么办呢?不用慌,我们可以用瀑布图来展示。瀑布图(heatplot)与cnetplot类似,它将gene-GO terms|gene-KEGG pathways关系显示为热图,热图可以简化结果,更容易识别表达模式。

enrichplot::heatplot(GO,showCategory = 50) #GO富集瀑布图,fig7
enrichplot::heatplot(KEGG,showCategory = 50) #kegg富集瀑布图,fig8

从Fig7和fig8中就可以更容易识别不同基因的表达模式。

Part4:gene-GO terms|gene-KEGG pathways和弦图

有些小伙伴说想让图能体现功能的同时更炫酷一点。OK,我们还可以再升级一下,此时用和弦图展示你的结果,定会让你的图片逼格升一个档次。好了,直接上代码。

GOplotIn<-GO[1:10,c(2,3,7,9)] #我们先提取GO富集结果的前10行,和提取ID,Description,p.adjust,GeneID四列。
  1. GOplotIn$geneID <-str_replace_all(GOplotIn$geneID,'/',',') #把GeneID列中的’/’替换成‘,’
  2. names(GOplotIn)<-c('ID','Term','adj_pval','Genes')#修改列名,后面和弦图绘制的时候需要这样的格式,不然会报错
  3. GOplotIn$Category = "BP"#因为我们提取的前10列为BP,所以再加一列分类信息
  1. #构建基因表达矩阵
  2. genedata<-data.frame(ID=fr$Genes,logFC=fr$logFC)

circ<-GOplot::circle_dat(GOplotIn,genedata) #GOplot导入数据格式整理

chord<-chord_dat(data = circ,genes = genedata) #生成含有选定基因的数据框

好了,到此数据都整理好了,开始画和弦图。

  1. GOChord( #GO富集和弦图,fig9
  2. data = chord,
  3. title = 'GOchord plot',
  4. space = 0,#GO Term间距
  5. limit = c(1,1),
  6. gene.order = 'logFC',
  7. gene.space = 0.25,
  8. gene.size = 5,
  9. lfc.col = c('red','white','blue'), #上下调基因颜色
  10. #ribbon.col = brewer.pal(length(GOplotIn$Term)),#GO Term colors
  11. process.label = 10 #GO Term字体大小
  12. )

是不是感觉很酷炫,撒花~~~~~~~~~~~~~~~~~~

 

还可以和弦图+表格一起展示GO富集结果,往下看:

GOCircle(circ) #和弦图+表格,fig10

也可以聚类热图的形式展示,GO富集结果:

GOCluster(circ,GOplotIn$Term) #GO富集聚类图,fig11

以上就是GO和KEGG富集相关的分析,学会这些足以了,以后再也不用担心怎么去做GO,KEGG分析了。喜欢的小伙伴可以给个赞哦,有疑问和建议可以后方留言哦!

(0)

相关推荐

  • cytoscape插件之Cluego&Cluepedia

    五一劳动节,连续五天,在钉钉群直播互动授课带领大家系统性掌握cytoscape软件的使用方法和技巧,课程已经结束啦.文末有录播回放学习方式,以及配套授课资料! 下面是cytoscape讲师的笔记 一. ...

  • 这个不用版面费的期刊牛呀,这么简单的纯生信也敢接收

    今天看到一个不用版面费的期刊竟然出版了一篇非常简单的纯生信数据挖掘的文章,这篇文章就做了GEO数据的差异分析.GO富集分析.KEGG富集分析.PPI分析,连生存分析都没有做的.这个不用版面费的期刊就是 ...

  • 非肿瘤低分灌水思路

    An Integrated Network Analysis of mRNA and Gene Expression Profiles in Parkinson's Disease 帕金森病mRNA和 ...

  • 关于功能富集分析的基础知识

    富集分析基因富集分析(gene set enrichment analysis)是在一组基因或蛋白中找到一类过表达的基因或蛋白.研究方法可分为三种:Over-Repressentation Analy ...

  • 生信编程直播第七题:写超几何分布检验!

    下载数据 切换到工作目录:cd d/生信技能树-视频直播/第七讲 kegg2gene(第六讲kegg数据解析结果) 暂时不用新的kegg注释数据为了能够统一答案 差异基因list和背景基因list 关 ...

  • GEO联合TCGA数据挖掘文献分享

    今天要介绍的这篇章是我们中国人写的,发表在Med Sci Monit上,这篇文章主要是通过下载GEO和TCGA的数据,通过差异表达分析,GO富集分析.KEGG富集分析,PPI分析,COX回归分析,筛选 ...

  • 手把手教你用R做GSEA分析

    GSEA是非常常见的富集分析方式,以前我们做GSEA需要用依赖java的GSEA软件,那个时候准备分析的文件可能要花上很长时间,报错还不知道如何处理.现在我们来学习一下R语言进行GSEA分析. 加载R ...

  • 课堂教学改革典型案例分析(5篇模版)

    第一篇:课堂教学改革典型案例分析 庙头中心小学课堂教学改革典型案例分析 随着课改的不断深入,我校全体老师肯钻研,勇创新,对课程理念有了更加深刻和清晰的认识,理清了头绪,抓住了特色,明确了前进的方向.教 ...

  • 爬取腾讯视频《哈哈哈哈哈》50000条弹幕,进行可视化分析

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于菜J学Python ,作者J哥 前言 最近由腾讯视频.爱奇艺联合出品综艺<哈哈 ...

  • 【网络首发】基于可视化分析的科技期刊出版研究文献分析

    网络首发 DOI | 10.19619/j.issn.1007-1938.2021.00.024 作者单位 | 1)大连理工大学经济管理学院:2)教育部科技发展中心 * 基金项目:国家自然科学基金项目 ...

  • 【手把手教你】Python获取财经数据和可视化分析

    [手把手]教你用Python获取财经数据和可视化分析 "巧妇难为无米之炊",找不到数据,量化分析也就无从谈起.对于金融分析者来说,获取数据是量化分析的第一步.Python的一个强大 ...

  • 最全二极管应用分析系列——整流篇

    二极管的基本应用--整流 二极管的单向导电性使其在整流.限幅.钳位.开关.检波和续流等电路中有着广泛的应用. 整流电路 1.什么是整流? 答:在电力电子应用中,将交流电变换为直流电的这种AC/DC(A ...

  • 如何学习技术分析(前言篇)

    2010/04/04 这个系列主要写给正在学习技术分析的朋友.其实,各类技术分析方法并不是这里重要陈述的,因为要详细讲述那些内容,需要更大的篇幅,甚至需要一本书去写.实际上,你花上几十块钱就可以买到一 ...

  • B端设计:数据可视化 (一) 图表选择篇

    编辑导读:数据可视化是B端设计最常见的设计之一.在一个产品中,如何清晰.高屏效展示数据,让用户高效.简洁的读取数据并做出判断,这是B端设计师的基础技能.本文作者分享了自己做数据可视化的经验,本篇为图表 ...

  • Seaborn Pandas带你玩转股市数据可视化分析

    价值前瞻 123篇原创内容 公众号 来源:数据STUDIO 导读: 前面探索性数据分析在介绍可视化探索特征变量时已经介绍了多个可视化图形绘制方法,本文继续介绍两大绘图技巧,分布使用seaborn与pa ...

  • 情报研判可视化分析平台开发解决方案

    公安"大数据建设"工作以信息化应用为支撑.以数据分析为主要内容.以服务于警务决策和实战为目标的工作体系.近年来,各级公安机关每天新增海量数据,类别繁杂,结构各异,这使得公安任务繁重 ...