WGCNA | 不止一个组的WGCNA怎么分析嘞!?~(二)(共识网络分析-第二步-构建网络与模块-一步法)

news2024/11/13 9:57:30

1写在前面

最近遇到了非常不讲理的病人和家属,真是忍不住想要吐槽两句。😤

为了让病人做上手术,求了输血科半天才给备了血,家属也答应去献血。😒

万万没想到,术后都2天了还是没去献血,无论是问病人还是问家属,都说家里没有一个人适合献血的。🤒

用别人的血就天经地义、理所当然,让你去献血就是大夫在害你了,我也是没得话讲,农夫与蛇的现代翻版。😷


言归正传了,继续之前的WGCNA教程吧,希望坚持给大家分享知识也能得到大家的理解。😞

2用到的包

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

3示例数据

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

4提取数据集数量

提取一下我们的数据集个数,后面会用到。🤓

nSets <-  checkSets(multiExpr)$nSets

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

5.1 创建power向量

powers <-  c(seq(4,10,by=1), seq(12,20, by=2))

5.2 计算power

接着我们为每个数据集计算一下power,挑选软阈值。😋

powerTables <-  vector(mode = "list", length = nSets) 

for (set in 1:nSets){
powerTables[[set]] = list(data = pickSoftThreshold(multiExpr[[set]]$data,
powerVector=powers,
verbose = 2)[[2]])
collectGarbage()
}

5.3 可视化参数设置

我们可视化一下结果吧,先设置一下参数。🤓

  colors = c("black", "red")
plotCols = c(2,5,6,7)
colNames = c("Scale Free Topology Model Fit", "Mean connectivity", "Median connectivity", "Max connectivity")

ylim = matrix(NA, nrow = 2, ncol = 4);

for (set in 1:nSets)
{for (col in 1:length(plotCols))
{
ylim[1, col] = min(ylim[1, col], powerTables[[set]]$data[, plotCols[col]], na.rm = T);
ylim[2, col] = max(ylim[2, col], powerTables[[set]]$data[, plotCols[col]], na.rm = T);
}
}

5.4 可视化

ok,可以正式可视化了。😗

sizeGrWindow(8, 6)
par(mfcol = c(2,2))
par(mar = c(4.2, 4.2 , 2.2, 0.5))
cex1 = 0.7

for (col in 1:length(plotCols)) for (set in 1:nSets)
{
if (set==1)
{
plot(powerTables[[set]]$data[,1], -sign(powerTables[[set]]$data[,3])*powerTables[[set]]$data[,2],
xlab="Soft Threshold (power)",ylab=colNames[col],type="n", ylim = ylim[, col],
main = colNames[col]);
addGrid();
}
if (col==1)
{
text(powerTables[[set]]$data[,1], -sign(powerTables[[set]]$data[,3])*powerTables[[set]]$data[,2],
labels=powers,cex=cex1,col=colors[set]);
} else
text(powerTables[[set]]$data[,1], powerTables[[set]]$data[,plotCols[col]],
labels=powers,cex=cex1,col=colors[set]);
if (col==1)
{
legend("bottomright", legend = setLabels, col = colors, pch = 20) ;
} else
legend("topright", legend = setLabels, col = colors, pch = 20) ;
}
alt

5.5 识别模块

net <-  blockwiseConsensusModules(multiExpr, power = 6, minModuleSize = 30, 
deepSplit = 2, pamRespectsDendro = F,
mergeCutHeight = 0.25,
# maxBlockSize = 20000,
numericLabels = T, minKMEtoStay = 0,
saveTOMs = T,
verbose = 5)
alt

5.6 查看网络

names(net)
alt

5.7 转换label

consMEs <- net$multiMEs
moduleLabels <- net$colors

moduleColors <- labels2colors(moduleLabels)
consTree <- net$dendrograms[[1]]

6可视化网络及模块结果

sizeGrWindow(8,6)

plotDendroAndColors(consTree, moduleColors, "Module colors",
dendroLabels = F, hang = 0.03,
addGuide = T, guideHang = 0.05,
main = "Consensus gene dendrogram and module colors")
alt

7Save一下

保存一下data吧,毕竟运行了那么久。🥳

save(consMEs, moduleLabels, moduleColors, consTree, 
file = "./Consensus-NetworkConstruction-auto.RData")

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

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

📍 往期精彩

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

本文由 mdnice 多平台发布

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

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

相关文章

达索系统助力中车制造运营管理(MOM)平台建设

案例背景&#xff1a; 中国中车股份有限公司&#xff08;中文简称“中国中车”&#xff0c;英文简称缩写“CRRC”&#xff09;承继了中国北车股份有限公司、中国南车股份有限公司的全部业务和资产&#xff0c;是全球规模领先、品种齐全、技术一流的轨道交通装备供应商。 中国…

MySQL---10、详细的数据类型

1、MySQL中的数据类型 类型类型举例整数类型TINYINT、SMALLINT、MEDIUMINT、INT(或INTEGER)、BIGINT浮点类型FLOAT、DOUBLE定点数类型DECIMAL位类型BIT日期时间类型YEAR、TIME、DATE、DATETIME、TIMESTAMP文本字符串类型CHAR、VACHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT枚…

Java设计模式-装饰模式

简介 装饰模式在Java领域是一种常见的设计模式&#xff0c;它能够在不改变对象原有结构的情况下&#xff0c;动态地为对象添加新的功能。它通过封装原有对象&#xff0c;在运行时动态地为对象添加新的行为或者修改原有行为&#xff0c;以扩展对象的功能。这种方式避免了继承的…

C语言:简单的三子棋游戏

谈到三子棋&#xff0c;想必大家都不陌生&#xff0c;童年的回忆呀&#xff0c;读小学的时候有事没事就和同学玩上个几把&#xff0c;玩起来很得劲&#xff0c;作为一个学习计算机的博主&#xff0c;自然而然用代码来实现三子棋啦&#xff0c;再次感受童年的记忆&#xff0c;闲…

yolov8 实例分割 C++部署

此处仅为个人结果记录&#xff0c;并无完整部署代码 目录 Pre 一、OpenCV DNN C 部署 二、ONNX RUNTIME C 部署 Pre 一定要知道&#xff0c;yolov8的输出与Yolov5 7.0 实例分割的输出不一样&#xff0c; output0: float32[1,116,8400]。 116是4个box坐标信息80个类别概率…

政务场景|看「API-SMAC」如何守好API,保障流动数据安全

API让一切都变得更加容易。 在数字化进程加速中&#xff0c;API作为高速通道&#xff0c;让数据的流动变得更加自由。当然&#xff0c;黑客也这么认为。从前窃取数据需要攻入内网&#xff0c;再经过一系列复杂的横向移动最终访问目标数据库&#xff0c;极易被安全设备拦截。现在…

endNote X9 增加 / 删除参考文献 文献编号自动更新

文章目录 1 增插参考文献2 删减参考文献3 EndNote X9 插入参考文献常见问题总结4 EndNote X9 快速上手教程&#xff08;毕业论文参考文献管理器&#xff09; 1 增插参考文献 当前已经插入5个文献&#xff0c;文献编号及附录列表如下 例如在&#xff0c;2和3之间新插入文献 “邱…

基于粒子群优化算法的最佳方式优化无线传感器节点的位置(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 此代码优化了由于电池耗尽而产生覆盖空洞后 WSN 节点的位置。如果活动通信中的任何节点死亡&#xff0c;则通过PSO优化再次定位…

动态联编和静态联编

基本概念 1.静态联编&#xff08;早联编&#xff09;&#xff1a;在程序被编译时进行联编。程序执行快&#xff0c;但灵活性较小。 2.动态联编&#xff08;晚联编&#xff0c;滞后联编&#xff09;&#xff1a;编译时无法确定要调用的函数&#xff0c;在程序运行时联编。灵活…

代码随想录算法训练营day37 | 738.单调递增的数字,968.监控二叉树

代码随想录算法训练营day37 | 738.单调递增的数字&#xff0c;968.监控二叉树 738.单调递增的数字968.监控二叉树&#xff08;难&#xff09; 738.单调递增的数字 教程视频&#xff1a;https://www.bilibili.com/video/BV1Kv4y1x7tP/?spm_id_from333.788&vd_sourceddffd5…

Pytorch环境下基于Transformer的滚动轴承故障诊断

关于python的集成环境&#xff0c;我一般Anaconda 和 winpython 都用&#xff0c;windows下主要用Winpython&#xff0c;IDE为spyder&#xff08;类MATLAB界面&#xff09;。 winpython脱胎于pythonxy&#xff0c;面向科学计算&#xff0c;兼顾数据分析与挖掘&#xff1b;Anaco…

如何恢复数据?数据恢复,5个实用方法!

案例&#xff1a;如何恢复数据 【我是个比较粗心的人&#xff0c;总是会莫名奇妙的就丢失各种电脑的数据&#xff0c;想问下大家在使用电脑时&#xff0c;如果有数据的丢失&#xff0c;是如何恢复数据的呢&#xff1f;】 在使用Windows电脑时&#xff0c;数据丢失或删除是非常…

支付系统设计二:统一开发框架

文章目录 前言一、项目分层二、模块职责简介1. API层2. Service层2.1 操作执行服务2.2 操作器2.3 操作执行器2.4 参数校验2.5 操作器实现 3. Domain层4. Infrastructure层4.1 Dal层 三、对应类图四、开发内容3.1 约定请求报文格式3.2 新增交易码与操作器映射枚举类3.3 配置参数…

2 # 函数柯里化

什么是函数柯里化 函数柯里化&#xff08;Currying&#xff09;是一种将接受多个参数的函数转换为一系列接受单一参数的函数的技术。 通过函数柯里化&#xff0c;我们可以将原来接受多个参数的函数&#xff0c;转换为一系列只接受单一参数的函数&#xff0c;每个函数接收一个…

前端面试题总结(初级前端:HTML + CSS + JavaScript + Ajax + Vue2全家桶)

theme: channing-cyan 求关注&#x1f62d; 壹、HTML CSS 1. 对HTML语义化的理解 去掉或者丢失样式的时候能够让页面呈现出清晰的结构&#xff1b;代码结构清晰&#xff0c;方便团队的管理和维护&#xff0c;并且语义化更具可读性&#xff1b;提升用户体验&#xff0c;在…

什么是daemon与服务(service)

什么是daemon与服务(service) 在Linux系统中&#xff0c;daemon是指一类在后台运行的服务进程&#xff0c;通常以d结尾。它们不与用户进行交互&#xff0c;也不接受用户的输入&#xff0c;而是在系统启动时自动启动并一直运行&#xff0c;为操作系统、应用程序和其他服务提供支…

Julia入门-3、Julia包管理工具

文章目录 0、Julia 的包管理工具是Pkg1、使用Julia包管理工具过慢 0、Julia 的包管理工具是Pkg Julia 的包管理工具是Pkg&#xff0c;可以用于安装、更新、卸载和管理 Julia 中的软件包。以下是一些常用的 Pkg命令&#xff1a; Pkg.add("Package")&#xff1a;安装一…

Node.js 与 WebAssembly

目录 1、简介 2、关键概念 3、生成WebAssembly模块 4、如何使用它 5、与操作系统交互 1、简介 首先&#xff0c;让我们了解为什么WebAssembly是一个很棒的工具&#xff0c;并学会自己使用它。 WebAssembly是一种类似汇编的高性能语言&#xff0c;可以从各种语言编译&…

深度学习 - 47.DIN 深度兴趣网络保姆级实现 By Keras

目录 一.引言 二.DIN 模型分析 1.Input 输入 2.Embedding & Concat 嵌入与合并 3.DIN 深度兴趣网络 4.MLP 全连接 三.DIN 模型实现 1.Input 2.DIN Layer 2.1 init 初始化 2.2 build 构建 2.3 call 调用 3.Dice Layer 3.1 init 初始化 3.2 build 构建 3.3 …

网络安全:渗透神器 kali 的安装.

网络安全&#xff1a;渗透神器 kali 的安装. Kali Linux是一款基于Debian的Linux发行版&#xff0c;专门用于渗透测试和网络安全评估。它包含了大量的渗透测试工具和网络安全工具&#xff0c;适用于各种不同的渗透测试场景和需求。 目录&#xff1a; 网络安全&#xff1a;渗透…