巨大ネットワーク可視化ソフトCytoscape インストールと使い方

PythonのNetworkXやRのigraphによって巨大なネットワークの可視化を行いましたが、png出力ではノードやリンクが潰れてしまったり、リアルタイム表示すると処理が間に合わなかったりしました。

そんなとき、今開発が進められているCytoscapeというソフトを見つけたので紹介してみたいと思います。
Cytoscapeは複雑・巨大ネットワークを可視化する専門のツールで、リアルタイムで拡大しノードの属性(名前)を確認できます。
早さと滑らかさと綺麗さに驚きました。
一方、ネットワーク自体に適応させるアルゴリズムクラスタリングや中心媒介性の計算など)はできないようですが、そこだけRやPythonで計算すればよさそうです。


早速インストール方法を紹介します。(Ubuntu14.04)
まずは、Cytoscape公式サイトからダウンロードします。

WindowsMacLinuxどれも対応しているようです。

続いて、シェルスクリプトファイルがあるディレクトリで、

sudo sh Cytoscape_3_2_0_unix.sh

で完了します。


ダッシュボードなどからCytoscapeで検索して起動させましょう。
f:id:alstd:20141217163545p:plain
From Network Fileを選択すると、ネットワークのデータの場所を問われます。

ネットワークデータは統計処理ソフトR ファイルや出力の扱い方 - 備忘録のsample1.datの形式で作れます。
ただし、拡張子が.datのままだと読み込めないと言われるため、.txtにすれば大丈夫です。

小さいネットワークでは面白くないかもしれないので、
networkdata.txt - Google ドライブ
をアップロードしておきます。

f:id:alstd:20141217163646p:plain
Column1とColumn2の間を繋げたいため、画像のような設定にします。
OKを押すと次のように・・・

f:id:alstd:20141217164350p:plain
これじゃない感
もっと格好良く表示させたいですので、次のように設定を弄って下さい。

f:id:alstd:20141217164517p:plain
サイドメニューのStyleからdefault blackを選び、

f:id:alstd:20141217164610p:plain
上の画像のアイコンをクリックすると・・・

f:id:alstd:20141217164653p:plain
無事にきれいなネットワークの画像が得られました。

これはリアルタイムで表示されているため、拡大しても潰れません。
スクロールしてみると、
f:id:alstd:20141217164802p:plain
ノードに名前が付いていますね。
元のデータはAmazonの書籍のISBN(識別番号)です。
リンクは「この商品を買った人はこんな商品も買っています」の関係性から生成しています。

ノードをクリックしたり、範囲選択で複数選ぶと、
f:id:alstd:20141217165029p:plain
そのノードがハイライトされ、更にそのノードに接続するエッジも検出できます!


すごく早く処理してくれるため、可視化に関してはRやPythonを遥かに凌駕しているように感じますね。