之前已经介绍了网络计算,构建以及各种注释了。本文将详细介绍MetaNet中的各种可视化方法,从基础绘图到高级布局技巧。
- 软件主页:https://github.com/Asa12138/MetaNet 大家可以帮忙在github上点点star⭐️,谢谢🙏
- 详细英文版教程:https://bookdown.org/Asa12138/metanet_book/
可以从 CRAN 安装稳定版:install.packages("MetaNet")
最新的开发版本可以在 https://github.com/Asa12138/MetaNet 中找到:
|
|
依赖包 pcutils
和igraph
(需提前安装),推荐配合 dplyr
进行数据操作。
|
|
绘图设置
在构建网络时,MetaNet已经设置了一些与可视化相关的内部属性。我们可以使用c_net_set()
函数自定义这些属性以满足研究需求。
如果需要更灵活地自定义网络图,可以使用c_net_plot()
函数,它包含许多灵活的绘图参数:



示例代码,尝试各种设置看看:
|
|

使用params_list
params_list
是c_net_plot()
中的一个特殊参数,它是一个包含参数的列表,可以方便地用于绘制一系列具有相同属性的网络图:
|
|

|
|

网络布局
布局是网络可视化的重要组成部分,一个好的布局可以清晰地呈现信息。
在MetaNet中,我们使用coors
对象来存储布局的坐标。coors
是一个具有"name", “X”, “Y"三列的dataframe。
基础布局
使用c_net_layout()
获取特定布局方法的坐标:
|
|

可用的基础布局方法包括:
- igraph布局:
in_circle()
,nicely()
,on_grid()
,on_sphere()
,randomly()
,with_dh()
,with_fr()
,with_gem()
,with_graphopt()
,with_kk()
,with_lgl()
,with_mds()
- metanet新布局方法:
as_line()
,as_arc()
,as_polygon()
,as_polyarc()
,as_polycircle()
,as_circle_tree()
,as_multi_layer()
,as_poly_sector()
- ggraph布局:“auto”, “backbone”, “centrality”, “circlepack”, “dendrogram”, “eigen”, “focus”, “hive”, “igraph”, “linear”, “manual”, “matrix”, “partition”, “pmds”, “stress”, “treemap”, “unrooted”
示例代码展示不同布局效果:
|
|

|
|
as_polygon()
很有趣,它可以绘制多边形形状的网络,您可以更改多边形的边数:

变换布局
使用transform_comors
可以转换布局,包括缩放,X/Y比,旋转角度,镜像,伪3D效果等:
|
|

分组布局
除c_net_layout()
外,我们还为具有分组变量的网络提供了一种高级布局方法:g_layout()
。
使用g_layout()
可以轻松控制每个组的位置及其内部布局。g_layout()
返回的也是coors
对象,这意味着我们可以继续用g_layout()
组合,实现疯狂套娃,高度自定义的布局!
g_layout()
在处理多组学网络或模块网络)时,是布局分组变量网络的极佳选择。
- 首先,指定分组变量group
- 设置组间布局
layout1
,可选:- 数据框或矩阵:行名为组名,两列分别为X和Y坐标
- 函数:
c_net_layout()
的各种布局方法(默认:in_circle())
- 调整
layout1
的缩放比例zoom1
- 设置组内布局
layout2
(使用c_net_layout()
的各种布局方法), 用一个list,为每个组单独指定布局函数或者直接给一个坐标数据框。 - 调整
layout2
的缩放比例zoom2
,可用向量分别控制各组缩放 - 设置
show_big_layout = T
可查看layout1
的分布情况
|
|

|
|

tkplot手动调整大布局
|
|


MetaNet还提供了一些预设的分组布局方法:
g_layout_circlepack()
g_layout_treemap()
g_layout_backbone()
g_layout_stress()
g_layout_polyarc()
g_layout_polygon()
g_layout_polycircle()
g_layout_multi_layer()
伪3D效果g_layout_poly_sector()
示例代码:
|
|

spatstat
layout
|
|

尝试画个五角星⭐️:
|
|

甚至可以画成地图:
|
|

|
|

MetaNet使用的是igraph的绘图方式,R的基础绘图,所以需要用pdf
,png
等设备保存图片。下一节介绍MetaNet和其他绘图方式如ggplot2,D3等的转换,以及MetaNet配合Gephi,Cytoscape等交互式软件使用。
References
- Koutrouli M, Karatzas E, Paez-Espino D and Pavlopoulos GA (2020) A Guide to Conquer the Biological Network Era Using Graph Theory. Front. Bioeng. Biotechnol. 8:34. doi: 10.3389/fbioe.2020.00034
- Faust, K., and Raes, J. (2012). Microbial interactions: from networks to models. Nat. Rev. Microbiol. https://doi.org/10.1038/nrmicro2832.
- Y. Deng, Y. Jiang, Y. Yang, Z. He, et al., Molecular ecological network analyses. BMC bioinformatics (2012), doi:10.1186/1471-2105-13-113.