Skip to content

Commit

Permalink
一种很新的功能富集结果展示方法
Browse files Browse the repository at this point in the history
  • Loading branch information
ixxmu committed Jan 16, 2025
1 parent db6b372 commit 4d7d2cf
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions docs/2025-01/一种很新的功能富集结果展示方法.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
title: "一种很新的功能富集结果展示方法"
date: 2025-01-16T10:46:29Z
draft: ["false"]
tags: [
"fetched",
"生信技能树"
]
categories: ["Acdemic"]
---
一种很新的功能富集结果展示方法 by 生信技能树
------
<div><section data-tool="mdnice编辑器" data-website="https://www.mdnice.com"><blockquote data-tool="mdnice编辑器"><p>在我们新专辑<strong>《绘图小技巧2025》</strong>中,已经给大家介绍过一个高颜值两组间差异FC值比较散点图:<a href="https://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&amp;mid=2247536875&amp;idx=1&amp;sn=7e42be92f977c2a134f529e82b895ac9&amp;scene=21#wechat_redirect" data-linktype="2">顶刊 Science 文献两分组差异结果比较图复现</a>。今天我们继续来学习绘制其中另一幅的功能富集结果展示图,是一种很新的展示方法哦,且颜值高:</p></blockquote><h4 data-tool="mdnice编辑器"><span></span>含义:三组 KRAS signatures 基因做 Reactome 数据库的功能富集,并挑选 top10进行展示。<span></span></h4><figure data-tool="mdnice编辑器"><img data-imgfileid="100053387" data-ratio="0.21340887629839472" data-src="https://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wwABt0xXTdA9qnNuZE2beFiaV3RbTbZDiaPaTYAd13bMu3Zx8akUdab5jPj3wYIBsIYGBrATn0GlbHA/640?wx_fmt=png&amp;from=appmsg" data-type="png" data-w="1059" src="https://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wwABt0xXTdA9qnNuZE2beFiaV3RbTbZDiaPaTYAd13bMu3Zx8akUdab5jPj3wYIBsIYGBrATn0GlbHA/640?wx_fmt=png&amp;from=appmsg"></figure><p data-tool="mdnice编辑器"><strong>图注:</strong>Fig. 4. KRAS-ERK–dependent genes are essential for cell proliferation in PDAC. (A) Overrepresentation analysis for Reactome terms in three KRAS signatures: PDAC KRAS-ERK UP, PDAC KRASi UP, and PDAC iKras UP. The top 10 terms are shown.</p><h2 data-tool="mdnice编辑器"><span></span><span>数据准备</span></h2><h3 data-tool="mdnice编辑器"><span></span><span></span><span>1、Reactome 数据库通路</span><span></span></h3><p data-tool="mdnice编辑器">Reactome 数据库:是一个免费、开源、数据经过手动筛选和同行评审的生物分子通路知识数据库。数据库链接:https://reactome.org/。</p><p data-tool="mdnice编辑器">我们在 GSEA 的 MSigDB 数据库去下载 gmt 格式:https://www.gsea-msigdb.org/gsea/msigdb/human/collections.jsp#C2</p><figure data-tool="mdnice编辑器"><img data-imgfileid="100053384" data-ratio="0.13221601489757914" data-src="https://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wwABt0xXTdA9qnNuZE2beFiaGE1tkIWiauzJs2WspA6NcUibRHAEXNhkCibcxKpkUtU3XWoH1gqaBXJ2g/640?wx_fmt=png&amp;from=appmsg" data-type="png" data-w="1074" src="https://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wwABt0xXTdA9qnNuZE2beFiaGE1tkIWiauzJs2WspA6NcUibRHAEXNhkCibcxKpkUtU3XWoH1gqaBXJ2g/640?wx_fmt=png&amp;from=appmsg"></figure><h3 data-tool="mdnice编辑器"><span></span><span></span><span>2、三组 KRAS signatures 基因</span><span></span></h3><p data-tool="mdnice编辑器">这个数据在文章的附件:<strong>science.adk0775_data_s4.xlsx </strong>中</p><figure data-tool="mdnice编辑器"><img data-imgfileid="100053383" data-ratio="0.5051903114186851" data-src="https://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wwABt0xXTdA9qnNuZE2beFiavpJ4X9Q2RXMguw09tfB07d1JS6RzA20QaflialIbqQGNZibW8nMQqvUw/640?wx_fmt=png&amp;from=appmsg" data-type="png" data-w="578" src="https://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wwABt0xXTdA9qnNuZE2beFiavpJ4X9Q2RXMguw09tfB07d1JS6RzA20QaflialIbqQGNZibW8nMQqvUw/640?wx_fmt=png&amp;from=appmsg"></figure><h2 data-tool="mdnice编辑器"><span></span><span>开始绘图</span></h2><p data-tool="mdnice编辑器">这里依然是使用 ggplot2 进行绘制,ggplot2拥有强大的绘图系统。</p><h3 data-tool="mdnice编辑器"><span></span><span></span><span>1、读取数据</span><span></span></h3><p data-tool="mdnice编辑器">先看图中的最左边那个 signature:PDAC KRAS-ERK UP</p><pre data-tool="mdnice编辑器"><code><span>###</span><br><span>### Create: juan zhang</span><br><span>### Date:   2025-01-16</span><br><span>### Email:  [email protected]</span><br><span>### Blog:   http://www.bio-info-trainee.com/</span><br><span>### Forum:  http://www.biotrainee.com/thread-1376-1-1.html</span><br><span>### Update Log: 2025-01-16   First version </span><br><span>### </span><br><br>rm(list=ls())<br>library(ggplot2)<br>library(clusterProfiler)<br>library(org.Hs.eg.db)<br>library(GSEABase)<br>library(tidyverse)<br><br><span># three KRAS signatures: </span><br><span># 1.PDAC KRAS-ERK UP</span><br><span># 2.PDAC KRASi UP </span><br><span># 3.PDAC iKras UP</span><br><br><span># 首先是 Reactome pathways 功能富集</span><br><span># 1.PDAC KRAS-ERK UP: 表格 PDAC_siKRAS_ERKi_UP</span><br>sig1 &lt;- readxl::read_xlsx(<span>"data/science.adk0775_data_s4.xlsx"</span>, sheet = <span>"PDAC_siKRAS_ERKi_UP"</span>)<br>head(sig1)<br>gene &lt;- na.omit(sig1<span>$external_gene_name</span>)<br>head(gene)<br><br><span># [1] "AEN"    "ANTXR2" "AREG"   "AURKA"  "CDCA3"  "CDCA8"</span><br></code></pre><h3 data-tool="mdnice编辑器"><span></span><span></span><span>2、读取 reactome 通路并富集:</span><span></span></h3><pre data-tool="mdnice编辑器"><code><span>## === reactome 数据库通路富集</span><br>geneset &lt;- read.gmt(<span>"data/c2.cp.reactome.v2024.1.Hs.symbols.gmt"</span>)<br>table(geneset<span>$term</span>)<br>geneset<span>$term</span> &lt;- gsub(pattern = <span>"REACTOME_"</span>,<span>""</span>, geneset<span>$term</span>)<br><br><span># 富集</span><br>my_path &lt;- enricher(gene=gene, pvalueCutoff = 1, qvalueCutoff = 1, TERM2GENE=geneset)<br><br><span># 整理数据,挑选fdr top 10</span><br>dat &lt;- my_path@result<br>dat &lt;- dat[order(dat<span>$p</span>.adjust, decreasing = F),]<br>dat &lt;- dat[1:10, ]<br>dat<span>$Description</span> &lt;- factor(dat<span>$Description</span>, levels = dat<span>$Description</span>)<br>dat<span>$xlab</span> &lt;- 1<br>head(dat)<br>colnames(dat)<br><br><span># 字体大小</span><br>max(-log10(dat<span>$p</span>.adjust))*1.01<br></code></pre><h3 data-tool="mdnice编辑器"><span></span><span></span><span>3、使用 ggplot2 定制化绘图</span><span></span></h3><pre data-tool="mdnice编辑器"><code>p1 &lt;- ggplot(data = dat, aes(x = 1, y = rev(Description), colour = -log10(p.adjust))) +<br>  geom_text(size=-log10(dat<span>$p</span>.adjust)*0.3, aes( label = Description), hjust = 0.5) + <span># hjust = 0.5,居中对齐</span><br>  scale_color_gradient(low = <span>"#98bf92"</span>, high = <span>"#006a01"</span>) +   <span># 创建颜色渐变</span><br>  scale_x_continuous(expand = c(0,0)) + <span># 调整柱子底部与y轴紧贴</span><br>  labs(x = <span>" "</span>, y = <span>" "</span>, title = <span>"PDAC KRAS-ERK UP"</span>, color=<span>"Significance\n(-log10 adj. p-val.)"</span>) + <br>  theme(axis.text = element_blank(),  <span># 隐藏x/y轴标签</span><br>        axis.ticks = element_blank(), <span># 隐藏x/y轴刻度</span><br>        <span># 隐藏其他边框线</span><br>        panel.grid.major = element_blank(),<br>        panel.grid.minor = element_blank(),<br>        plot.background = element_rect(fill = <span>"white"</span>, color = NA),<br>        panel.background = element_rect(fill = <span>"white"</span>, color = NA),<br>        <span># 隐藏边框线</span><br>        panel.border = element_blank(),<br>        plot.title = element_text(hjust = 0.5) <span># 标题居中</span><br>        ) +<br>  <span># 添加顶部横着的黑线</span><br>  annotate(<span>"segment"</span>, x = 0, xend = 2, y = 10.6, yend = 10.6, color = <span>"black"</span>, size = 1.1)<br><br>p1<br><br><span># 保存,这里的保存宽和高进行了调整,可以使得结果比较美观</span><br>ggsave(filename = <span>"p1.png"</span>, width = 5.0, height = 3, plot = p1)<br></code></pre><p data-tool="mdnice编辑器">结果如下:</p><figure data-tool="mdnice编辑器"><img data-imgfileid="100053385" data-ratio="0.5708762886597938" data-src="https://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wwABt0xXTdA9qnNuZE2beFialiclKnExZdeRsqZ8ibVQ4cOsL4q0NLEfDewV2DtvETrVRA5wg81pYeyw/640?wx_fmt=png&amp;from=appmsg" data-type="png" data-w="776" src="https://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wwABt0xXTdA9qnNuZE2beFialiclKnExZdeRsqZ8ibVQ4cOsL4q0NLEfDewV2DtvETrVRA5wg81pYeyw/640?wx_fmt=png&amp;from=appmsg"></figure><h3 data-tool="mdnice编辑器"><span></span><span></span><span>4、同样的方法得到 PDAC KRASi UP signature 结果</span><span></span></h3><p data-tool="mdnice编辑器">Note:注意字体大小有调整</p><pre data-tool="mdnice编辑器"><code><span>################################################################################</span><br><span># PDAC KRASi UP: 表格 PDAC_siKRAS_KRASi_iKras_UP</span><br>sig2 &lt;- readxl::read_xlsx(<span>"data/science.adk0775_data_s4.xlsx"</span>, sheet = <span>"PDAC_siKRAS_KRASi_iKras_UP"</span>)<br>head(sig2)<br>gene &lt;- na.omit(sig2<span>$external_gene_name</span>)<br>head(gene)<br><br><span>## === 其他数据库通路富集</span><br>geneset &lt;- read.gmt(<span>"data/c2.cp.reactome.v2024.1.Hs.symbols.gmt"</span>)<br>table(geneset<span>$term</span>)<br>geneset<span>$term</span> &lt;- gsub(pattern = <span>"REACTOME_"</span>,<span>""</span>, geneset<span>$term</span>)<br><br><span># 富集</span><br>my_path &lt;- enricher(gene=gene, pvalueCutoff = 1, qvalueCutoff = 1, TERM2GENE=geneset)<br><br>dat &lt;- my_path@result<br>dat &lt;- dat[order(dat<span>$p</span>.adjust, decreasing = F),]<br>dat &lt;- dat[1:10, ]<br>dat<span>$Description</span> &lt;- factor(dat<span>$Description</span>, levels = dat<span>$Description</span>)<br>dat<span>$xlab</span> &lt;- 1<br>head(dat)<br>colnames(dat)<br><br><span># 字体大小</span><br>-log10(dat<span>$p</span>.adjust)*1.01<br><br>p2 &lt;- ggplot(data = dat, aes(x = 1, y = rev(Description), colour = -log10(p.adjust))) +<br>  geom_text(size=-log10(dat<span>$p</span>.adjust)*3, aes( label = Description), hjust = 0.5) + <span># hjust = 0.5,居中对齐</span><br>  scale_color_gradient(low = <span>"#dd8efb"</span>, high = <span>"#b000f6"</span>) +   <span># <span>创建颜</span><span>色</span><span>渐变</span></span><br>  scale_x_continuous(expand = c(0,0)) + <span># 调整柱子底部与y轴紧贴</span><br>  labs(x = <span>" "</span>, y = <span>" "</span>, title = <span>"PDAC KRASi UP"</span>, color=<span>"Significance\n(-log10 adj. p-val.)"</span>) + <br>  theme(axis.text = element_blank(),  <span># 隐藏x/y轴标签</span><br>        axis.ticks = element_blank(), <span># 隐藏x/y轴刻度</span><br>        <span># 隐藏其他边框线</span><br>        panel.grid.major = element_blank(),<br>        panel.grid.minor = element_blank(),<br>        plot.background = element_rect(fill = <span>"white"</span>, color = NA),<br>        panel.background = element_rect(fill = <span>"white"</span>, color = NA),<br>        <span># 隐藏边框线</span><br>        panel.border = element_blank(),<br>        plot.title = element_text(hjust = 0.5) <span># 标题居中</span><br>  ) +<br>  <span># 添加顶部横着的黑线</span><br>  annotate(<span>"segment"</span>, x = 0, xend = 2, y = 10.5, yend = 10.5, color = <span>"black"</span>, size = 1.1)<br><br><span># 保存,这里的保存宽和高进行了调整,可以使得结果比较美观</span><br>ggsave(filename = <span>"p2.png"</span>, width = 5.0, height = 3, plot = p2)<br></code></pre><p data-tool="mdnice编辑器">结果如下:</p><figure data-tool="mdnice编辑器"><img data-imgfileid="100053386" data-ratio="0.5741556534508077" data-src="https://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wwABt0xXTdA9qnNuZE2beFiaAZII1jCuqQgY3a1NHXcxKPb8GP2P2HTYOT7UST7xf84BkspMhDS5ag/640?wx_fmt=png&amp;from=appmsg" data-type="png" data-w="681" src="https://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wwABt0xXTdA9qnNuZE2beFiaAZII1jCuqQgY3a1NHXcxKPb8GP2P2HTYOT7UST7xf84BkspMhDS5ag/640?wx_fmt=png&amp;from=appmsg"></figure><h3 data-tool="mdnice编辑器"><span></span><span></span><span>5、两个图片拼接在一起</span><span></span></h3><p data-tool="mdnice编辑器">第三个图就不绘制了,同样的技巧。这里将上面两个 signature 的结果拼在一起:</p><pre data-tool="mdnice编辑器"><code>p &lt;- p1 + p2 <br>p<br><span># 保存,这里的保存宽和高进行了调整,可以使得结果比较美观</span><br>ggsave(filename = <span>"p1_p2.png"</span>, width = 10, height = 3, plot = p)<br></code></pre><p data-tool="mdnice编辑器">完美:</p><figure data-tool="mdnice编辑器"><img data-imgfileid="100053392" data-ratio="0.28055555555555556" data-src="https://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wwABt0xXTdA9qnNuZE2beFiaVbyliaGETicKoBIXUic0phkXgZGJysRc906VpeV8grQtrWicnyN1WYUKGg/640?wx_fmt=png&amp;from=appmsg" data-type="png" data-w="1080" src="https://mmbiz.qpic.cn/mmbiz_png/cZNhZQ6j4wwABt0xXTdA9qnNuZE2beFiaVbyliaGETicKoBIXUic0phkXgZGJysRc906VpeV8grQtrWicnyN1WYUKGg/640?wx_fmt=png&amp;from=appmsg"></figure><p data-tool="mdnice编辑器"><strong>友情宣传:</strong></p><p data-tool="mdnice编辑器"><strong><a href="https://mp.weixin.qq.com/s?__biz=MzI1Njk4ODE0MQ==&amp;mid=2247527230&amp;idx=1&amp;sn=7156afcd5ab734c7d391b9048695747a&amp;scene=21#wechat_redirect" data-linktype="2">生信入门&amp;数据挖掘线上直播课2025年1月班</a></strong></p><p data-tool="mdnice编辑器"><strong><a href="http://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&amp;mid=2247524148&amp;idx=1&amp;sn=7806da6feb41a36493c519c1cfc1d3ac&amp;chksm=9b4bdf8fac3c569960369602f1ef26639cb366b250f233b2297d1f059471c0458335bfc0b829&amp;scene=21#wechat_redirect" data-linktype="2">时隔5年,我们的生信技能树VIP学徒继续招生啦</a></strong></p><p data-tool="mdnice编辑器"><a href="https://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&amp;mid=2247535760&amp;idx=2&amp;sn=1e02a2e982a046ecf6389231e6768d5b&amp;scene=21#wechat_redirect" data-linktype="2">满足你生信分析计算需求的低价解决方案</a></p></section><p><mp-style-type data-value="3"></mp-style-type></p></div>
<hr>
<a href="https://mp.weixin.qq.com/s/DhfUQCkJma52djjALFsFvg",target="_blank" rel="noopener noreferrer">原文链接</a>

0 comments on commit 4d7d2cf

Please sign in to comment.