够用就好的网络分析_02.网络分析常用软件及常用R包介绍
❝在这一系列够用就好的网络分析推文中,我们主要涉及到以下内容
01.网络分析及其在生物信息学中的应用 02.网络分析常用软件及常用R包介绍 03.R语言网络分析实战练习 04.网络分析中的各种网络属性 05.网络分析可视化常用布局 06.网络分析可视化之自定义布局
02.网络分析常用软件及常用R包介绍
网络分析是研究复杂系统元素之间相互关系的强有力的工具之一,在生物信息学、社会科学、计算机科学等领域中有着广泛的应用。
进行网络分析时,会涉及到以下常用软件:
常用网络分析软件:
GephiGephi 是一个开源的网络分析和可视化平台,广泛用于社交网络分析、生物网络、复杂网络等领域。它支持多种网络布局算法,如力导向布局、圆形布局等,适用于大规模网络数据的分析与可视化。 CytoscapeCytoscape 是一个专注于生物网络分析的软件,特别适用于分子生物学中的基因、蛋白质交互网络分析。它提供了多种插件,支持高级网络分析和可视化。 PajekPajek 是一个用于分析和可视化大规模网络的软件,尤其适合处理具有数千至数百万个节点的网络。它提供了多种图论算法和网络指标计算方法,广泛用于社交网络分析。 NetworkX (Python)NetworkX 是一个 Python 库,用于创建、分析和可视化复杂网络。它提供了图的多种分析功能,如计算节点的中心性、路径分析、社区检测等。 igraph (Python/R)igraph 是一个功能强大的图论包,支持网络的生成、分析和可视化。它支持多种图布局算法,常用于生物信息学、社会网络分析等领域。 VOSviewerVOSviewer 是一个用于构建和可视化文献计量学网络的工具,能够分析科研文献之间的关系,如合作关系、引用关系等,常用于科研领域的网络分析。
作为生物信息领域,其实我在硕士期间使用过Gephi
和Cytoscape
。这两款软件的特点非常明显:
Gephi和Cytoscape的优势:
开源免费开源,免费,网上的学习手册和教学资源很多,学习成本低,易于操作。
用户友好的图形界面Gephi
和Cytoscape
都提供了直观的图形用户界面,适合初学者和那些对编程不熟悉的用户。它通过交互式操作,使用户能够快速构建和探索网络。
强大的网络布局算法Gephi
和Cytoscape
内置了多种布局算法(如 ForceAtlas 2、Fruchterman-Reingold、Circular Layout 等),可以帮助用户轻松调整网络的可视化效果。这些布局算法适用于不同类型的网络,尤其在可视化大规模网络时表现出色。
实时动态布局Gephi
和Cytoscape
支持动态和实时布局调整,用户可以在分析过程中实时查看网络的变化,适合动态网络数据的展示和分析。
高效的大规模网络处理Gephi
和Cytoscape
能够处理较大规模的网络数据,具有较好的性能优化,特别适合社交网络、引文网络等大规模数据集。
强大的网络分析功能Gephi
和Cytoscape
提供了多种网络分析功能,如网络模块化分析、节点中心性分析、路径富集分析等,适用于不同领域的网络分析。
丰富的插件生态系统Gephi
和Cytoscape
都拥有强大的插件支持,可以通过安装不同的插件扩展功能,如动态网络分析、时间序列分析等。
社区支持和开源Gephi
和Cytoscape
都是开源的项目,拥有一个活跃的开发者社区,定期发布新版本和插件,支持大规模的用户群体。它也是一个开源项目,用户可以自由下载和使用。
适合科研数据的处理与分析Gephi
和Cytoscape
适合处理复杂的科研数据,尤其是Cytoscape
更加专注于在生物学、医学等领域,能够结合多种实验数据(如基因表达、临床数据等)进行深度分析。
❝可以说:
Gephi
和Cytoscape
这两款软件,在不需要任何编程背景的条件下,可以快速和便捷的完成网络分析以及可视化。这两款软件都是开源、免费的,大家去blibli大学随便一搜,就可以完成两款软件的进修学习。
❝而在我进入到读博之后,我接触和使用更多的是使用
R
语言进行网络分析
网络分析中常用R包:
igraph
是 R 中最常用的网络分析包之一,支持网络的创建、操作和可视化。它具有强大的图论分析功能,包括节点中心性、连通性分析、社区检测等。可以结合 ggplot2 进行更加灵活的网络可视化。
library(igraph)
g <- erdos.renyi.game(100, p = 0.05)
plot(g)
ggraph
是基于 ggplot2 的网络可视化包,可以通过灵活的语法创建美观的网络图。它支持多种网络布局,并且可以与 igraph
和 tidygraph
配合使用,进行更加复杂的分析。
library(ggraph)
library(igraph)
g <- erdos.renyi.game(100, p = 0.05)
ggraph(g, layout = 'fr') +
geom_edge_link() +
geom_node_point() +
theme_graph()
tidygraph
是一个与 dplyr
和 ggplot2
兼容的网络分析包,它将网络数据转换为类似于数据框的数据结构,并可以利用 dplyr
提供的函数进行操作。适合处理社交网络、协作网络等数据。
library(tidygraph)
g <- as_tbl_graph(igraph::erdos.renyi.game(100, p = 0.05))
g %>%
activate(nodes) %>%
filter(degree(.) > 2) %>%
ggraph(layout = 'fr') +
geom_edge_link() +
geom_node_point()
statnet
是一个用于创建、分析和可视化网络的 R 包,尤其适用于社会网络分析。它支持各种网络模型(如ERGM,p*模型),并且提供了广泛的网络生成和分析工具。
network
包提供了对网络数据的灵活建模方法,可以表示多种类型的网络,包括有向图、无向图、带权图等。它与 statnet
包相结合,提供了强大的功能。
sna
包是一个用于社会网络分析的 R 包,支持网络的创建、计算、可视化等功能。它可以计算各种网络度量(如网络密度、平均路径长度等)并进行可视化。
bipartite
包专注于二分网络分析,适用于处理物种互作网络(如植物与传粉者的相互关系)。它提供了多种二分网络分析工具,如模块化分析、共现矩阵计算等。
SpiecEasi
是一个用于推断稀疏的生态网络结构的 R 包,广泛应用于微生物学和生态学中,尤其是在处理复杂的高维、稀疏数据时。该包的核心功能是通过稀疏逆协方差矩阵(sparse inverse covariance matrix)推断网络结构,并且它特别适用于网络推断中的高维数据(如微生物群落数据),尤其是在样本数目相对较少的情况下。
# GitHub上的demo
library(devtools)
install_github("zdk123/SpiecEasi")
library(SpiecEasi)
# test data
data(amgut1.filt)
depths <- rowSums(amgut1.filt)
amgut1.filt.n <- t(apply(amgut1.filt, 1, norm_to_total))
amgut1.filt.cs <- round(amgut1.filt.n * min(depths))
d <- ncol(amgut1.filt.cs)
n <- nrow(amgut1.filt.cs)
e <- d
# Synthesize the data
set.seed(10010)
graph <- make_graph('cluster', d, e)
Prec <- graph2prec(graph)
Cor <- cov2cor(prec2cov(Prec))
X <- synth_comm_from_counts(amgut1.filt.cs, mar=2, distr='zinegbin', Sigma=Cor, n=n)
se <- spiec.easi(X, method='mb', lambda.min.ratio=1e-2, nlambda=15)
# Applying data transformations...
# Selecting model with pulsar using stars...
# Fitting final estimate with mb...
# done
❝总体而言,在使用
R
语言进行网络分析的时候:
igraph
是网络分析的基石,可以在网络分析中获取各种网络属性,以及子模块的筛选。tidygraph
和ggraph
这两款R
包,作为网络可视化的左膀右臂,几乎可以画出各种想绘制的网络布局。SpiecEasi
是适用于微生物的网络分析,目前在高分文章中的表现程度呈现非常突出的状态。
而在使用R
语言进行网络分析的时候,让大家进行迷茫的其实主要有以下几点:
如何配置输入文件的格式 如何进行网络分析(网络拓扑属性、网络特征、子网络、网络模块) 如何进行网络可视化(各种默认布局、如何进行自定义布局)
作为网络分析的重中之重,以上内容将会在我们够用就好的网络分析中娓娓道来。
RPython公众号网络可视化预览
❝笔者之前绘制过诸多的网络可视化,都是基于以上关键
R
包进行绘制的。
推文链接如下:在模仿中精进数据可视化_继续使用R语言进行网络组合图
❝注意:里面的龙凤呈祥的感觉其实就是网络可视化实现的。
推文链接如下:
在模仿中精进数据可视化_使用R语言绘制聚类树进一步展示微生物的物种分类
❝复现了文章中的物种注释图
推文链接如下:
❝自定义的网络布局
推文链接如下:
❝
PPI
互作网络
推文链接如下:
在模仿中精进数据可视化_使用网络图绘制不一样的GO和KEGG可视化
❝不一样的GO注释
❝剩下电脑里面就是笔者的小论文和大论文了,这里就不给大家展示了,hhhhhhh。
历史绘图合集
公众号推文一览----从6月份到现在,真的是笔耕不辍,硕果累累啊。
进化树合集
环状图
散点图
基因家族合集
换一个排布方式:
首先查看基础版热图:
然后再看进阶版热图:
基因组共线性
WGCNA ggplot2版本
其他科研绘图
合作、联系和交流
有很多小伙伴在后台私信作者,非常抱歉,我经常看不到导致错过,请添加下面的微信联系作者,一起交流数据分析和可视化。