WGCNA | 不止一个组的WGCNA怎么分析嘞!?~(一)(共识网络分析-第一步-数据整理)

news2025/1/16 3:56:32

1写在前面

最近又是忙碌的一米,做不完的手术,收不完的病人,前途堪忧,收入更是不堪入目。🥲

把之前的WGCNA教程再补一补吧,之前介绍的是雌性鼠的表型数据分析,只有一组,相对简单。😅

今天开始我们介绍一下更为复杂的2组甚至多组分析。😘

2用到的包

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

3示例数据

用到的数据是雌性鼠雄性鼠的肝脏表达谱,每个数据集包含大约130+个样本。🤨

femData <-  read.csv("./LiverFemale3600.csv")
dim(femData)
alt

maleData <-  read.csv("./LiverMale3600.csv")
dim(maleData)
alt

4数据整合

我们先把两个数据集整合在一起,方便后续操作。🥳

nSets <-  2
setLabels <- c("Female liver", "Male liver")
shortLabels <- c("Female", "Male")

注意一下前面8列都是一些注释信息,第9列开始是表达谱。🤒

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

multiExpr[[1]] <-  list(data = as.data.frame(t(femData[-c(1:8)])))
names(multiExpr[[1]]$data) <- femData$substanceBXH
rownames(multiExpr[[1]]$data) <- names(femData)[-c(1:8)]

multiExpr[[2]] <-  list(data = as.data.frame(t(maleData[-c(1:8)])))
names(multiExpr[[2]]$data) <- maleData$substanceBXH
rownames(multiExpr[[2]]$data) <- names(maleData)[-c(1:8)]

检查一下数据集的格式是否正确吧。🧐

exprSize <-  checkSets(multiExpr)
exprSize
alt

5基本数据清理和异常值去除

5.1 去除不好的基因和样本

我们首先找到缺失样本数量过多的基因和样本。🥲

gsg <-  goodSamplesGenesMS(multiExpr, verbose = 3);
gsg$allOK
alt

以下代码用于去除有问题的基因和样本,自取吧。🤒

if (!gsg$allOK)
{
if (sum(!gsg$goodGenes) > 0)
printFlush(paste("Removing genes:", paste(names(multiExpr[[1]]$data)[!gsg$goodGenes],
collapse = ", ")))
for (set in 1:exprSize$nSets)
{
if (sum(!gsg$goodSamples[[set]]))
printFlush(paste("In set", setLabels[set], "removing samples",
paste(rownames(multiExpr[[set]]$data)[!gsg$goodSamples[[set]]], collapse = ", ")))
multiExpr[[set]]$data = multiExpr[[set]]$data[gsg$goodSamples[[set]], gsg$goodGenes];
}
exprSize = checkSets(multiExpr)
}

5.2 样本聚类

接着我们对每个数据集分别进行cluster处理。🥰

sampleTrees = list()
for (set in 1:nSets)
{
sampleTrees[[set]] = hclust(dist(multiExpr[[set]]$data), method = "average")
}

可视化一下吧🤩

par(mfrow=c(2,1))
par(mar = c(0, 4, 2, 0))
for (set in 1:nSets)
plot(sampleTrees[[set]], main = paste("Sample clustering on all genes in", setLabels[set]),
xlab="", sub="", cex = 0.7)
alt

5.3 去除异常值

可以看出来雌性鼠数据集中有一个异常值,雄性鼠数据集中没有,我们先可视化一下。✂️

baseHeight <-  16

cutHeights <- c(16, 16*exprSize$nSamples[2]/exprSize$nSamples[1])

par(mfrow=c(2,1))
par(mar = c(0, 4, 2, 0))
for (set in 1:nSets)
{
plot(sampleTrees[[set]], main = paste("Sample clustering on all genes in", setLabels[set]),
xlab="", sub="", cex = 0.7)
abline(h=cutHeights[set], col = "red")
}
alt

OK。我们现在真正的从数据中去除掉它!~🐵

for (set in 1:nSets)
{
labels = cutreeStatic(sampleTrees[[set]], cutHeight = cutHeights[set])
keep = (labels==1)
multiExpr[[set]]$data = multiExpr[[set]]$data[keep, ]
}
collectGarbage()

确定一下数据集的大小。🫶

exprSize <-  checkSets(multiExpr)
exprSize
alt

6载入特征数据

traitData <-  read.csv("ClinicalTraits.csv")
dim(traitData)
names(traitData)
alt

去除一下我们不需要的数据。😭

allTraits <-  traitData[, -c(31, 16)]
allTraits <- allTraits[, c(2, 11:36) ]
dim(allTraits)
names(allTraits)
alt

traitslist的格式来方便后面的应用。😉

Traits <-  vector(mode="list", length = nSets)
for (set in 1:nSets)
{
setSamples = rownames(multiExpr[[set]]$data)
traitRows = match(setSamples, allTraits$Mice)
Traits[[set]] = list(data = allTraits[traitRows, -1])
rownames(Traits[[set]]$data) = allTraits[traitRows, 1]
}
collectGarbage()

genes数和samples数存起来,后面会用到。😜

nGenes <-  exprSize$nGenes
nSamples <- exprSize$nSamples

7save一下

初步处理完了数据我们就保存一下吧,毕竟辛辛苦苦清理好了数据。🎩

save(multiExpr, Traits, nGenes, nSamples, setLabels, shortLabels, exprSize,
file = "./Consensus-dataInput.RData")

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

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

📍 往期精彩

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

本文由 mdnice 多平台发布

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

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

相关文章

elk生命周期删除日志

elk版本&#xff1a;7.14 一、简介 ELK日志我们一般都是按天存储&#xff0c;例如索引名为"prodlog-2023-05-08"&#xff0c;因为日志量所占的存储是非常大的&#xff0c;我们不能一直保存&#xff0c;而是要定期清理旧的&#xff0c;这里就以保留7天日志为例。 自…

Android开发 LogDog (日志狗)V1.2.0

目录 一、简介 二、添加LogDog 1、添加仓库 2、添加依赖 三、V1.2.0 更新和新的使用方式 1、初始化和配置 2、配置的新使用 3、使用和打印更新说明 4、更新说明 一、简介 具体日志简介可以去看1.0.2版本的简介 LogDog 简介https://blog.csdn.net/Ym_quiet/article/d…

【多任务学习】Multi-task Learning 手把手编码带数据集, 一文吃透多任务学习

文章目录 前言1.多任务学习1.1 定义1.2 原理 2. 多任务学习code2.1 数据集初探2.2 预处理2.3 网络结构2.4 训练 3. 总结 前言 我们之前讲过的模型通常聚焦单个任务,比如预测图片的类别等,在训练的时候,我们会关注某一个特定指标的优化. 但是有时候,我们需要知道一个图片,从它身…

Windows远程执行进程工具psexec和wmiexec介绍

在自动化测试或者自动化工具开发中&#xff0c;通常需要向其它电脑或者服务器发送指令&#xff0c;比如Windows发送命令到Linux服务器开启某个服务进程&#xff0c;或者读取状态信息&#xff0c;我们可以使用ssh协议实现。 如果Windows主机需要发送命令到局域网内的其它Window…

第四十五章 Unity 滚动视图 (Scroll View) UI

我们介绍一下滚动条 (Scrollbar)&#xff0c;它允许用户滚动由于太大而无法完全看到的图像或其他视图。这种效果在我们网页中经常看到&#xff0c;尤其是网页内容太长的时候&#xff0c;就会在垂直方向出现滚动条。当然&#xff0c;有时候也会在水平方向出现滚动条。我们拖动滚…

WebRTC引用计数和线程

1. 什么是引用计数&#xff1a; 引用计数是计算机编程语言中的一种内存管理技术&#xff0c;是指将资源&#xff08;可以是对象、内存、或磁盘空间等等&#xff09;的被引用次数保存起来&#xff0c;当被引用次数变为零时就将其释放的过程。 使用引用计数技术可以实现自动资源…

纯HTML+CSS网页设计期末作业(海贼王主题网站——图片可换,主题可换)

纯HTMLCSS网页设计期末作业&#xff08;海贼王主题网站——图片可换&#xff0c;主题可换&#xff09; 博主&#xff1a;命运之光 专栏&#xff1a;web网页制作大作业 网页最底下有视频可以观看网页效果&#xff0c;喜欢的可以在博主主页资源里免费下载(●’◡’●)让我们一起加…

[数据库系统] 一、添加常用约束(educoder)

1.任务&#xff1a;给表添加常用的约束。 2.相关知识 在数据库的使用过程中我们经常要限制属性的取值&#xff0c;比如有些属性不能为空&#xff0c;就需要添加非空约束&#xff0c;本关要求完成常用约束的添加和定义。 目录 (1)唯一约束 (2)添加非空约束 (3)使用默认约束…

大数据|Hive和数据仓库

前文回顾&#xff1a;HBase基本工作原理 目录 &#x1f4da;数据仓库和OLAP &#x1f407;数据仓库 &#x1f955;面向主题 &#x1f955;集成的 &#x1f955;时变的 &#x1f955;非易失的 &#x1f407;OLTP&#xff08;联机事务处理&#xff09;vs OLAP&#xff08;…

织梦城市分站怎么安装织梦二级域名站群织梦制作企业分站教程

1、安装说明 一、下载织梦多城市二级域名源码; 二、上传源码到服务器;(必须支持泛解析) 三、在浏览器输入http://你的域名/install进入安装页面; 可以参考http://www.hlzcb.com/zhimengxueyuan/zhimenganzhuangshiyong/25830.html 四、输入数据库用户名密码和数据库…

公司股权转让,变更股东要了解哪些?

什么是公司股权&#xff1f; 股权即股票持有者所具有的与其拥有的股票比例相应的权益及承担一定责任的权力。股权转让是一种物权变动行为&#xff0c;股权转让后&#xff0c;股东基于股东地位而对公司所发生的权利义务关系全部同时移转于受让人&#xff0c;受让人因此成为公司…

SpringBoot的yml多环境配置3种方法

目录 方式一&#xff1a;多个yml文件 步骤一、创建多个配置文件 步骤二、applicaiton.yml中指定配置 方式二&#xff1a; 单个yml文件 方式三&#xff1a;在pom.xml中指定环境配置 步骤一、创建多个配置文件 步骤二、在application.yml中添加多环境配置属性 步骤三、在po…

创客匠人直播怎么样?

快速发展的互联网时代&#xff0c;直播成为各个行业的引流利器。如今&#xff0c;众多教培机构转型线上&#xff0c;直播无疑是最好的线上教学方式&#xff0c;不仅可以让老师和学员异地教学还能最好的还原线下教学场景&#xff0c;利用科技提高学习质量。 做好一场直播不仅仅…

JColorChooser和JFileChooser

Swing提供了JColorChooser和JFileChooser这两种对话框&#xff0c;可以很方便的完成演示的选择和本地文件的选择。 1.JColorChooser JColorChooser用于创建颜色选择器对话框&#xff0c;该类的用法非常简单&#xff0c;只需要调用它的静态方法就可以快速生成一个颜色选择对话框…

蓝牙耳机什么牌子好?500内好用的蓝牙耳机推荐

随着蓝牙耳机的受欢迎程度越来越高&#xff0c;近几年来&#xff0c;无蓝牙耳机市场呈爆发式增长&#xff0c;蓝牙耳机品牌也越来越多。那么蓝牙耳机什么牌子好&#xff1f;接下来&#xff0c;我来给大家推荐几款500内好用的蓝牙耳机&#xff0c;一起来看看吧。 一、南卡小音舱…

GDD471A001 PLC / DCS维护日志

​ GDD471A001 PLC / DCS维护日志 PLC维护日志 PLC/DCS 维护日志将帮助您跟踪过去的故障、解决方案、零件更换。如果以后再次出现同样的问题&#xff0c;跟踪日志将帮助您立即解决。 您的控制系统的可靠性可以通过参考维护日志来确定。 使用 PLC/DCS 维护日志可以识别频繁出…

React的生命周期及Redux状态管理器等

生命周期 一个应用或页面从创建到消亡过程中某一时刻自动调用的回调函数称为生命周期钩子函数 挂载 constructor &#xff1a;来初始化函数内部 state&#xff0c;为 事件处理函数 绑定实例render&#xff1a;渲染 DOMcomponentDidMount&#xff1a;组件挂载、DOM 渲染完后&…

V8 JavaScript引擎

简介 V8 (v8.dev)是 Google 的开源高性能 JavaScript 和 WebAssembly 引擎&#xff0c;用 C 编写。它用于 Chrome 和 Node.js 等。它实现了 ECMAScript 和 WebAssembly&#xff0c;并运行在 Windows 7 或更高版本、macOS 10.12 以及使用 x64、IA-32、ARM 或 MIPS 处理器的 Lin…

FFmpeg HEVC 解码 YUV

1. 概要与流程图 1.1 FFmpeg 支持 h264,hevc 等解码,由于分离视频文件为 hevc 格式,为了方便起见,当前解码的格式为 hevc,代码支持各种视频格式解码,需要修改参数和适配 1.2 HEVC 解码 YUV 流程图如下: 2. 封装读写文件操作 2.1 读写头文件,FileTool.h #import <Fou…

MAC常用操作

1. 添加环境变量 vi ~/.bash_profile export PATHselfdefine_path:$PATH source ~/.bash_profile适用于安装Application之后将该Application的Contents/bin下的可执行程序添加到环境变量&#xff0c;使得在终端能够启用。 例如使用cmake-3.25.0-macos-universal.dmg安装好cmak…