WGCNA | 值得你深入学习的生信分析方法!~(网状分析-第四步-模块的功能注释)

news2024/11/16 11:36:16

1写在前面

前面我们用WGCNA分析得到多个模块,其中有一些模块和我们感兴趣的表型或者临床特征是相关的。🥳

接着就是要做模块的富集分析了,帮助我们了解这些模块的基因都有哪些已知的功能,涉及到哪些通路,在哪些疾病中最为重要。🥰

现在这种做富集分析的包还是蛮多的,WGCNA包内也是内置了相关功能,不过首推的还是Y叔clusterProfiler,在我心中真是YYDS。🫶

2用到的包

rm(list = ls())
library(WGCNA)
library(tidyverse)
library(clusterProfiler)
library(enrichplot)
library(org.Mm.eg.db)

3示例数据

load("FemaleLiver-01-dataInput.RData")
load("FemaleLiver-02-networkConstruction-auto.RData")

4整理富集分析的输入文件

一些不会使用代码的小伙伴可以采用将基因列表放到一些在线的网站上去做富集分析,如:👇

  • http://www.metascape.org/
  • http://kobas.cbi.pku.edu.cn/

4.1 整理文件

annot <-  read.csv(file = "./FemaleLiver-Data/GeneAnnotation.csv");
probes <- names(datExpr)
probes2annot <- match(probes, annot$substanceBXH)
allLLIDs <- annot$LocusLinkID[probes2annot];
intModules <- c("brown", "red", "salmon")

4.2 循环输出文件

这里你就可以获得你感兴趣模块的genelist了,去在线网站做富集分析吧。🤠

for (module in intModules){
modGenes <- (moduleColors==module)
modLLIDs <- allLLIDs[modGenes]
fileName <- paste("LocusLinkIDs-", module, ".txt", sep="")
write.table(as.data.frame(modLLIDs), file = fileName, row.names = F, col.names = F)
}

5内置函数进行富集分析

WGCNA包内也内置了分析函数,可以直接调用。😙

5.1 GO富集分析

GOenr <-  GOenrichmentAnalysis(moduleColors, allLLIDs, organism = "mouse", nBestP = 10);

tab <- GOenr$bestPTerms[[4]]$enrichment

names(tab)

write.table(tab, file = "GOEnrichmentTable.csv", sep = ",", quote = TRUE, row.names = FALSE)
alt

5.2 查看结果

keepCols <-  c(1, 2, 5, 6, 7, 12, 13)
screenTab <- tab[, keepCols]
numCols <- c(3, 4)
screenTab[, numCols] <- signif(apply(screenTab[, numCols], 2, as.numeric), 2)
screenTab[, 7] <- substring(screenTab[, 7], 1, 40)
colnames(screenTab) = c("module", "size", "p-val", "Bonf", "nInTerm", "ont", "term name");
rownames(screenTab) = NULL;
options(width=95)
screenTab
alt

6clusterProfiler包进行富集分析

我们再补充一个Y叔的神包clusterProfiler包进行富集分析的方法,也是我个人最推荐的。🥰


6.1 整理输入文件

这里我们假设我们感兴趣的模块是salmon, red, brown, 我们用一下compareCluster函数,将他们都展示在一张图上。🤨

salmon <- allLLIDs[moduleColors == "salmon"] %>% 
na.omit()

red <- allLLIDs[moduleColors == "red"]%>%
na.omit()

brown <- allLLIDs[moduleColors == "brown"]%>%
na.omit()

three_modules <- data.frame(id = c(salmon, red, brown),
modulecolor = rep(c("salmon", "red", "brown"),
c(length(salmon),
length(red),
length(brown))
)
)
DT::datatable(three_modules)
alt

6.2 GO富集分析

其实不光可以做GO富集分析,KEGG, ReactomeGSEA等都是可以的,看大家自己的需求吧。🤩

formula_res.GO <- compareCluster(data = three_modules, 
id~modulecolor,
fun="enrichGO",
OrgDb = 'org.Mm.eg.db')

6.3 dotplot展示富集结果

Y叔写了几种可视化的方式,不做具体介绍了,大家自己喜欢什么样的就弄成什么样吧,颜色也是配成你的心头好就行。😏

dotplot(formula_res.GO)
alt

6.4 cnetplot展示富集结果

这种方式展示也不错,大家可以试试。🤪

cnetplot(formula_res.GO)
alt

7如何引用

📍
Langfelder, P., Horvath, S. WGCNA: an R package for weighted correlation network analysis. BMC Bioinformatics 9, 559 (2008). https://doi.org/10.1186/1471-2105-9-559


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

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

📍 往期精彩

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

本文由 mdnice 多平台发布

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

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

相关文章

贪心算法-蓝桥杯

一、贪心算法的优缺点优点&#xff1a;1.容易理解:生活常见。2.操作简单:在每一步都选局部最优。3.效率高: 复杂度常常是O(1)的。缺点&#xff1a;1.局部最优不一定是全局最优。二、例子: 最少硬币问题硬币面值1、2、5。支付13元&#xff0c;要求硬币数量最少。贪心法: (1) 5元…

工程项目管理系统源码之工程项目管理系统面临的挑战

​ ​工程项目管理系统是指从事工程项目管理的企业&#xff08;以下简称工程项目管理企业&#xff09;受业主委托&#xff0c;按照合同约定&#xff0c;代表业主对工程项目的组织实施进行全过程或若干阶段的管理和服务。 ​系统定义 工程项目管理企业不直接与该工程项目的总承包…

电商项目之电子账户的收单模式

文章目录1 问题背景2 前言3 什么是电子账户支付方式4 什么是收单模式5 电子账户有哪些收单模式5.1 Direct Pay模式5.2 Auth Capture模式5.3 ESCOW模式6 区别1 问题背景 笔者从事电商开发有1年多&#xff0c;对接了10几个信用卡支付方式&#xff0c;也接触了像PayPal这种电子账户…

零基础学习测试还是开发?

软件测试作为IT行业的刚需职位&#xff0c;其实是非常适合0基础的小白同学加入学习的但是具体选择测试还是开发还是要看你个人的兴趣爱好以及学习能力&#xff0c;对哪个感兴趣&#xff0c;哪个能学的会就选择哪个就可以了 平时说起程序员印象中大都是做Java、做前端、做后端&…

春招Leetcode刷题日记-D4-双指针算法-滑动窗口快慢指针

D4-双指针算法-滑动窗口&&快慢指针快慢指针算力扣141. 环形链表思路代码力扣142. 环形链表 II思路代码滑动窗口力扣76. 最小覆盖子串思路代码力扣424. 替换后的最长重复字符思路代码快慢指针算 快慢指针算法&#xff0c;多用于链表当中&#xff0c;常见的如&#xff1…

Java锁相关知识

目录 线程安全 对象头Mark 偏向锁 轻量级锁 减少锁持有时间 减小锁粒度 锁分离 锁粗化 锁消除 无锁自旋锁 线程安全 多线程访问ArrayList 多线程网站统计访问人数,是否需要精确统计&#xff1f;如果不需要&#xff0c;可以不进行加锁 public static List<Integ…

ROS2 humble安装-chatgpt版本

如果按照chatgpt版本可能不合适。请一定要参考官网。ROS (Robot Operating System) 是一个开源的机器人操作系统&#xff0c;提供了一系列软件库和工具&#xff0c;用于构建机器人应用程序。以下是在 Ubuntu 系统中安装 ROS Humble 的详细步骤和方法&#xff1a;首先&#xff0…

网络安全入门必备:渗透常用命令速查手册

系统信息 arch #显示机器的处理器架构(1) uname -m #显示机器的处理器架构(2) uname -r #显示正在使用的内核版本 dmidecode -q #显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda #罗列一个磁盘的架构特性 hdparm -tT /dev/sda #在磁盘…

CMake系列:正确使用多配置编译系统

目录 常见错误 问题现象 正确做法 if指令应该什么时候使用 活学活用 把IF指令用于多配置编译系统是很多初学者容易犯下的错误。这篇文章启示性的教你如何正确理解、使用CMake的多配置编译系统。 常见错误 以Debug和Release配置有不同的宏定义为例&#xff0c;如下所示&a…

大数据选股智能推荐系统V1.0-1

很长时间没有发布博客了&#xff0c;这段时间个人确实有点忙。另外一方面在这段时间我也没有闲着。自己研发了一套大数据选股的智能推荐系统。废话不说&#xff0c;我们先来看这套系统&#xff1a;登录页面&#xff1a;&#xff08;技术点&#xff1a;验证码的生成&#xff09;…

webrtc QOS笔记一 Neteq直方图算法浅读

webrtc QOS笔记一 Neteq直方图算法浅读 文章目录webrtc QOS笔记一 Neteq直方图算法浅读Histogram Algorithm获取目标延迟遗忘因子曲线Histogram Algorithm DelayManager::Update()->Histogram::Add() 会根据计算的iat_packet(inter arrival times, 实际包间间隔 / 打包时长…

基于SpringBoot的在线课程管理系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏…

哈尔滨工业大学2020届面向服务复习笔记

目录 一、面向服务架构SOA 1.SOA概念 SOA所解决的问题 SOA的特性 SOA的特征 SOA组成要素 2.SOA服务设计原则 3.SOA协作模式 4.SOMA开发方法 SOMA生命周期 敏捷开发 服务外包与众包 5.ESB原理与机制 ESB解决的问题 ESB的功能 ESB关键技术 ESB的优势 6.服务组…

【Opencv--形态学操作】膨胀、腐蚀、开/闭操作:cv2.morphologyEx、cv2.erode、cv2.dilate

【Opencv–形态学操作】膨胀、腐蚀、开/闭操作 文章目录【Opencv--形态学操作】膨胀、腐蚀、开/闭操作1. 介绍2. 形态学操作2.1 腐蚀和膨胀2.1.1 腐蚀2.1.2 膨胀2.1.3 代码示例2.2 开/闭操作2.2.1 开操作2.2.2 闭操作2.2.3 代码示例2.3 礼帽和黑帽2.3.1 礼帽运算2.3.2 黑帽运算…

恭喜! SelectDB 五位开发者成为 Apache Doris 新晋 PMC 成员和 Committer!

近期&#xff0c;通过 Apache Doris 项目管理委员会的推荐与投票&#xff0c;Apache Doris 社区正式迎来了 2 位新晋 PMC 成员 和 8 位新晋 Committer 的加入。值得关注的是&#xff0c;2 位新晋 PMC 成员均来自 SelectDB&#xff0c;分别是衣国垒&#xff08;yiguolei&#xf…

【蓝桥杯集训4】双指针专题(6 / 6)

目录 3768. 字符串删减 - 滑动窗口ac 799. 最长连续不重复子序列 - 滑动窗口 800. 数组元素的目标和 - 二分ac 2816. 判断子序列 - 双指针 1238. 日志统计 - 滑动窗口 1240. 完全二叉树的权值 - 双指针 1、前缀和 - 通过了 5/12个数据 2、双指针 3768. 字符串删减 -…

<<Java开发环境配置>>6-SQLyog安装教程

一.SQLyog简介: SQLyog 是一个快速而简洁的图形化管理MySQL数据库的工具&#xff0c;它能够在任何地点有效地管理你的数据库&#xff0c;由业界著名的Webyog公司出品。使用SQLyog可以快速直观地让您从世界的任何角落通过网络来维护远端的MySQL数据库。 二.SQLyog下载: 下载地址…

mySQL服务主从实现

一主一从1.1 环境准备&#xff1a;centos系统服务器2台、 一台用户做Mysql主服务器&#xff0c; 一台用于做Mysql从服务器&#xff0c; 配置好yum源、 防火墙关闭、 各节点时钟服务同步、 各节点之间可以通过主机名互相通信1.2 准备步骤&#xff1a;1&#xff09;iptables -F &…

多态和可变参数

多态 多态是同一个行为具有不同的表现形式或者形态的能力 &#x1f47f;多态的作用:主要用来实现动态性,提高程序的灵活性和扩展性 &#x1f916;故事:大宝-小宝是父子,有一天小宝接到打给大宝的电话,让大宝去喝喜酒,但是大宝不在家,小宝急中生智想到假扮成大宝去参加喜宴,这个…

Unity法线贴图原理理解(为什么存在切线空间?存的值是什么?)

Unity法线贴图原理理解(为什么存在切线空间&#xff1f;存的值是什么&#xff1f;&#xff09;写在前面1、为什么用法线贴图&#xff1f;2、用什么存法线&#xff1f;3、法线向量为什么存在切线空间&#xff1f;法线贴图存得是什么&#xff1f;4、法线贴图为什么会偏蓝&#xf…