simplifyEnrichment | 让我来做你的富集结果的瘦身教练吧!~

news2025/1/10 10:38:32

1写在前面

最近真是烦心啊,事事不顺,找个日子我要找大师算一卦。😂

大家基本都会做富集分析,但有时候terms实在太多,读起来真是累,也搞不清到底谁是其中相对重要的。🥲

之前有一些R包通过计算基因集的overlap,进行term合并,效果也还可以。🥰

今天跟大家介绍的是simplifyEnrichment包,通过计算语义相似性矩阵来合并terms,效果也是要比计算基因overlap要好的多(这可不是我空口说的,这是原文比较的结果)。🤩

2用到的包

library(tidyverse)
library(simplifyEnrichment)

3示例数据

我们随便生成500GOterm吧。

set.seed(111)
go_id <- random_GO(500)
head(go_id)
alt

4给GO瘦个身

mat <-  GO_similarity(go_id, 
ont = c("BP", "CC", "MF"),
db = 'org.Hs.eg.db',
measure = "Rel",
remove_orphan_terms = F)

5计算相似性并可视化

df <-  simplifyGO(mat)
alt

看看有多少个cluster。😏

head(df)
sort(table(df$cluster))
alt

split函数,分开查看。🤓

split(df, df$cluster)
alt

6单纯聚类

如果你不需要出图,只要聚类,可以在simplifyGO()函数使用时将plot设置为F

当然,你也可以使用binary_cut()cluster_terms()。🧐

binary_cut(mat)
alt

cluster_terms(mat, method = "binary_cut")
alt

7给其他聚类结果瘦身

可以瘦身的不仅仅是GO的富集结果,你也可以使用其他的,下面一些函数补充给大家:👇

  • term_similarity_from_enrichResult();
  • term_similarity_from_KEGG();
  • term_similarity_from_Reactome();
  • term_similarity_from_MSigDB();
  • term_similarity_from_gmt();

8多列表GO-ID的应用

我们经常会有好几个GO-IDlist,想要比较一下,找到有意义的terms,就需要用到simplifyGOFromMultipleLists()函数了。

8.1 创建模拟数据

这里我们用一下cola包的示例数据,生成3list。🥳

library(cola)
data(golub_cola)
res <- golub_cola["ATC:skmeans"]

library(hu6800.db)
x <- hu6800ENTREZID
mapped_probes = mappedkeys(x)
id_mapping = unlist(as.list(x[mapped_probes]))

lt <- functional_enrichment(res, k = 3, id_mapping = id_mapping)
alt

8.2 查看list名

names(lt)
alt

8.3 查看数据

操作和常用的list操作是一样的。😚

head(lt[[1]][, 1:7])
alt

8.4 比较一下并可视化

这里我们把padj_cutoff设置的小一点,以便节省时间。😏

simplifyGOFromMultipleLists(lt, padj_cutoff = 0.001)
alt

8.5 其他格式

输入数据也可以是其他格式的,这里补充两个。👇

1️⃣

lt2 <- lapply(lt, function(x) structure(x$p.adjust, names = x$ID))

simplifyGOFromMultipleLists(lt2, padj_cutoff = 0.001)
alt

2️⃣ simplifyGOFromMultipleLists的输入数据一般有3种类型:🤒

  • adjusted p-values的向量列表,以 GO-ID为名;
  • data frame,包含 go_id_columnpadj_column列,
  • GO-ID的字符向量列表,每个字符向量将被改变为一个数字向量,所有的值都为 1,原来的 GO- IDs被用作向量的名称。

lt3 <- lapply(lt, function(x) x$ID[x$p.adjust < 0.001])
simplifyGOFromMultipleLists(lt3)
alt

9如何引用

📍
Gu Z, Hübschmann D. Simplify enrichment: A bioconductor package for clustering and visualizing functional enrichment results [published online ahead of print, 2022 Jun 6]. Genomics Proteomics Bioinformatics. 2022;S1672-0229(22)00073-0. doi:10.1016/j.gpb.2022.04.008 IF: 6.409 Q1


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

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

📍 往期精彩

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

本文由 mdnice 多平台发布

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

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

相关文章

【告别篇】大家好,再见了,我转行了,在筹备创业

前言 相信大家也一直看到我的博客没有更新过了&#xff0c;我其实很久没有打开过博客了&#xff0c;也就意味着我很长一段时间都在停滞不前&#xff0c;没有了学习的动力。 现在我上来是想跟大家告个别 &#xff1a; 很多粉丝宝宝的私信我看了&#xff0c;但是没有回&#xf…

并查集结构

文章目录并查集特点构建过程查找两个元素是否是同一集合优化查找领头元素设置两个元素为同一集合构建结构应用场景并行计算集合问题并查集特点 对于使用并查集构建的结构&#xff0c;可以使得查询两个元素是否在同一集合&#xff0c;以及合并集合的操作无限接近O(1) 构建过程…

Intellij idea使用Statistic统计代码行数的方法

一、安装Statistic1、打开IDEA2、打开settings进行设置3、选择plugins&#xff0c;搜索Statistic并安装4、下载完成之后&#xff0c;重启IDEA&#xff0c;此时Statistic就安装好了二、使用Statistic1、安装好Statistic之后我们可以通过以下步骤 将Statistic插件的控制台展示出来…

2023年Dubbo常见面试题

2023年Dubbo常见面试题 Dubbo 中 zookeeper 做注册中心&#xff0c;如果注册中心集群都挂掉&#xff0c;发布者和订阅者之间还能通信么&#xff1f; 可以通信的&#xff0c;启动 dubbo 时&#xff0c;消费者会从 zk 拉取注册的生产者的地址接口等数据&#xff0c;缓存在本地。…

3/2考试总结

时间安排 7:30–7:50 读题&#xff0c;T1 貌似是个构造&#xff0c;T2 应该是个圆方树 dp 加上一些神秘的暴力&#xff0c;T3 不知道是啥。 7:50–9:00 T1,发现没法暴力。考虑能不能构造什么的&#xff0c;好像也不好构造。可能是个别的什么东西。手玩样例有一些结论&#xff…

【UE4 Cesium】加载离线地图

主体思路&#xff1a;先使用水经注软件下载瓦片数据&#xff0c;再使用Python转换瓦片数据格式&#xff08;TMS&#xff09;&#xff0c;使用Nginx发布网络服务&#xff0c;最后将网络服务加载到UE中。步骤&#xff1a;使用水经注下载瓦片数据&#xff0c;这里下载的是全球七级…

JavaSE22-集合2-map

文章目录一、集合概念二、map集合1、Map集合的特点2、HashMap2.1 HashMap特点2.2 创建对象2.3 常用方法2.4 遍历2.4.1 使用entrySet遍历2.4.2 使用keySet遍历3、HashMap的key去重原理一、集合概念 集合就是用于存储多个数据的容器。相对于具有相同功能的数组来说&#xff0c;集…

神垕古镇景区三方背后的博弈,争夺许昌第一家5A景区主导权

钧 瓷 内 参 第37期&#xff08;总第368期&#xff09; 2023年3月2日 神垕古镇景区景域&#xff0c;建业&#xff0c;孔家三方背后的博弈&#xff0c;争夺许昌第一家5A景区主导权 在博弈论&#xff08;Game Theory&#xff09;经济学中&#xff0c;“智猪博弈”是一个著名的…

Delphi 中 FireDAC 数据库连接(脱线连接 )

参见&#xff1a;Delphi 中 FireDAC 数据库连接&#xff08;总览&#xff09;述了如何使用FireDAC离线模式&#xff0c;它允许你在没有与数据库持久连接的情况下处理数据。一、概述FireDAC的离线模式类似于多层客户端&#xff0c;大部分时间客户端与数据库断开连接。只有当客户…

给深度学习研究生的入门建议(未完待续ing)

诸神缄默不语-个人CSDN博文目录 本文将系统性介绍深度学习方向&#xff08;准&#xff09;研究生可供参考的入门建议。 我的背景是浙江大学人工智能专业在读硕士&#xff0c;研究方向是GNN、NLP、司法智能。 &#xff08;我的CSDN博文基本涵盖了我所有的深度学习知识&#xff…

pytorch-多层感知机,最简单的深度学习模型,将非线性激活函数引入到模型中。

多层感知机&#xff0c;线性回归和softmax回归在内的单层神经网络。然而深度学习主要关注多层模型。在本节中&#xff0c;我们将以多层感知机&#xff08;multilayer perceptron&#xff0c;MLP&#xff09;为例&#xff0c;介绍多层神经网络的概念。 隐藏层 多层感知机在单层…

Vue环境的搭建和在vscode上的应用(Window10)

Vue环境的搭建 1.安装&#xff1a; 从官网下载安装包&#xff0c;解压到指定位置&#xff0c;就相当于安装完成了。 2.配置环境变量 找到node.js的文件夹&#xff0c;在里面找到src&#xff0c;把路径复制一下。 我在E盘建立了一个文件夹放node&#xff0c;如图找到bin的路径&…

vuecli3打包项目上线之后报错怎么使用本地的sourcemap文件定位调试?

问题 我们上线的时候一般都不会添加sourcemap文件&#xff0c;一方面为了加快构建速度&#xff0c;另一方面避免源码泄漏。所以有时出现报错的时候很难定位问题所在。 例子&#xff1a;比如我写了一个错误的代码&#xff0c;点击 <template><div class"hello&…

QT(58)-VS2010+QT4+QWT5+win32是适配的-其余版本基本不通。

正解&#xff1a; VS2010QT4QWT5win32是适配的。 其余的配置基本不通。 当我用VS2019底下的命令行编译QT库时&#xff1a; 1.编译QWT库。VS2019 QWT5源码 1.选择编译器&#xff1a;4种参数 2.到源码目录下 生成makefile 文件。 3.修改makefile 文件用于指定QT4还是QT5去编译&a…

自己动手打造一款React路由守卫

引言 用过vue的小伙伴都知道&#xff0c;vue自带路由守卫钩子并且巨他妈的好用&#xff0c;而对于react开发者来说&#xff0c;在需要路由权限校验时常常存在许多痛点问题。今天我将为大家打造一款属于我们reacter的路由守卫方法&#xff0c;希望可以为大家提供帮助。 react路…

JVM

HotSpot虚拟机结构概览 JVM是运行在操作系统之上的&#xff0c;并没有和硬件有直接的交互&#xff1b;正所谓Java代码一次编译,到处运行 方法区和堆区是所有线程共享的内存区域&#xff1b; 而java栈、本地方法栈和程序计数器是运行是线程私有的内存区域。Java栈又叫做jvm虚拟…

c语言指针怎么理解 第二部分

第四&#xff0c;指针有啥用。 比方说&#xff0c;我们有个函数&#xff0c;如下&#xff1a; int add&#xff08;int x){ return (x1); //把输入的值加1并返回结果。 } 好了&#xff0c;应用的时候是这样的&#xff1a; { int a1; aadd(a); //add函数返回的是a1 //现在 a等于…

在苹果电脑 mac 上安装原神(playCover)

该方法只能在 M1、M2 mac 上安装原神 目录前言一、首先下载安装 playCover1. playCover 下载2. playCover 安装安装出现问题解决方法二、下载安装原神1.安装包下载2.安装原神三、登录、键盘映射及版本更新等问题登录键盘映射版本更新前言 最近买了新的mac&#xff0c;作者本人…

Python自动化测试之request库【参数关联】(五)

目录&#xff1a;导读 参数关联 1、找到一个接口发送请求 2、分析返回&#xff0c;提取下一个接口需要用到请求 3、请求下一个接口&#xff0c;上一个接口的返回当作请求参数 正则表达式提取数据 1、请求接口&#xff0c;查看返回内容 2、通过正则表达式取数据 3、上一…

借助阿里云 AHPA,苏打智能轻松实现降本增效

作者&#xff1a;元毅 “高猛科技已在几个主要服务 ACK 集群上启用了 AHPA。相比于 HPA 的方案&#xff0c;AHPA 的主动预测模式额外降低了 12% 的资源成本。同时 AHPA 能够提前资源预热、自动容量规划&#xff0c;能够很好的应对突发流量。” ——赵劲松 (高猛科技高级后台工…