巨大ネットワーク可視化ソフトCytoscape インストールと使い方
PythonのNetworkXやRのigraphによって巨大なネットワークの可視化を行いましたが、png出力ではノードやリンクが潰れてしまったり、リアルタイム表示すると処理が間に合わなかったりしました。
そんなとき、今開発が進められているCytoscapeというソフトを見つけたので紹介してみたいと思います。
Cytoscapeは複雑・巨大ネットワークを可視化する専門のツールで、リアルタイムで拡大しノードの属性(名前)を確認できます。
早さと滑らかさと綺麗さに驚きました。
一方、ネットワーク自体に適応させるアルゴリズム(クラスタリングや中心媒介性の計算など)はできないようですが、そこだけRやPythonで計算すればよさそうです。
早速インストール方法を紹介します。(Ubuntu14.04)
まずは、Cytoscape公式サイトからダウンロードします。
Windows、Mac、Linuxどれも対応しているようです。
sudo sh Cytoscape_3_2_0_unix.sh
で完了します。
ダッシュボードなどからCytoscapeで検索して起動させましょう。
From Network Fileを選択すると、ネットワークのデータの場所を問われます。
ネットワークデータは統計処理ソフトR ファイルや出力の扱い方 - 備忘録のsample1.datの形式で作れます。
ただし、拡張子が.datのままだと読み込めないと言われるため、.txtにすれば大丈夫です。
小さいネットワークでは面白くないかもしれないので、
networkdata.txt - Google ドライブ
をアップロードしておきます。
Column1とColumn2の間を繋げたいため、画像のような設定にします。
OKを押すと次のように・・・
これじゃない感
もっと格好良く表示させたいですので、次のように設定を弄って下さい。
サイドメニューのStyleからdefault blackを選び、
上の画像のアイコンをクリックすると・・・
無事にきれいなネットワークの画像が得られました。
これはリアルタイムで表示されているため、拡大しても潰れません。
スクロールしてみると、
ノードに名前が付いていますね。
元のデータはAmazonの書籍のISBN(識別番号)です。
リンクは「この商品を買った人はこんな商品も買っています」の関係性から生成しています。
ノードをクリックしたり、範囲選択で複数選ぶと、
そのノードがハイライトされ、更にそのノードに接続するエッジも検出できます!
すごく早く処理してくれるため、可視化に関してはRやPythonを遥かに凌駕しているように感じますね。