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

news2024/12/22 1:56:29

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.coloradmin.cn/o/628614.html

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

相关文章

springcloud-alibaba (06)RocketMQ下载安装和单机启动个人笔记

RocketMQ 01 下载RocketMQ02 安装RocketMQ03 启动RocketMQ1. 内存分配1.1 第一步1.2 第二步1.3 第三步 2. 启动RocketMQ2.1 启动NameServer2.2 启动Broker 04 测试RocketMQ05 关闭RocketMQ 01 下载RocketMQ 下载 RocketMQ 即可以从 Apache 官网下载&#xff0c;也可以从 gitHu…

C#调用C++的动态链接库

C#调用C的动态链接库 问题所在使用VS编辑所需要调用的函数&#xff08;c&#xff09;创建c#项目&#xff0c;调用c动态库 这是一个测试代码。 问题所在 c# 调用c的dll库不能引用 解决办法是 1&#xff1a;在写c代码的时候&#xff0c;把他加入到dll中 2&#xff1a;将c的dll库…

Selenium自动化测试框架工作原理你明白了吗?

一、Selenium是什么&#xff1f; 用官网的一句话来讲&#xff1a;Selenium automates browsers. Thats it&#xff01;简单来讲&#xff0c;Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作浏览器一样。支持的…

零基础学网络安全的心得

我的学习心得&#xff0c;我认为能不能自学成功的要素有两点。 第一点就是自身的问题&#xff0c;虽然想要转行学习安全的人很多&#xff0c;但是非常强烈的想要转行学好的人是小部分。而大部分人只是抱着试试的心态来学习安全&#xff0c;这是完全不可能的。 所以能不能学成并…

神经网络:卷积的padding为SAME或VALID

1&#xff1a;卷积运算原理&#xff08;直接看图&#xff09; ①由图可知&#xff0c;output[0][0] 视野域 * 卷积核&#xff08;矩阵点击运算&#xff0c;对应位相乘然后求和&#xff0c;视野域形状与卷积核一致&#xff09;&#xff0c;而output[0][1] 下一视野域 * 卷积核…

软件测试的案例分析 - 闰年4.1

文章目的 显示不同的博客能获得多少博客质量分 &#xff08;这是关于博客质量分的测试 https://www.csdn.net/qc) 这个博客得了 60 分。 希望获得 70 分左右 正文 我们谈了不少测试的名词, 软件是人写的, 测试计划和测试用例也是人写的, 人总会犯错误。错误发生之后, 总有人…

docker安装rabbitmq以及rabbitmq_management、rabbitmqctl管理工具

&#x1f4a7; d o c k e r 安装 r a b b i t m q 以及 r a b b i t m q m a n a g e m e n t 、 r a b b i t m q c t l 管理工具 \color{#FF1493}{docker安装rabbitmq以及rabbitmq_management、rabbitmqctl管理工具} docker安装rabbitmq以及rabbitmqm​anagement、rabbitmqct…

[Eigen中文文档] 稠密矩阵分解函数对比

文档总目录 英文原文(Benchmark of dense decompositions) 本页介绍了 Eigen 为各种方阵和过约束问题提供的稠密矩阵分解的速度比较。 有关线性求解器、分解的特征和数值鲁棒性的更一般概述&#xff0c;请查看 此表。 该基准测试已在配备英特尔酷睿 i7 2.6 GHz 的笔记本电…

HIVE获取json字段特定值(单个json或者json数组)

1.获取单个json字符串里的某一特定值 函数&#xff1a;get_json_object(单个json,‘$.要获取的字段’) 示例&#xff1a; 代码&#xff1a;SELECT get_json_object(‘{“NAME”:“张三”,“ID”:“1”}’,‘$.NAME’) as name; SELECT get_json_object(‘{“NAME”:“张三”…

【 Python 全栈开发 - WEB开发篇 - 31 】where条件查询

文章目录 一、where条件查询1.关系运算符查询2.IN关键字查询3.BETWEEN AND关键字查询4.空值查询5.AND关键字查询6.OR关键字查询7.LIKE关键字查询普通字符串含有%通配的字符串含有_通配的字符串 一、where条件查询 MySQL 的 where 条件查询是指在查询数据时&#xff0c;通过 wh…

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下载地址…

Nacos架构与原理 - 寻址机制

文章目录 前提设计MemberLookup内部实现单机寻址 StandaloneMemberLookup文件寻址 FileConfigMemberLookup地址服务器寻址 AddressServerMemberLookup 未来可扩展点 前提 Nacos 支持单机部署以及集群部署 针对单机模式&#xff0c;Nacos 只是自己和自己通信&#xff1b;对于集…

Hbase---hfile

逻辑数据组织格式 Scanned block section&#xff1a;表示顺序扫描HFile时&#xff08;包含所有需要被读取的数据&#xff09;所有的数据块将会被读取&#xff0c;包括Leaf Index Block和Bloom Block&#xff1b;Non-scanned block section&#xff1a;HFile顺序扫描的时候该…

list容器会了吗?一文搞定它

这里写目录标题 list 数据链式存储大小操作插入操作list数据存取list容器的反转和排序 list 数据链式存储 list的优点 1.采用动态存储分配&#xff0c;不会造成内存浪费和溢出 2.链表执行插入和删除操作十分简单&#xff0c;修改指针即可&#xff0c;不需要移动大量元素 缺点…

低代码开发与数智制造:数字转型的无缝结合

随着工业4.0的到来&#xff0c;数智制造已经成为制造业发展的趋势&#xff0c;而低代码开发技术则是近几年兴起的一种轻量级开发方式&#xff0c;这两者之间的结合将为制造业的数字化转型打下坚实的基础。 低代码开发平台有什么特点&#xff1f; 首先让我们来厘清一下&#xff…

STC12C5A60S2最小系统板/51单片机温度显示和温度控制风扇

STC12C5A60S2最小系统板/51单片机温度显示和温度控制风扇&#xff0c;板载有DS18B20和TM16504位数码管。 项目简介 单片机课课程设计&#xff0c;要做一个智能温控风扇&#xff0c;达到设定的下限温度值就开启风扇&#xff0c;温度在上限和下限之间就按比例输出PWM占空比控制…

基于jsp+mysql+Spring+mybatis的Springboot旅游网站管理系统

运行环境: 最好是java jdk 1.8&#xff0c;我在这个平台上运行的。其他版本理论上也可以。 IDE环境&#xff1a; Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以&#xff0c;如果编译器的版本太低&#xff0c;需要升级下编译器&#xff0c;不要弄太低的版本 tomcat服务器环…

AI回答:绩效考核有哪些方法,基本靠谱

AI回答&#xff1a;绩效考核有哪些方法&#xff0c;基本靠谱 建立有效的绩效考核机制&#xff0c;比较难 但没有考核机制&#xff0c;就无法评价优劣 趣讲大白话&#xff1a;赏罚两字&#xff0c;千古大事 【趣讲信息科技191期】 **************************** 互联网企业现在流…

11 GMM——高斯混合模型

文章目录 11 GMM——高斯混合模型11.1 模型介绍11.2 通过MLE估计参数11.3 EM求解 11 GMM——高斯混合模型 11.1 模型介绍 从几何角度来说&#xff1a; 高斯混合模型表示&#xff1a;加权平均——由多个高斯分布混合叠加而成&#xff0c;如图 公式可以表达为&#xff1a; p…

【Jmeter】提取和引用Token

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