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

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

WGCNA 系列

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

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


WGCNA的基础教程到此就告一段落,之后将以已发表文章内的示例进行实战讲解。需要基础教程的全部代码及示例数据的朋友可以点赞+在看,并转发朋友圈集赞10个或者赞赏10元

  • WGCNA 系列

  • 参考

  • 数据准备

  • 在R中可视化网络

    • 可视化基因网络

    • eigengenes网络可视化

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

    • 导出到Cytoscape

  • 往期

参考

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

其它资料:

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

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

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

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

数据准备

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

  2. 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")
9131d31d9fc57a445ad7b944ee6a7658.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")
706aa4c3e77d801b600569469b694d53.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)
5d9493b8cecab4e31a5ebb58d29e9e0b.png
eigengenes特征基因的层次聚类树状图。树状图显示红色、棕色和蓝色模块高度相关,它们之间的相关性强于它们与weight的相关性。
61b2acc091a47c3bd431ed7e8e456516.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中有edgenode数据,可以导入cytoscape进行可视化。

往期

  1. 跟着Nature学作图 | 配对哑铃图+分组拟合曲线+分类变量热图

  2. (免费教程+代码领取)|跟着Cell学作图系列合集

  3. 跟着Nat Commun学作图 | 1.批量箱线图+散点+差异分析

  4. 跟着Nat Commun学作图 | 2.时间线图

  5. 跟着Nat Commun学作图 | 3.物种丰度堆积柱状图

  6. 跟着Nat Commun学作图 | 4.配对箱线图+差异分析


  • 1
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
简明python教程》.pdf是一本非常优秀的Python入门教程。这本教程以简明的方式介绍了Python编程语言的基本概念和用法,适合初学者快速入门。 首先,教程首先介绍了Python的背景和特点。它是一种易于学习和使用的编程语言,具有动态类型和自动内存管理等特点,可以广泛应用于Web开发、数据科学、机器学习等领域。 接着,教程详细讲解了Python的基本语法和常用数据类型,如整数、浮点数、字符串和列表等。它循序渐进地介绍了变量、条件语句、循环结构和函数等基本概念,让读者能够了解基本的编程思维和方法。 此外,教程还介绍了Python的标准库和常用的第三方库。标准库包含了大量的模块和函数,可以实现文件操作、网络通信、GUI界面等功能,帮助读者快速实现各种应用需求。而第三方库则提供了更多功能强大的模块,如NumPy、Pandas和Matplotlib等数据科学库,以及Django和Flask等Web框架,扩展了Python的应用范围。 最后,教程还提供了一些实例和练习,帮助读者巩固所学知识,并激发对编程的兴趣和创造力。 总之,《简明python教程》.pdf是一本值得推荐的Python入门教程。它的简明风格、清晰的讲解和丰富的实例,使得初学者能够快速掌握Python编程的基本技能,并为进一步学习和实践打下良好的基础。无论是想要学习编程基础知识,还是想要进一步探索Python语言的特性和应用,这本教程都是一个很好的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值