GSEAmining | 来看看你的GSEA结果是不是需要瘦身啦!~

news2025/8/3 1:11:55

1写在前面

最近真是累的不行,今天抽空写一下新的教程,关于人人都会做的GSEAGene Set Enrichment Analysis)。

但有时候我们做完GSEA后结果实在太多,无法确定其中重要的生物学意义,难以解释。🤨

本期我们介绍一下GSEAmining包,对我们的GSEA结果做一个瘦身吧,基本原理是:👇

1️⃣ 对参与类似生物过程的基因集应该有共同的基因
2️⃣ 对拥有一定数量的共同基因的相似基因集进行功能聚类。

2用到的包

rm(list = ls())
# if (!requireNamespace("BiocManager", quietly = TRUE))
# install.packages("BiocManager")
#
# BiocManager::install("GSEAmining")

library(dplyr)
library(GSEAmining)
library(clusterProfiler)
library(msigdbr)
library(org.Hs.eg.db)

3示例数据

这里我们从DOSE包里提取一些基因,作为我们的genelist,假装是我们的输入数据。😙

data(geneList, package="DOSE")
gene <- names(geneList)[abs(geneList) > 2]

# Entrez gene ID
head(gene)
alt

4整理gmt

这里我们用msigdbr包提取一下hallmarkGOKEGG的基因集。🤒

再也不用去下载gmt文件了,真香!~😂

h_t2g <- msigdbr(species = "Homo sapiens", category = "H") %>% 
dplyr::select(gs_name, entrez_gene)

C2_t2g <- msigdbr(species = "Homo sapiens", category = "C2", subcategory = "CP:KEGG") %>%
dplyr::select(gs_name, entrez_gene)

C5_t2g <- msigdbr(species = "Homo sapiens", category = "C5") %>%
dplyr::select(gs_name, entrez_gene)

all_t2g <- rbind(h_t2g, C2_t2g, C5_t2g)

head(all_t2g)
alt

5GSEA分析

5.1 开始GSEA

GSEA.res <- GSEA(geneList, TERM2GENE = all_t2g, pvalueCutoff = 0.1, eps = 0)
alt

5.2 将ID转为SYMBOL

GSEA.res <- setReadable(GSEA.res, keyType = "ENTREZID", OrgDb = "org.Hs.eg.db")

dat <- GSEA.res@result

5.3 过滤一下

这里我们设个阈值,过滤一下,实在是太多了。😂

gs.filt <- gm_filter(dat, 
p.adj = 0.05,
neg_NES = 2.5,
pos_NES = 2.5)

6聚类

6.1 开始聚类

这里我们进行一下hierarchical clustering,对富集结果进行一下瘦身。🤨

补充一下,这一步是基于core_enrichment的。😷

gs.cl <- gm_clust(gs.filt)
gs.cl
alt

6.2 初步可视化

画个cluster dendrogram吧, 红色 ➡️ positive, 蓝色 ➡️ negative。😙

gm_dendplot(gs.filt, 
gs.cl)
alt

6.3 改个颜色

gm_dendplot(gs.filt, 
gs.cl,
col_pos = 'orange',
col_neg = 'black',
rect = T,
dend_len = 20,
rect_len = 1)
alt

7分组评估富集结果

这里我们按cluster对各个cluster进行一下深入分析,看看那个term才是最重要的。🤩

7.1 分组分析

这里我们有4cluster,看看都是什么term吧。😁
我们用词云的方式展示下结果,越大越有意义。🧐

gm_enrichterms(gs.filt, gs.cl)
alt

7.2 不分组分析

当然你也可以不按cluster分析,全部都放在一起。😂

gm_enrichterms(gs.filt, 
gs.cl,
clust = F,
col_pos = 'chocolate3',
col_neg = 'skyblue3')
alt

8分组评估具体基因

对于找到的有意义的基因集,我们也可以看下哪个基因对其贡献最大,在其中起到最重要的作用。😏

gm_enrichcores(gs.filt, gs.cl,
col_pos = 'chocolate3',
col_neg = 'skyblue3')
alt

9如何引用

📍
Arqués O (2022). GSEAmining: Make Biological Sense of Gene Set Enrichment Analysis Outputs. R package version 1.8.0.


alt
最后祝大家早日不卷!~

点个在看吧各位~ ✐.ɴɪᴄᴇ ᴅᴀʏ 〰

📍 往期精彩

📍 🤩 WGCNA | 值得你深入学习的生信分析方法!~
📍 🤩 ComplexHeatmap | 颜狗写的高颜值热图代码!
📍 🤥 ComplexHeatmap | 你的热图注释还挤在一起看不清吗!?
📍 🤨 Google | 谷歌翻译崩了我们怎么办!?(附完美解决方案)
📍 🤩 scRNA-seq | 吐血整理的单细胞入门教程
📍 🤣 NetworkD3 | 让我们一起画个动态的桑基图吧~
📍 🤩 RColorBrewer | 再多的配色也能轻松搞定!~
📍 🧐 rms | 批量完成你的线性回归
📍 🤩 CMplot | 完美复刻Nature上的曼哈顿图
📍 🤠 Network | 高颜值动态网络可视化工具
📍 🤗 boxjitter | 完美复刻Nature上的高颜值统计图
📍 🤫 linkET | 完美解决ggcor安装失败方案(附教程)
📍 ......

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/367631.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Servlet笔记(4):表单数据

1、Servlet表单数据的方法 GET方法 http://localhost/hello?key1value1&key2value2GET方法有大小限制&#xff1a;请求字符串中最多只能由【1024】个字符 这些信息通过QUERY_STRING头传递&#xff0c;并通过【QUERY_STRING】环境变量访问&#xff0c;Servlet通过【doGet(…

SpringCloud - Gateway网关路由

目录 网关初步介绍 搭建网关服务 路由断言工厂Route Predicate Factory 路由过滤器 GatewayFilter 全局过滤器 GlobalFilter 过滤器执行顺序 网关的cors跨域配置 网关初步介绍 不是所有的请求&#xff0c;都能访问服务&#xff0c;所以需要网关对来访问的请求进行提前判…

归并排序及其应用

归并排序算法基于分而治之的概念&#xff0c;具体来说就是遍历一棵树&#xff0c;归并的过程是一个后序执行的动作。 由于我们知道每个子部分在合并后都是有序的&#xff0c;我们可以利用这个特性来解决一些问题。 上图可视化了merge sort algorithm的过程&#xff0c;我们很容…

2023年:我成了半个外包

边线业务与主线角色被困外包&#xff1b; 012022年&#xff0c;最后一个工作日&#xff0c;裁员的小刀再次挥下&#xff1b; 商务区楼下又多了几个落寞的身影&#xff0c;办公室内又多了几头暴躁的灵魂&#xff1b; 随着裁员的结束&#xff0c;部门的人员结构简化到了极致&am…

Fiddler在ios内的app中抓取https的解决方法

1、安装&设置Fiddler 查看链接---->Fiddler对PC浏览器&安卓App抓包的使用和配置 2、配置完后重启fiddler 3、ios安装证书 3.1、在fiddler右上角这里悬浮鼠标&#xff0c;查看自己电脑IP 或者通过&#xff1a; window键R&#xff0c;输入cmd&#xff0c;在命令行…

java Spring JdbcTemplate 准备工作

查看本文之前 您需要先看我 java Spring的IOC和AOP操作作为基础 如果并不掌握 可以找一下我之前的文章 都有讲到过 接下来的 我们将通过 JdbcTemplate 来做一些数据库操作 那我们就需要对 JdbcTemplate 有个基本的概念 首先 JdbcTemplate 是 Spring对 JDBC的一个很好的封装 通…

哪款蓝牙耳机延迟最低?打游戏零延迟的蓝牙耳机

我知道很多朋友会很在意声音延迟问题&#xff0c;虽然现如今蓝牙5.2甚至5.3已经可以几乎做到零延迟&#xff0c;但毕竟无线传输到现在依然存在或多或少延迟的情况出现&#xff0c;尤其是在这种蓝牙设备密集的地方&#xff0c;信号的干扰是不可避免的&#xff0c;由于技术的迭代…

【数据结构】空间复杂度

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;初阶数据结构 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对…

免去打包烦恼,自动构建你的GitHub Pages|玩转GitHub Pages三部曲(二)

本文讲述了如何利用 GitHub Actions 来自动构建 GitHub Pages 项目&#xff0c;免去繁琐的手动构建再提交过程&#xff0c;让你专注于写作。大家的点赞和互动是我更文的动力 /(ㄒoㄒ)/ 所以我决定发起一项活动&#xff0c;到三月三十一日统计&#xff0c;留言次数和赞赏次数最多…

CSDN新星计划/原力计划来喽,对此你有何期待

文章目录&#x1f31f; 写在前面&#x1f31f; 新星计划&#x1f31f; 独自开&#x1f31f; 原力计划&#x1f31f; 横穿全年的计划&#x1f31f; 写在最后&#x1f31f; 写在前面 哈喽&#xff0c;大家好&#xff0c;我是几何心凉&#xff0c;这是一份全新的专栏&#xff0c;…

辛普森悖论

感谢原作者&#xff01;原文传送门 以下是摘录&#xff1a; 1、什么是辛普森悖论&#xff1f; 辛普森悖论是 1951 年由 E.H. 辛普森提出的&#xff0c;简单来讲就是在分组比较中都占优势的一方&#xff0c;有的时候在总评中反而是失势的一方。指局部的结论和整体的结论完全相…

HashMap~

HashMap&#xff1a; HashMap是面试中经常被问到的一个内容&#xff0c;以下两个经常被问到的问题&#xff0c; Question1&#xff1a;底层数据结构&#xff0c;1.7和1.8有何不同&#xff1f; 答&#xff1a;1.7数组&#xff0b;链表&#xff0c;1.8数组&#xff0b;(链表|红…

k8s使用外部ca证书

PKI证书和要求Kubernetes 需要 PKI 证书才能进行基于 TLS 的身份验证。如果你是使用 kubeadm 安装的 Kubernetes&#xff0c; 则会自动生成集群所需的证书。你还可以生成自己的证书。 例如&#xff0c;不将私钥存储在 API 服务器上&#xff0c;可以让私钥更加安全。此页面说明了…

C++ 模板

1. 泛型编程实现一个通用的交换函数&#xff0c;使用函数重载虽然可以实现&#xff0c;但是有以 下几个不好的地方&#xff1a;1. 重载的函数仅仅是类型不同&#xff0c;代码复用率比较低&#xff0c;只要有新类型出现时&#xff0c;就需要用户自己增加对应的函数2. 代码的可维…

深度剖析数据在内存中的存储(下)(适合初学者)

上篇讲解了整形在内存中的存储方式&#xff0c;这篇文章就来继续讲解浮点数在内存中的存储方式。 上篇地址&#xff1a; (5条消息) 深度剖析数据在内存中的存储&#xff08;上&#xff09;_陈大大陈的博客-CSDN博客 目录&#xff1a; 3.浮点型在内存中的存储 3.1.浮点数的…

【Windows Server 2019】发布服务器 | 远程桌面服务的安装与配置 Ⅱ——配置RemoteAPP和访问

目录4. 配置RemoteAPP4.2 设置要发布的APP4.1 如何找到访问链接5. 访问发布的RemoteAPP关联博文4. 配置RemoteAPP 4.2 设置要发布的APP &#xff08;1&#xff09;返回【Server Manager】&#xff0c;在左侧的菜单栏中找到【Remote Desktop Services】。 &#xff08;2&#…

jupyter notebook小技巧

1、.ipynb 文件转word文档 将 jupyter notebook&#xff08;.ipynb 文件&#xff09;转换为 word 文件&#xff08;.docx&#xff09;的最简单方法是使用 pandoc。 首先安装pip install pandoc&#xff0c; 安装后&#xff0c;在将 Jupyter notebook文件目录cmd 然后输入打开…

ChatGPT 的盈利潜力:我使用语言模型赚取第一笔钱的个人旅程

使用 Fiverr、Python ChatGPT 和数据科学赚钱的指南。众所周知&#xff0c;ChatGPT 是 12 月发生的互联网突破性事件&#xff0c;几乎每个人都跳过了使用 AI 赚钱的潮流。在本文中&#xff0c;我将分享我是如何使用 ChatGPT 赚到第一笔钱的。本文包括以下主题&#xff1a;回到基…

深入理解Golang 中的Context包

context.Context是Go语言中独特的设计&#xff0c;在其他编程语言中我们很少见到类似的概念。context.Context深度支持Golang的高并发。 1.Goroutine 和channel。 在理解context包之前&#xff0c;应该首先熟悉Goroutine和Channel&#xff0c;能加深对context的理解。 1.1 Goro…

苹果设计可变色Apple Watch表带,智能穿戴玩法多

苹果最新技术专利显示&#xff0c;苹果正在为 Apple Watch 设计一款可变色的表带&#xff0c;可以根据佩戴者所穿着的服装、所在的环境等自动改变颜色。据介绍&#xff0c;这款表带里的灯丝具有电致变色功能&#xff0c;可以通过施加不同的电压&#xff0c;来实现显示多种颜色或…