前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >🤩 WGCNA | 值得你深入学习的生信分析方法!~(网状分析-第一步-数据整理)

🤩 WGCNA | 值得你深入学习的生信分析方法!~(网状分析-第一步-数据整理)

作者头像
生信漫卷
发布于 2023-02-24 06:28:55
发布于 2023-02-24 06:28:55
79200
代码可运行
举报
运行总次数:0
代码可运行

1写在前面

最近实在是忙的不行,根本没时间更新,一到家就只想睡觉。🥹

今天写个最近用到的分析方法,Weighted correlation network analysis (WGCNA),是非常经典的生信分析方法了,现在被引有9913次了,马上就要破万啦。😘

网上相关的教程也是不胜枚举,但多多少少是有些不尽人意的地方,有的少步骤,有的代码不全。😅 这里在仔细阅读了官方手册后,在这里和大家一起认真地step by step研究一下,查缺补漏吧。🥰

2用到的包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rm(list = ls())
library(tidyverse)
library(WGCNA)

3示例数据

数据是雌性小鼠肝脏的基因表达谱,来自这篇paper:👇


Ghazalpour A, Doss S, Zhang B, et al. Integrating genetic and network analysis to characterize genes related to mouse weight. PLoS Genet. 2006;2(8):e130. doi:10.1371/journal.pgen.0020130


代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dat <-  read.csv("./FemaleLiver-Data/LiverFemale3600.csv")

DT::datatable(dat)

4整理数据

我们先提取表达矩阵,这里是需要转置的。😅

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
datExpr0 <-  as.data.frame(t(dat[, -c(1:8)]))
names(datExpr0) <-  dat$substanceBXH
rownames(datExpr0) <-  names(dat)[-c(1:8)]

DT::datatable(datExpr0)

5基因或样本过滤

有一些表达值过低的基因或样本,我们是需要过滤掉的,包里也是提供了相应的函数,我们看一下吧。😂

5.1 查看是否有不好的基因或样本

我们的数据里没有不好的基因或者样本。😘

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gsg <-  goodSamplesGenes(datExpr0, verbose = 3);
gsg$allOK

5.2 自动化过滤

这里提供一个if语句,显示不好的基因或者样本,进行自动化过滤。🥳

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (!gsg$allOK)
{
  ## 打印已删除的基因和样本名称
  if (sum(!gsg$goodGenes)>0) 
     printFlush(paste("Removing genes:", paste(names(datExpr0)[!gsg$goodGenes], collapse = ", ")));
  if (sum(!gsg$goodSamples)>0) 
     printFlush(paste("Removing samples:", paste(rownames(datExpr0)[!gsg$goodSamples], collapse = ", ")));
  datExpr0 = datExpr0[gsg$goodSamples, gsg$goodGenes]
}

6样本聚类

接着我们需要对样本进行聚类,有一些outlier的样本可能还需要去除掉。🤨

6.1 绘制聚类树

聚类的方法很多,这里整理一下:👇

  • ward.D", "ward.D2", "single", "complete", "average", "mcquitty", "median", "centroid"
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sampleTree <-  hclust(dist(datExpr0), method = "average");
plot(sampleTree, 
     main = "Sample clustering to detect outliers", 
     sub="", 
     xlab="", 
     cex.lab = 1.5, cex.axis = 1.5, cex.main = 2)

6.2 画个红线

这里我们有一个聚类比较差的样本,我们把它去掉吧。🥹

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
plo9888888=t(sampleTree, 
     main = "Sample clustering to detect outliers", 
     sub="", 
     xlab="", 
     cex.lab = 1.5, cex.axis = 1.5, cex.main = 2
     )

abline(h = 15, col = "red")

6.3 去除聚类异常的样本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
clust <-  cutreeStatic(sampleTree, cutHeight = 15, minSize = 10)
table(clust)

6.4 提取过滤后矩阵

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
keepSamples <-  (clust == 1)
datExpr <-  datExpr0[keepSamples, ]
nGenes <-  ncol(datExpr)
nSamples <-  nrow(datExpr)

DT::datatable(datExpr)

7加载临床/性状数据

接着我们把临床或性状数据(traits)导入进来,和前面的聚类树一起绘图。🥳

7.1 读入traits

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
traitData <-  read.csv("./FemaleLiver-Data/ClinicalTraits.csv");

DT::datatable(traitData)

7.2 整理traits

我们把一些不需要的traits去掉,只保留我们自己需要的,这里需要和样本名一一对应上。🤪

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
allTraits <-  traitData[, -c(31, 16)]
allTraits <-  allTraits[, c(2, 11:36) ]

femaleSamples <-  rownames(datExpr)
traitRows <-  match(femaleSamples, allTraits$Mice)
datTraits <-  allTraits[traitRows, -1]
rownames(datTraits) <-  allTraits[traitRows, 1]
collectGarbage()

DT::datatable(datTraits)

8绘制最终聚类树

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sampleTree2 <-  hclust(dist(datExpr), method = "average")
traitColors <-  numbers2colors(datTraits, 
                               signed = F,
                               colors = greenWhiteRed(100)
                               )

plotDendroAndColors(sampleTree2,
                    traitColors,
                    groupLabels =  names(datTraits),
                    main = "Sample dendrogram and trait heatmap")

9save一下

这里我们保存一下数据,下期继续。😘

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
save(datExpr, datTraits, file = "FemaleLiver-01-dataInput.RData")

10补充一下

现在很多paper都是先做差异基因分析,然后将DEGs提取出来做WGCNA,其实这种方法原作者并不推荐,还是推荐大家将所有基因初步过滤后进行WGCNA的分析,原文如下:👇

  • "We do not recommend filtering genes by differential expression. WGCNA is designed to be an unsupervised analysis method that clusters genes based on their expression profiles. Filtering genes by differential expression will lead to a set of correlated genes that will essentially form a single (or a few highly correlated) modules."

11如何引用

📍 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


最后祝大家早日不卷!~


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-02-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信漫卷 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
RNA-seq入门实战(十一):WGCNA加权基因共表达网络分析——关联基因模块与表型
连续两次求贤令:曾经我给你带来了十万用户,但现在祝你倒闭,以及 生信技能树知识整理实习生招募,让我走大运结识了几位优秀小伙伴!大家开始根据我的ngs组学视频进行一系列公共数据集分析实战,其中几个小伙伴让我非常惊喜,不需要怎么沟通和指导,就默默的完成了一个实战!
生信技能树
2022/07/26
15.3K3
RNA-seq入门实战(十一):WGCNA加权基因共表达网络分析——关联基因模块与表型
WGCNA
加权基因共表达网络分析 (WGCNA, Weighted correlation network analysis)是用来描述不同样品之间基因关联模式的系统生物学方法,可以用来鉴定高度协同变化的基因集, 测试数据下载地址:https://horvath.genetics.ucla.edu/html/CoexpressionNetwork/Rpackages/WGCNA/Tutorials/FemaleLiver-Data.zip
生信编程日常
2020/04/01
1.6K0
WGCNA
WGCNA加权基因共表达网络一步法分析学习
WGCNA是一种用于分析基因表达数据的系统生物学方法。主要用于识别在基因表达数据中呈现共表达模式的基因模块,并将这些模块与样本特征(如临床特征、表型数据)相关联,进而识别关键驱动基因或生物标志物。
凑齐六个字吧
2024/08/31
2790
WGCNA加权基因共表达网络一步法分析学习
GEO_加权共表达网络WGCNA
WGCNA(Weighted Gene Co-Expression Network Analysis,即加权基因共表达网络分析)是一种用于分析基因表达数据的系统生物学方法。WGCNA的主要目的是识别基因表达数据中的共表达模块,并研究这些模块与外部样本特征(例如,疾病状态、临床特征等)之间的关系。
sheldor没耳朵
2024/07/25
4720
GEO_加权共表达网络WGCNA
🤩 WGCNA | 值得你深入学习的生信分析方法!~(网状分析-第五步-高级可视化)
1写在前面 前面我们用WGCNA分析完成了一系列的分析,聚类分割模块。🥰 随后进一步筛选,找到与我们感兴趣的表型或者临床特征相关的模块,而且进行了模块内部分析。😘 再然后是对感兴趣模块进行功能注释,了解模块的功能及涉及的潜在机制。🥳 本期主要是介绍一些可视化的方法,大家了解一下吧。🥰 2用到的包 rm(list = ls()) library(WGCNA) library(dplyr) 3示例数据 load("FemaleLiver-01-dataInput.RData") load("FemaleLiv
生信漫卷
2023/02/24
6390
🤩 WGCNA | 值得你深入学习的生信分析方法!~(网状分析-第五步-高级可视化)
🤩 WGCNA | 值得你深入学习的生信分析方法!~(网状分析-第三步-模块与特征分析)
1写在前面 之前我们完成了WGCNA输入数据的清洗,网络构建和模块识别。😘 而且还介绍了如何对大型数据分级处理,有效地减少了内存的负担。😷 ---- 接着就是最重要的环节了,将不同module与表型或者临床特征相联系,进一步鉴定出有意义的module,并进行module内部的分析,筛选重要基因。🤒 不得不说,东西还是挺多的,而且非常重要,我们一起来试一下吧。🥰 2用到的包 rm(list = ls()) library(WGCNA) library(tidyverse) 3示例数据 load("Femal
生信漫卷
2023/02/24
5570
🤩 WGCNA | 值得你深入学习的生信分析方法!~(网状分析-第三步-模块与特征分析)
R语言实现加权共表达网络分析
WGCNA(Weighted GeneCo-Expression Network Analysis,加权共表达网络分析)分析方法旨在寻找协同表达的基因模块(module),并探索基因网络与关注的表型之间的关联关系,以及网络中的核心基因。我们今天介绍下在R语言如何实现WGCNA,此包还有一个限制那就是样本总数必须大于15。
一粒沙
2019/08/08
7.1K2
R语言实现加权共表达网络分析
WGCNA加权基因共表达网络多步法分析学习
之前笔者介绍过一步法的分析的流程: WGCNA加权基因共表达网络一步法分析学习 https://mp.weixin.qq.com/s/2Q37RcJ1pBy_WO1Es8upIg
凑齐六个字吧
2024/10/10
1850
WGCNA加权基因共表达网络多步法分析学习
WGCNA仅仅是划分基因模块,其它都是附加分析
曾老师给我分享了一篇数据挖掘的文章,里面的WGCNA非常奇怪,我之前没见过这样的模块与表型的相关性热图
生信技能树
2023/09/04
1.4K0
WGCNA仅仅是划分基因模块,其它都是附加分析
WGCNA实战练习
本文采用WGCNA官网的Tutirial 1的数据,对加权基因共表达网络分析和后续的数据挖掘的具体操作进行梳理, 数据可以从官网下载,示意图如下
生信修炼手册
2020/05/08
1.5K0
WGCNA实战练习
一文看懂WGCNA 分析(2019更新版)
不过,我这点战绩根本就算不上什么,其实这个WGCNA包已经是十多年前发表的了,仍然是广受好评及引用量一直在增加,破万也是指日可待。
生信技能树
2019/09/30
30.9K2
一文看懂WGCNA 分析(2019更新版)
🤩 WGCNA | 值得你深入学习的生信分析方法!~(网状分析-第二步补充-大数据的网络构建与模块识别)
1写在前面 之前我们完成了WGCNA输入数据的清洗,网络构建和模块识别。😘 ---- 但这里我们的示例数据内所含有的基因其实是很少的,而在实际情况中,一个简单的测序可能就要包含上万个基因,这对大家的电脑无疑是不小的压力。🤒 在WGCNA的包内其实也提供了解决方案,基本思想是分级聚类。🧐 ---- 1️⃣ 首先,我们使用快速但相对粗糙的聚类方法,用于将基因预聚类成大小接近的模块,且不超过你所设定的基因最大值。😂 2️⃣ 然后我们分别在每个模块中执行完整的网络分析。🤠 3️⃣ 最后,合并特征基因高度相关的模块。
生信漫卷
2023/02/24
4850
🤩 WGCNA | 值得你深入学习的生信分析方法!~(网状分析-第二步补充-大数据的网络构建与模块识别)
🤩 WGCNA | 值得你深入学习的生信分析方法!~(网状分析-第四步-模块的功能注释)
1写在前面 前面我们用WGCNA分析得到多个模块,其中有一些模块和我们感兴趣的表型或者临床特征是相关的。🥳 接着就是要做模块的富集分析了,帮助我们了解这些模块的基因都有哪些已知的功能,涉及到哪些通路,在哪些疾病中最为重要。🥰 现在这种做富集分析的包还是蛮多的,WGCNA包内也是内置了相关功能,不过首推的还是Y叔的clusterProfiler,在我心中真是YYDS。🫶 2用到的包 rm(list = ls()) library(WGCNA) library(tidyverse) library(cluste
生信漫卷
2023/02/24
5140
🤩 WGCNA | 值得你深入学习的生信分析方法!~(网状分析-第四步-模块的功能注释)
R中优雅的可视化WGCNA模块热图
R语言数据分析指南
2023/10/24
1.4K0
R中优雅的可视化WGCNA模块热图
WGCNA实战:识别免疫相关lncRNA
前面的推文给大家介绍了3种识别免疫相关lncRNA的方法:免疫相关lncRNA的识别
医学和生信笔记
2023/08/30
7260
WGCNA实战:识别免疫相关lncRNA
WGCNA + ssGSEA的组合分析
生物信息数据分析教程视频——16-单样本基因集富集分析(ssGSEA)用于肿瘤相关免疫细胞浸润水平评估
DoubleHelix
2023/09/06
7490
WGCNA + ssGSEA的组合分析
跟着Nature Plants学数据分析:R语言WGCNA分析完整示例
https://www.nature.com/articles/s41477-021-00897-y#data-availability
用户7010445
2023/01/06
1K0
跟着Nature Plants学数据分析:R语言WGCNA分析完整示例
加权基因共表达网络分析(WGCNA)实例
这里运行R语言包GDCRNATools的帮助文档中的例子获得胆管癌的rna表达矩阵
用户7010445
2020/03/23
2.6K0
加权基因共表达网络分析(WGCNA)实例
🤩 WGCNA | 值得你深入学习的生信分析方法!~(网状分析-第二步-网络构建与模块识别)
1写在前面 上期我们完成了WGCNA输入数据的清洗,然后进行了样本的聚类与异常值的剔除,总体来说是非常简单的。😘 这期我们继续完成WGCNA分析的第二步,网络构建和模块识别。🤒 2用到的包 rm(list = ls()) library(WGCNA) library(tidyverse) 3示例数据 load("FemaleLiver-01-dataInput.RData") 4软阈值 4.1 topology analysis 首先我们要进行soft thresholding power β的计算。🤒
生信漫卷
2023/02/24
6210
🤩 WGCNA | 值得你深入学习的生信分析方法!~(网状分析-第二步-网络构建与模块识别)
RNAseq|WGCNA-组学数据黏合剂,代码实战-一(尽)文(力)解决文献中常见的可视化图
WGCNA (weighted gene co-expression network analysis)权重基因共表达网络分析(流程模块见下图),可将表达模式相似的基因进行聚类,并分析模块与特定性状或表型之间的关联,常用于筛选关键表型的hub基因 ,是RNAseq分析中的一块很重要的拼图。而之所以叫组学数据黏合剂是因为表型可以是患者的临床信息(生存信息,分期信息,基线信息等),可以是重测序信息肿瘤(驱动基因的变异与否,signature ,CNV信息等),可以是转录组结果(免疫浸润,risk score ,GSVA ,分子分型结果),可以是单细胞数据(celltype ,AUCell 打分)等等 。注:这些在公众号之前的文章中大多都有涉及,文末有部分链接。
生信补给站
2023/08/25
1.1K1
RNAseq|WGCNA-组学数据黏合剂,代码实战-一(尽)文(力)解决文献中常见的可视化图
推荐阅读
相关推荐
RNA-seq入门实战(十一):WGCNA加权基因共表达网络分析——关联基因模块与表型
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档