够用就好的网络分析_02.网络分析常用软件及常用R包介绍

文摘   2024-11-13 18:00   中国香港  

够用就好的网络分析_02.网络分析常用软件及常用R包介绍


在这一系列够用就好的网络分析推文中,我们主要涉及到以下内容

  • 01.网络分析及其在生物信息学中的应用
  • 02.网络分析常用软件及常用R包介绍
  • 03.R语言网络分析实战练习
  • 04.网络分析中的各种网络属性
  • 05.网络分析可视化常用布局
  • 06.网络分析可视化之自定义布局

02.网络分析常用软件及常用R包介绍

网络分析是研究复杂系统元素之间相互关系的强有力的工具之一,在生物信息学、社会科学、计算机科学等领域中有着广泛的应用。

进行网络分析时,会涉及到以下常用软件:

常用网络分析软件:

  1. GephiGephi 是一个开源的网络分析和可视化平台,广泛用于社交网络分析、生物网络、复杂网络等领域。它支持多种网络布局算法,如力导向布局、圆形布局等,适用于大规模网络数据的分析与可视化。
  2. CytoscapeCytoscape 是一个专注于生物网络分析的软件,特别适用于分子生物学中的基因、蛋白质交互网络分析。它提供了多种插件,支持高级网络分析和可视化。
  3. PajekPajek 是一个用于分析和可视化大规模网络的软件,尤其适合处理具有数千至数百万个节点的网络。它提供了多种图论算法和网络指标计算方法,广泛用于社交网络分析。
  4. NetworkX (Python)NetworkX 是一个 Python 库,用于创建、分析和可视化复杂网络。它提供了图的多种分析功能,如计算节点的中心性、路径分析、社区检测等。
  5. igraph (Python/R)igraph 是一个功能强大的图论包,支持网络的生成、分析和可视化。它支持多种图布局算法,常用于生物信息学、社会网络分析等领域。
  6. VOSviewerVOSviewer 是一个用于构建和可视化文献计量学网络的工具,能够分析科研文献之间的关系,如合作关系、引用关系等,常用于科研领域的网络分析。

作为生物信息领域,其实我在硕士期间使用过GephiCytoscape。这两款软件的特点非常明显:

Gephi和Cytoscape的优势:

开源免费开源,免费,网上的学习手册和教学资源很多,学习成本低,易于操作。

用户友好的图形界面GephiCytoscape都提供了直观的图形用户界面,适合初学者和那些对编程不熟悉的用户。它通过交互式操作,使用户能够快速构建和探索网络。

强大的网络布局算法GephiCytoscape内置了多种布局算法(如 ForceAtlas 2、Fruchterman-Reingold、Circular Layout 等),可以帮助用户轻松调整网络的可视化效果。这些布局算法适用于不同类型的网络,尤其在可视化大规模网络时表现出色。

实时动态布局GephiCytoscape支持动态和实时布局调整,用户可以在分析过程中实时查看网络的变化,适合动态网络数据的展示和分析。

高效的大规模网络处理GephiCytoscape能够处理较大规模的网络数据,具有较好的性能优化,特别适合社交网络、引文网络等大规模数据集。

强大的网络分析功能GephiCytoscape 提供了多种网络分析功能,如网络模块化分析、节点中心性分析、路径富集分析等,适用于不同领域的网络分析。

丰富的插件生态系统GephiCytoscape都拥有强大的插件支持,可以通过安装不同的插件扩展功能,如动态网络分析、时间序列分析等。

社区支持和开源GephiCytoscape都是开源的项目,拥有一个活跃的开发者社区,定期发布新版本和插件,支持大规模的用户群体。它也是一个开源项目,用户可以自由下载和使用。

适合科研数据的处理与分析GephiCytoscape适合处理复杂的科研数据,尤其是Cytoscape更加专注于在生物学、医学等领域,能够结合多种实验数据(如基因表达、临床数据等)进行深度分析。

可以说:GephiCytoscape这两款软件,在不需要任何编程背景的条件下,可以快速和便捷的完成网络分析以及可视化。

这两款软件都是开源、免费的,大家去blibli大学随便一搜,就可以完成两款软件的进修学习。


而在我进入到读博之后,我接触和使用更多的是使用R语言进行网络分析

网络分析中常用R包:

igraph 是 R 中最常用的网络分析包之一,支持网络的创建、操作和可视化。它具有强大的图论分析功能,包括节点中心性、连通性分析、社区检测等。可以结合 ggplot2 进行更加灵活的网络可视化。

library(igraph)
g <- erdos.renyi.game(100, p = 0.05)
plot(g)

ggraph 是基于 ggplot2 的网络可视化包,可以通过灵活的语法创建美观的网络图。它支持多种网络布局,并且可以与 igraphtidygraph 配合使用,进行更加复杂的分析。

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 是一个与 dplyrggplot2 兼容的网络分析包,它将网络数据转换为类似于数据框的数据结构,并可以利用 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是网络分析的基石,可以在网络分析中获取各种网络属性,以及子模块的筛选。
  • tidygraphggraph这两款R包,作为网络可视化的左膀右臂,几乎可以画出各种想绘制的网络布局。
  • SpiecEasi是适用于微生物的网络分析,目前在高分文章中的表现程度呈现非常突出的状态。

而在使用R语言进行网络分析的时候,让大家进行迷茫的其实主要有以下几点:

  1. 如何配置输入文件的格式
  2. 如何进行网络分析(网络拓扑属性、网络特征、子网络、网络模块)
  3. 如何进行网络可视化(各种默认布局、如何进行自定义布局)

作为网络分析的重中之重,以上内容将会在我们够用就好的网络分析中娓娓道来。


RPython公众号网络可视化预览

笔者之前绘制过诸多的网络可视化,都是基于以上关键R包进行绘制的。

推文链接如下:在模仿中精进数据可视化_继续使用R语言进行网络组合图

注意:里面的龙凤呈祥的感觉其实就是网络可视化实现的。

推文链接如下:

在模仿中精进数据可视化_使用R语言绘制聚类树进一步展示微生物的物种分类

复现了文章中的物种注释图

推文链接如下:

在模仿中精进数据可视化_网络分析及自定义布局可视化

自定义的网络布局

推文链接如下:

基因家族分析流程11_蛋白质互作网络PPI

PPI互作网络

推文链接如下:

在模仿中精进数据可视化_使用网络图绘制不一样的GO和KEGG可视化

不一样的GO注释

剩下电脑里面就是笔者的小论文和大论文了,这里就不给大家展示了,hhhhhhh。


历史绘图合集

公众号推文一览----从6月份到现在,真的是笔耕不辍,硕果累累啊。


进化树合集


环状图


散点图


基因家族合集

换一个排布方式:

首先查看基础版热图:

然后再看进阶版热图:


基因组共线性


WGCNA ggplot2版本


其他科研绘图


合作、联系和交流

有很多小伙伴在后台私信作者,非常抱歉,我经常看不到导致错过,请添加下面的微信联系作者,一起交流数据分析和可视化。


RPython
人生苦短,R和Python。
 最新文章