WGCNA 简明指南|3.使用WGCNA实现网络可视化

简介: WGCNA 简明指南|3.使用WGCNA实现网络可视化

参考


本文主要参考官方指南Tutorials for WGCNA R package (ucla.edu),详细内容可参阅官方文档。


其它资料:


WGCNA - 文集 - 简书 (jianshu.com)


WGCNA分析,简单全面的最新教程 - 简书 (jianshu.com)


WGCNA:(加权共表达网络分析)_bioprogrammer-CSDN博客


WGCNA如何从module中挖掘关键基因_庐州月光的博客-CSDN博客


数据准备


WGCNA 简明指南|1. 基因共表达网络构建及模块识别


WGCNA 简明指南|2. 模块与性状关联分析并识别重要基因


在R中可视化网络


可视化基因网络

# 模块检测时的计算,重新算一次
dissTOM = 1-TOMsimilarityFromExpr(datExpr, power = 6);
# 对dissTOM进行power转换,使中等强度的连接在热图中更加明显
plotTOM = dissTOM^7;
# 设置对角线为NA以得到更好的图
diag(plotTOM) = NA;
# 绘图
sizeGrWindow(9,9)
TOMplot(plotTOM, geneTree, moduleColors, main = "Network heatmap plot, all genes")

image.png

图1:使用热图显示基因网络。热图描述了分析中所有基因的拓扑重叠矩阵(TOM)。浅色代表低重叠,逐渐变深的红色代表高重叠。沿着对角线的深色块是模块。基因树状图和模块分配也显示在左侧和顶部。

部分基因可视化TOM矩阵

全部基因生成热图可能需要大量的时间。可以限制基因的数量来加快绘图速度。然而,一个基因子集的基因树状图通常看起来不同于所有基因的基因树状图。在下面的例子中,将绘制的基因数量限制在400个。

nSelect = 400
# 为了可重复,设置随机数种子
set.seed(10);
select = sample(nGenes, size = nSelect);
selectTOM = dissTOM[select, select];
# 没有简单的方法将聚类树限制在基因的一个子集,所以我们必须重新聚类
selectTree = hclust(as.dist(selectTOM), method = "average")
selectColors = moduleColors[select];
# 绘制
sizeGrWindow(9,9)
plotDiss = selectTOM^7;
diag(plotDiss) = NA;
TOMplot(plotDiss, selectTree, selectColors, main = "Network heatmap plot, selected genes")

image.png

image.png

图2:部分基因可视化TOM矩阵


eigengenes网络可视化


# 重新计算模块 eigengenes
MEs = moduleEigengenes(datExpr, moduleColors)$eigengenes
# 提取临床特征weight
weight = as.data.frame(datTraits$weight_g);
names(weight) = "weight"
# 在eigengenes模块中加入临床特征weight
MET = orderMEs(cbind(MEs, weight))
# 绘制eigengenes和临床特征weight之间的关系图
sizeGrWindow(5,7.5);
par(cex = 0.9)
plotEigengeneNetworks(MET, "", 
                      marDendro = c(0,4,1,2), 
                      marHeatmap = c(3,4,1,2), 
                      cex.lab = 0.8, xLabelsAngle= 90)
# 分别绘制                      
# 绘制树状图
sizeGrWindow(6,6);
par(cex = 1.0)
plotEigengeneNetworks(MET, "Eigengene dendrogram", marDendro = c(0,4,2,0),
                      plotHeatmaps = FALSE)
# 绘制热图
par(cex = 1.0)
plotEigengeneNetworks(MET, "Eigengene adjacency heatmap", marHeatmap = c(3,4,2,2),
                      plotDendrograms = FALSE, xLabelsAngle = 90)

image.png

eigengenes特征基因的层次聚类树状图。树状图显示红色、棕色和蓝色模块高度相关,它们之间的相关性强于它们与weight的相关性。

image.png

相关性热图。

将网络数据导出到网络可视化软件

导出到Cytoscape

# Recalculate topological overlap if needed
TOM = TOMsimilarityFromExpr(datExpr, power = 6);
# Read in the annotation file
annot = read.csv(file = "GeneAnnotation.csv");
# 以红色和棕色模块为例
modules = c("brown", "red");
# Select module probes
probes = names(datExpr)
inModule = is.finite(match(moduleColors, modules));
modProbes = probes[inModule];
modGenes = annot$gene_symbol[match(modProbes, annot$substanceBXH)];
# Select the corresponding Topological Overlap
modTOM = TOM[inModule, inModule];
dimnames(modTOM) = list(modProbes, modProbes)
# Export the network into edge and node list files Cytoscape can read
cyt = exportNetworkToCytoscape(modTOM,
                               edgeFile = paste("CytoscapeInput-edges-", paste(modules, collapse="-"), ".txt", sep=""),
                               nodeFile = paste("CytoscapeInput-nodes-", paste(modules, collapse="-"), ".txt", sep=""),
                               weighted = TRUE,
                               threshold = 0.02,
                               nodeNames = modProbes,
                               altNodeNames = modGenes,
                               nodeAttr = moduleColors[inModule]);

cyt中有edge和node数据,可以导入cytoscape进行可视化。


相关文章
|
15天前
|
机器学习/深度学习 数据可视化 计算机视觉
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
这篇文章详细介绍了如何通过可视化深度学习中每层特征层来理解网络的内部运作,并使用ResNet系列网络作为例子,展示了如何在训练过程中加入代码来绘制和保存特征图。
35 1
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
|
17天前
|
机器学习/深度学习 数据可视化 Windows
深度学习笔记(七):如何用Mxnet来将神经网络可视化
这篇文章介绍了如何使用Mxnet框架来实现神经网络的可视化,包括环境依赖的安装、具体的代码实现以及运行结果的展示。
36 0
|
15天前
|
机器学习/深度学习 数据可视化 Linux
Seaborn可视化学习笔记(一):可视化神经网络权重分布情况
这篇文章是关于如何使用Seaborn库来可视化神经网络权重分布的教程,包括函数信息、测试代码和实际应用示例。
25 0
|
3月前
|
数据可视化 算法 C++
脑研究、脑网络分析、可视化的工具箱有哪些?
本文列举并简要介绍了用于脑研究、脑网络分析和可视化的多种工具箱,如Brain Connectivity Toolbox、bctpy、人类连接组项目等,为神经科学研究者提供了丰富的分析和可视化大脑网络的工具选择。
148 2
脑研究、脑网络分析、可视化的工具箱有哪些?
|
3月前
|
机器学习/深度学习 数据可视化 Python
如何可视化神经网络的神经元节点之间的连接?附有Python预处理代码
该博客展示了如何通过Python预处理神经网络权重矩阵并将其导出为表格,然后使用Chiplot网站来可视化神经网络的神经元节点之间的连接。
48 0
如何可视化神经网络的神经元节点之间的连接?附有Python预处理代码
|
3月前
|
数据采集 存储 数据可视化
基于Python 网络爬虫和可视化的房源信息的设计与实现
本文介绍了一个基于Python Scrapy框架和echart库的房源信息采集与可视化系统,该系统通过自动化爬虫提高房地产数据采集效率,并通过Flask服务器实现数据的Web可视化展示,旨在帮助房地产从业人员和政策制定者高效、直观地了解房源信息。
|
3月前
|
Prometheus 监控 Cloud Native
在Linux中,如何使用Grafana和Prometheus进行网络监控和可视化?
在Linux中,如何使用Grafana和Prometheus进行网络监控和可视化?
|
5月前
|
机器学习/深度学习 数据可视化 TensorFlow
【手把手教学】如何可视化YOLOv8深度学习的网络结构并保存
【手把手教学】如何可视化YOLOv8深度学习的网络结构并保存
|
6月前
|
机器学习/深度学习 数据可视化 算法
R语言神经网络与决策树的银行顾客信用评估模型对比可视化研究
R语言神经网络与决策树的银行顾客信用评估模型对比可视化研究
|
6月前
|
机器学习/深度学习 监控 数据可视化
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例2
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例

热门文章

最新文章