【五年磨一剑】纯代码复现nature/cell大型网络图并标注模块基因

起源于五年前的一篇cell,又被唤醒于2024年的一篇nature medicine。两篇文章这个图都是关于WGCNA后续结果的展示,胜在这个网络布局很好。被无数次问道如何制作,最开始的Cell是2020年的,一直是很多人的执念,所以下定决心实现。Cell原文描述应该是使用cytoscape进行网络可视化;Nature medicine描述采用的是igraph力导向布局,但是很难直接使用igraph的默认layout得到这个结果。所以重点在于layout布局,这里我们也是利用了WGCNA下游结果((视频教程)转录组/蛋白组WGCNA分析及个性化作图---你的CNS文章值得拥有)进行展示,全程纯代码实现网络效果,包括标注module通路!


在整个过程中,在网络的构建步骤,我们写了一个通用的函数,所以这个网络不仅仅只针对WGCNA结果的展示,有类似的展示比如大型基因互作展示、hdWGCNA、hotspots、NMF等等,准备需要的数据,就可以实现。这个函数网络是随机分布的,可以尝试得到自己满意的分布:
21a867d9-e076-47e0-bbe0-3c001071445a.png

library(igraph)

library(RColorBrewer)



edge_file <- read.csv('./edge_file.csv',header = T,row.names = 1)

nodes_files <- read.csv('./gene_module.csv',header = T,row.names = 1)



#plot

#================================================================================

png("test.png", width = 1200, height = 1200, res = 150)



set.seed(12345)

ks_large_network(edge_file, nodes_files,

                          cluster_spread=0.06,

                          pull_toward_center=0.25,

                          vertex_size=3)

dev.off()

到我们需要的网络布局之后,就可以提取坐标信息在ggplot2中进行可视化了,提取的目的主要是为了后续其他操作能够更加灵活,比如添加module通路,这里实现了纯代码添加,不需要ps/AI。

也可以自定义基因分类,像文章中那样,这网络上展示基因上下调:


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容