🤩 WGCNA | 值得你深入学习的生信分析方法!~(网状分析-第二步-网络构建与模块识别)

写在前面

上期我们完成了WGCNA输入数据的清洗,然后进行了样本的聚类与异常值的剔除,总体来说是非常简单的。 😘
这期我们继续完成WGCNA分析的第二步,网络构建和模块识别。🤒

用到的包

rm(list = ls())
library(WGCNA)
library(tidyverse)

示例数据

load("FemaleLiver-01-dataInput.RData")

软阈值

4.1 topology analysis

首先我们要进行soft thresholding power β的计算。🤒

powers <-  c(c(1:10), seq(from = 12, to=20, by=2))

sft <-  pickSoftThreshold(datExpr, powerVector = powers, verbose = 5)

4.2 可视化

这个时候我们可以看到最佳的soft thresholding power β6,后面我们会用到。😚

sizeGrWindow(9, 5)
par(mfrow = c(1,2))
cex1 = 0.9;

plot(sft$fitIndices[,1], -sign(sft$fitIndices[,3])*sft$fitIndices[,2],
xlab="Soft Threshold (power)",
ylab="Scale Free Topology Model Fit,signed R^2",
type="n",
main = paste("Scale independence"))
text(sft$fitIndices[,1], -sign(sft$fitIndices[,3])*sft$fitIndices[,2],
labels=powers,cex=cex1,col="red")

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

plot(sft$fitIndices[,1], sft$fitIndices[,5],
xlab="Soft Threshold (power)",
ylab="Mean Connectivity", 
type="n",
main = paste("Mean connectivity"))
text(sft$fitIndices[,1], sft$fitIndices[,5], labels=powers, cex=cex1,col="red")

构建网络与模块识别(一步法)

这里我们只需要一个函数就可以完成网络构建和模块识别,即blockwiseModules,不过参数比较多,大家需要去好好理解,这里不做太多介绍了,大家看帮助文档吧。🧐


5.1 构建网络

这里会有一个maxBlockSize的参数,大家可以根据自己的电脑配置进行选择,16 GB内存最大值为2000032 GB内存最大值为30000。🤨

net <-  blockwiseModules(datExpr, power = 6,
                         TOMType = "unsigned", 
                         minModuleSize = 30,
                         reassignThreshold = 0, mergeCutHeight = 0.25,
                         numericLabels = T, pamRespectsDendro = F,
                         saveTOMs = T,
                         saveTOMFileBase = "femaleMouseTOM",
                         verbose = 3)

5.2 查看模块数

table(net$colors)

5.3 可视化

sizeGrWindow(12,9)
mergedColors <-  labels2colors(net$colors)

plotDendroAndColors(net$dendrograms[[1]], mergedColors[net$blockGenes[[1]]], 
                    "Module colors", dendroLabels = F, hang = 0.03, addGuide = T, 
                    guideHang = 0.05)

5.4 save一下data

moduleLabels <-  net$colors

moduleColors <-  labels2colors(net$colors)

MEs <-  net$MEs

geneTree <-  net$dendrograms[[1]]

save(MEs, moduleLabels, moduleColors, geneTree, 
     file = "FemaleLiver-02-networkConstruction-auto.RData")

构建网络与模块识别(分步法)

6.1 共表达相似性与邻接距离计算

这里我们把之前算好的power应用一下。😚

softPower <-  6
adjacency <-  adjacency(datExpr, power = softPower)

6.2 计算TOM

这里我们需要把邻接矩阵转换为Topological Overlap MatrixTOM矩阵),最大限度地减少噪音和假相关性。🧐

TOM <-  TOMsimilarity(adjacency);
dissTOM <-  1-TOM

6.3 基因聚类并可视化

geneTree <-  hclust(as.dist(dissTOM), method = "average")

plot(geneTree, 
     xlab="", sub="", 
     main = "Gene clustering on TOM-based dissimilarity", 
     labels = F, hang = 0.04)

6.4 识别模块

我们一般喜欢基因多一点的模块,这里将最小的模块设置为30。😏
补充一下 !这里0模块是指未能归类到任意模块的基因。😷

minModuleSize <-  30

dynamicMods <-  cutreeDynamic(dendro = geneTree, distM = dissTOM,
                              deepSplit = 2, pamRespectsDendro = F,
                              minClusterSize = minModuleSize)
table(dynamicMods)

6.5 数字转为颜色并可视化

上面的模块为数字,我们需要把它转成颜色进行可视化。🤨

dynamicColors <-  labels2colors(dynamicMods)

table(dynamicColors)

sizeGrWindow(8,6)

plotDendroAndColors(geneTree, dynamicColors, 
                    "Dynamic Tree Cut",
                    dendroLabels = F, hang = 0.03,
                    addGuide = T, guideHang = 0.05,
                    main = "Gene dendrogram and module colors")

6.6 合并表达相似的模块

MEList <- moduleEigengenes (datExpr, colors = dynamicColors)
MEs <-  MEList$eigengenes

MEDiss = 1-cor(MEs);
METree <-  hclust(as.dist(MEDiss), method = "average")

6.7 合并模块的可视化

这里我们将相关性在0.75以上的模块合并在一起,当然你也可以按照你的要求来调整。🫶

sizeGrWindow(7,6)
plot(METree, main = "Clustering of module eigengenes",xlab = "", sub = "")

MEDissThres = 0.25
abline(h=MEDissThres, col = "red")
merge <-  mergeCloseModules(datExpr, dynamicColors, cutHeight = MEDissThres, verbose = 3)
mergedColors <-  merge$colors
mergedMEs <-  merge$newMEs

sizeGrWindow(12,9)
plotDendroAndColors(geneTree, cbind(dynamicColors, mergedColors), c("Dynamic Tree Cut", "Merged dynamic"), dendroLabels = F, hang = 0.03, addGuide = T, guideHang = 0.05)

moduleColors <-  mergedColors

colorOrder <-  c("grey", standardColors(50))
moduleLabels <-  match(moduleColors, colorOrder)-1
MEs <-  mergedMEs

save一下

我们save一下这个data吧,后面会再用到。😉

save(MEs, moduleLabels, moduleColors, geneTree, 
     file = "FemaleLiver-02-networkConstruction-stepByStep.RData")

如何引用

📍
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


<center>最后祝大家早日不卷!~</center>


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

<center> <b>📍 往期精彩 <b> </center>

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

本文由mdnice多平台发布

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,783评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,360评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,942评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,507评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,324评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,299评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,685评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,358评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,652评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,704评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,465评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,318评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,711评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,991评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,265评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,661评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,864评论 2 335

推荐阅读更多精彩内容