# WGCNA | 不止一个组的WGCNA怎么分析嘞!?~(四)(共识网络分析-第四步-共识模块与性状相关联)

news/2024/4/19 2:30:02

1写在前面

最近稍微没有那么忙了,好好搞一下公众号吧,好久没怎么认真做了。😷

有的时候你会发现坏事不一定是坏事,塞翁失马,焉知非福啊!~🙃

"我只担心一件事,我怕我配不上自己所受的苦难。"😭

慢慢熬吧,毕竟世上无难事,只要肯放弃。🥰

2用到的包

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

3示例数据

我们这个时候要把前面清洗好,构建好的网络数据拿出来吧。😗

load("./Consensus-dataInput.RData")
load("./Consensus-NetworkConstruction-auto.RData")

4提取数据集个数

在这里,我们先和之前一样提取一下我们的数据集个数,后面会用到。🤪

exprSize <- checkSets(multiExpr)
nSets <- exprSize$nSets

5计算模块相关性及p值

为了区分共识网络分析结果,我们把变量命名为consMEsmoduleLabelsmoduleColorsconTree 。🙃

moduleTraitCor = list()
moduleTraitPvalue = list()

for (set in 1:nSets){
moduleTraitCor[[set]] = cor(consMEs[[set]]$data, Traits[[set]]$data, use = "p")
moduleTraitPvalue[[set]] = corPvalueFisher(moduleTraitCor[[set]], exprSize$nSamples[set])
}

6转换label为color

MEColors <-  labels2colors(as.numeric(substring(names(consMEs[[1]]$data), 3)))
MEColorNames <- paste("ME", MEColors, sep="")

7可视化雌性小鼠module-trait相关性

sizeGrWindow(10,7)
set = 1
textMatrix = paste(signif(moduleTraitCor[[set]], 2), "\n(",
signif(moduleTraitPvalue[[set]], 1), ")", sep = "")

dim(textMatrix) = dim(moduleTraitCor[[set]])

par(mar = c(6, 8.8, 3, 2.2))

labeledHeatmap(Matrix = moduleTraitCor[[set]],
xLabels = names(Traits[[set]]$data),
yLabels = MEColorNames,
ySymbols = MEColorNames,
colorLabels = F,
colors = greenWhiteRed(50),
textMatrix = textMatrix,
setStdMargins = F,
cex.text = 0.5,
zlim = c(-1,1),
main = paste("Module--trait relationships in", setLabels[set]))
alt

8可视化雄性小鼠module-trait相关性

set = 2
textMatrix = paste(signif(moduleTraitCor[[set]], 2), "\n(",
signif(moduleTraitPvalue[[set]], 1), ")", sep = "")

dim(textMatrix) = dim(moduleTraitCor[[set]])

sizeGrWindow(10,7)
par(mar = c(6, 8.8, 3, 2.2))

labeledHeatmap(Matrix = moduleTraitCor[[set]],
xLabels = names(Traits[[set]]$data),
yLabels = MEColorNames,
ySymbols = MEColorNames,
colorLabels = F,
colors = greenWhiteRed(50),
textMatrix = textMatrix,
setStdMargins = F,
cex.text = 0.5,
zlim = c(-1,1),
main = paste("Module--trait relationships in", setLabels[set]))
alt

9计算共同模块相关性及p值

consensusCor <-  matrix(NA, nrow(moduleTraitCor[[1]]), ncol(moduleTraitCor[[1]]))
consensusPvalue <- matrix(NA, nrow(moduleTraitCor[[1]]), ncol(moduleTraitCor[[1]]))

# 找出负相关的
negative <- moduleTraitCor[[1]] < 0 & moduleTraitCor[[2]] < 0

consensusCor[negative] <- pmax(moduleTraitCor[[1]][negative], moduleTraitCor[[2]][negative])

consensusPvalue[negative] <- pmax(moduleTraitPvalue[[1]][negative],
moduleTraitPvalue[[2]][negative])

# 找出正相关的
positive <- moduleTraitCor[[1]] > 0 & moduleTraitCor[[2]] > 0

consensusCor[positive] <- pmin(moduleTraitCor[[1]][positive], moduleTraitCor[[2]][positive])

consensusPvalue[positive] <- pmax(moduleTraitPvalue[[1]][positive],
moduleTraitPvalue[[2]][positive])

10可视化最终module-trait相关性

textMatrix <-  paste(signif(consensusCor, 2), "\n(",
signif(consensusPvalue, 1), ")", sep = "")

dim(textMatrix) <- dim(moduleTraitCor[[set]])

sizeGrWindow(10,7)

par(mar = c(6, 8.8, 3, 2.2))

labeledHeatmap(Matrix = consensusCor,
xLabels = names(Traits[[set]]$data),
yLabels = MEColorNames,
ySymbols = MEColorNames,
colorLabels = F,
colors = greenWhiteRed(50),
textMatrix = textMatrix,
setStdMargins = F,
cex.text = 0.5,
zlim = c(-1,1),
main = paste("Consensus module--trait relationships across\n",
paste(setLabels, collapse = " and ")))
alt

11导出网络文件

11.1 注释探针

file <-  gzfile(description = "./FemaleLiver-Data/GeneAnnotation.csv")
annot <- read.csv(file = file)

probes <- names(multiExpr[[1]]$data)
probes2annot <- match(probes, annot$substanceBXH)

11.2 计算gene significances和module memberships

consMEs.unord <-  multiSetMEs(multiExpr, universalColors = moduleLabels, excludeGrey = T)
GS = list()
kME = list()
for (set in 1:nSets){
GS[[set]] = corAndPvalue(multiExpr[[set]]$data, Traits[[set]]$data)
kME[[set]] = corAndPvalue(multiExpr[[set]]$data, consMEs.unord[[set]]$data)}
alt

11.3 Z-scores计算相关性

GS.metaZ <-  (GS[[1]]$Z + GS[[2]]$Z)/sqrt(2)
kME.metaZ <- (kME[[1]]$Z + kME[[2]]$Z)/sqrt(2)
GS.metaP <- 2*pnorm(abs(GS.metaZ), lower.tail = F)
kME.metaP <- 2*pnorm(abs(kME.metaZ), lower.tail = F)

11.4 整合GS和kME等数据

GSmat <-  rbind(GS[[1]]$cor, GS[[2]]$cor, GS[[1]]$p, GS[[2]]$p, GS.metaZ, GS.metaP)

nTraits <- checkSets(Traits)$nGenes

traitNames <- colnames(Traits[[1]]$data)

dim(GSmat) <- c(nGenes, 6*nTraits)

rownames(GSmat) <- probes

colnames(GSmat) <- spaste(c("GS.set1.", "GS.set2.", "p.GS.set1.", "p.GS.set2.", "Z.GS.meta.", "p.GS.meta"), rep(traitNames, rep(6, nTraits)))

kMEmat <- rbind(kME[[1]]$cor, kME[[2]]$cor, kME[[1]]$p, kME[[2]]$p, kME.metaZ, kME.metaP)

MEnames <- colnames(consMEs.unord[[1]]$data)

nMEs <- checkSets(consMEs.unord)$nGenes

dim(kMEmat) <- c(nGenes, 6*nMEs)

rownames(kMEmat) <- probes

colnames(kMEmat) <- spaste(
c("kME.set1.", "kME.set2.", "p.kME.set1.", "p.kME.set2.", "Z.kME.meta.", "p.kME.meta"),
rep(MEnames, rep(6, nMEs)))

11.5 输出文件

info <-  data.frame(Probe = probes, GeneSymbol = annot$gene_symbol[probes2annot],
EntrezID = annot$LocusLinkID[probes2annot],
ModuleLabel = moduleLabels,
ModuleColor = labels2colors(moduleLabels),GSmat, kMEmat)

write.csv(info, file = "./consensusAnalysis-CombinedNetworkResults.csv", row.names = F, quote = F)

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

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

📍 往期精彩

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

本文由 mdnice 多平台发布


http://www.ppmy.cn/news/299637.html

相关文章

分享一个壁纸小程序,小宇壁纸库

分享一个壁纸小程序&#xff1a;小宇壁纸库

宅男壁纸大全微信小程序源码-带动态壁纸支持多种流量主

正文&#xff1a; 这是一款可以说是宅男的最爱&#xff0c;也可以说是专门给宅男准备的一款小程序吧&#xff01;&#xff01; 里面支持动态视频,静态壁纸,情侣头像等多种分类&#xff0c;保存内容支持每天激励视频解锁保存。 内附含了数不清的小姐姐,二次元,各种漫画动漫等资…

【小程序源码】必备福利壁纸大全带动态壁纸

里面支持动态视频,静态壁纸,情侣头像等多种分类 内附含二次元,各种漫画动漫等资源 具体就不多说了,大家自行研究哟 下面来看看小编的测试演示图吧! 小程序源码下载地址&#xff1a;【小程序源码】宅男必备福利壁纸大全自动采集带动态壁纸-小程序文档类资源-CSDN下载这是一款…

android替换默认壁纸并添加壁纸进壁纸库

1.更换默认壁纸 frameworks/base/core/res/res/drawable-sw720dp-nodpi/default_wallpaper.jpg 2.增加壁纸进壁纸库 packages/apps/Launcher2/res/drawable-sw720dp-nodpi/wallpaper_neon.jpg packages/apps/Launcher2/res/drawable-sw720dp-nodpi/wallpaper_neon_small.jp…

【Jmeter】提取和引用Token

1.执行获取token接口 在结果树这里&#xff0c;使用$符号提取token值。 $根节点&#xff0c;$.data.token表示提取根节点下的data节点下的token节点的值。 2.使用json提取器&#xff0c;提取token 变量路径就是把在结果树提取的路径写上。 3.使用BeanShell取样器或者BeanShell后…

Android TV壁纸库之缩略图

首先&#xff0c;我们看一下效果图&#xff1a; 项目地址这里 图一和图二所展示的图片均为缩略图&#xff0c;我们对于其实现方式分别进行分析。 一、LruCache类&#xff1a; 官方地址 LruCache类是一个缓存的策略类&#xff0c;简单理解就是它会维持一个对列&#xff0c;有…

android7.1自带壁纸,RK3399 Android7.1 修改壁纸

1.自定义壁纸 默认壁纸是default_wallpaper&#xff0c;在/frameworks/base/core/res/res,找到drawable-sw720dp-nodpi 、drawable-sw600dp-nodpi、drawable-nodpi的地方中有default_wallpaper.png&#xff0c;然后把自定义的壁纸(custom_wallpaper.png)也拷贝到相应的地方。 2…

宅男必备福利壁纸大全自动采集微信小程序源码带动态壁纸支持多种流量主

这是一款可以说是宅男的最爱 也可以说是专门给宅男准备的一款小程序吧 里面支持动态视频,静态壁纸,情侣头像等多种分类 保存内容支持每天激励视频解锁保存 全内容自动采集,内附含了数不清的小姐姐,二次元,各种漫画动漫等资源内容 具体就不多说了,大家自行研究哟 另外该款小…

python壁纸程序代码_40行Python代码+奇技淫巧搞定专属电脑壁纸库

项目效果 项目背景 最近电脑壁纸存量捉急&#xff0c;老是几张图片看得有点厌烦&#xff0c;就想着能不能一次性下载多一些壁纸&#xff0c;用幻灯片放映方式天天换壁纸&#xff0c;天天好心情。于是乎找了一个免费图片网址PEXELS&#xff0c; 开始撸一波代码&#xff0c;写个…

剑指offic--双指针

PS&#xff1a;以下代码均为C实现 1.删除链表的节点 力扣 给定单向链表的头指针和一个要删除的节点的值&#xff0c;定义一个函数删除该节点。 返回删除后的链表的头节点。 注意&#xff1a;此题对比原题有改动 示例 1: 输入: head [4,5,1,9], val 5 输出: [4,1,9] 解释: 给…

知道这些英文文档翻译的方式吗

在工作中&#xff0c;大家有没有遇到领导交给你一份外语的文档&#xff0c;要你去观看和理解&#xff0c;但是我们看不太懂或者没啥时间去一点点翻译怎么办呢&#xff1f;我们就需要有工具来将文档翻译&#xff0c;它是一项非常实用和便捷的功能&#xff0c;它可以将文档中的文…

计算机网络(数据链路层,复习自用)

数据链路层 数据链路层功能概述封装成帧与透明传输差错编码&#xff08;检错编码&#xff09;差错编码&#xff08;纠错编码&#xff09;流量控制与可靠传输机制停止-等待协议后退N帧协议&#xff08;GBN&#xff09;选择重传协议&#xff08;Selective Repeat&#xff09; 信道…

OPPO A97为何能畅销?5000mAh大电池、标配256G存储体验满分

今年OPPO手机杀疯了&#xff01;线上有Reno系列&#xff0c;而线下爆款应该属于A系列了。今年第一季度A56进入了畅销榜TOP4&#xff0c;第二季度A57出货量也超过了200万部&#xff0c;作为入门级机型&#xff0c;该系列为何能成为众多消费者的选择&#xff0c;以新款OPPO A97为…

R9M(2018)高频头刷写elrs之后添加ESP01F模块

R9M&#xff08;2018&#xff09;高频头刷写elrs之后添加ESP01F模块R9M&#xff08;2018&#xff09;高频头刷写elrs之后添加ESP01F模块 前言&#xff1a;R9M&#xff08;2018&#xff09;高频头刷写elrs并添加ESP01F模块之后&#xff0c;可以对R9M使用无线刷写固件升级固件。…

OPPO R9m官方固件刷机包线刷救砖教程图解

一&#xff1a;OPPO R9m线刷刷机前的准备工作&#xff1a;1&#xff1a;最好准备一台win7系统的电脑&#xff0c;而win10或XP系统容易出现刷机错误的现象。 2&#xff1a;下载rom线刷包&#xff0c;下载下来放到电脑上进行解压 OPPO R9m线刷包下载《百度云下载》《本地网盘下…

OPPO R9m线刷包_OPPO R9m刷机包_线刷救砖

此刷机包用于救砖升级 解决手机反复重启&#xff0c;不开机&#xff0c;包内附带刷机教程。 OPPO R9m线刷包下载 http://www.zyrom.com/74.html 更新说明&#xff1a; 1、【稳定版升级】稳定版改造升级&#xff0c;提升体验&#xff1b; 2、【官方ROM优化】优化内核算法&…

Rog14 Win10系统迁移新的三星固态硬盘

机器买来以后用了几天之后还是觉得内存太小了&#xff0c;顺便就也增购了一块2T的固态硬盘&#xff0c;用于替换之前的原装固态。装了好多软件懒得重装&#xff0c;所以进行了系统迁移。 环境情况&#xff1a;Rog14 原装三星512G SSD迁移到新买的三星 2T 970EVO PLUS 1. 通过…

OPPO R9m刷机包_OPPO R9m线刷包救砖包教程下载

一&#xff1a;OPPO R9m线刷刷机前的准备工作&#xff1a; 1&#xff1a;最好准备一台win7系统的电脑&#xff0c;而win10或XP系统容易出现刷机错误的现象。 2&#xff1a;下载rom线刷包&#xff0c;下载下来放到电脑上进行解压 R9m刷机包下载 http://url88.cn/1eQzqg0 二&am…

golang gocv 0.32版本windows安装 opencv4.7 依赖

准备工作: 修改Host 185.199.108.133 raw.githubusercontent.com 185.199.109.133 raw.githubusercontent.com 185.199.110.133 raw.githubusercontent.com 185.199.111.133 raw.githubusercontent.com 140.82.114.3 github.com 安装cmake与MinGW-W64 cmake下载地址…

安装源代码 QT 4.8.7

在centos7.9.2009 (Core)操作系统上&#xff0c;安装qt 4.8.7 查看centos版本&#xff1a;cat /etc/centos-release 安装g&#xff1a;sudo yum install gcc gcc-c g版本查看&#xff08;gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)&#xff09;&#xff1a;g -v 先安装…