鉴于经常折腾一些网络数据,为了忽悠老板、听众和审稿人,经常要生成一些复杂网络的图片——某些时候还得带点交互功能。罗列一下自己常用的复杂网络可视化工具,完完全全是以偏概全。
- Cytoscape
曾经的最爱,还折腾过其文档的中文化。一大票的著名大学和大企业联合开发出来的东西,最初是专注于生物网络的可视化和相关数据的融合,随着功能不断的扩展,已经成为了面向各种复杂网络的可视化工具。不过强项依然是生物网络,最吸引的人是众多的插件和强悍的数据融合能力。不过,在3.0版本出来之前,想要在命令行完成所有操作是不可能的。基于Java的桌面图形应用,加上强悍的互动能力,在性能方面让人难以忍受。写插件时会发现文档里面有很多未注释的接口,只能从接口名称猜功能。
- Cytoscape Web
针对Web应用的网络数据可视化工具,看名字就知道跟Cytoscape有千丝万缕的联系。Flash加Javascript组成的工具,可以嵌在网页中显示复杂网络,交互功能比较彪悍。用这玩意写过一个简单的数据展示网页,关于乳腺癌的。跟Cytoscape一样,这玩意在处理大网络时性能也不怎么样。不知道什么时候能进化到HTML 5。
- R的igraph包
igraph是一个C++的库,有C++、Python和R的接口。作为R的用户,自然是选用R的接口。igraph的效率要高得多,在批量生成图形时,也非常方便。但缺点是,各种类型的数据融合都要自行处理,必须要去熟悉Bioconductor里面的很多包。
- Perl的GraphViz包
简单,方便。GraphViz本来是一组用于绘制复杂网络的工具,有很多开发语言都对其进行了封装,提供了接口,包括Perl。CPAN上的Graphviz包就是用于调用GraphViz的。
关于作者
陈钢, 华大基因, 研究员
长沙土鳖,Linux系统初级管理员,Perl入门级程序员,R菜鸟,LaTeX爱好者,Python学习者,业余Web开发人员,生物信息学和系统生物学门外汉~