今回は、ネットワーク可視化ツール「Cytoscape」の基本操作について解説する。取り上げるのは、データの準備、データの読み込み、ネットワークのレイアウト変更、ネットワークの画像出力、セッションの保存、という一連の作業。画像もたくさん載せるので、かなりわかりやすいはず!
■データの準備
まず、可視化したいネットワークのデータを用意する。「ネットワーク」を可視化したいので、どの「ノード」(node)とどの「ノード」が「リンク」(link)で結ばれているのかを、個別に指定しなければならない。また、ネットワーク分析においては、個々のリンクの重み(強度)が重要になることがあるので、そのような情報も盛り込む必要がある。
Cytoscapeで読み込めるデータの形式にはいろいろあるが、僕らは普段、次のような形式でデータを用意している。どのノードとどのノードをリンクでつなげるのかということと、そのリンクの重みがどのくらいか、ということを、ずらっと書いていくのだ。テキストフォーマットとしては、カンマ区切りのcsv(comma separated value)形式だ。
リンク元のノード名,リンク先のノード名,リンクの重み
リンク元のノード名,リンク先のノード名,リンクの重み
リンク元のノード名,リンク先のノード名,リンクの重み
リンクに「向き」がある「有向グラフ」(directed graph)の場合には、1列目のノードから、2列目のノードへとリンクが張られる。リンクに「向き」がない「無向グラフ」(undirected graph)の場合には、1列目と2列目の順番は意味をもたない。
なお、実データを用いるときには、ノード名の一部に半角のカンマ「,」が入っていないかを確認しよう。データを読み込んだ時に、誤った区切り方で読み込まれてしまうので、事前のデータクリーニングが重要となる。
※なお、カンマが区切りの記号なので、ノード名に空白が入っていても問題はない。ただし、空白の数や全角・半角が違うと、別の名前だと判断されるので、同一のノード名にしたい場合には、それらは統一する必要がある。
今回の説明で使用するサンプルデータ(
sampledata.csv)は、次のようになっている。このデータは、井庭研究会のメーリングリストにおける投稿の連鎖のデータだ。ある一定期間に、誰が誰の投稿にリプライをしたのかを調べ、上記の形式に直したものだ。1列目の人の投稿に対し、2列目の人がリプライしたということを示している。最後の数字は、期間中にそのような組み合わせが何回あったのかを表している。
Angela,Chuck,1
Angela,Hammer,1
Angela,Hana,1
・
・
・
Hammer,Hana,2
Hammer,Ryo,6
Hammer,Taka,4
・
・
・
Tomo,Chuck,1
Tomo,Miu,1
Tomo,Ryo,2
以下で、説明を読みながら実際に試してみる場合には、まず、サンプルデータ(
sampledata.csv)を保存しておこう(右クリックで「名前をつけてリンク先を保存」)。
■データの読み込み
Cytoscapeを立ち上げ、起動画面が終わるのを待つ。[File]メニューから、[Import]→[Network from Table (Text /MS Excel)]を選ぶと、「Import Network and Edge Attributes from Table」ウインドウが表示される。
「Select File(s)」ボタンをクリックし、用意したデータファイルを選択する。ここでは、sampledata.csvを選ぶ。
次に、カンマ区切りのデータを読み込むという設定にするため、ウィンドウの真ん中にある「Advanced」パネルの「Show Text File Import Options」のチェックし、設定パネルを開く。「Delimiter」のところを「Comma」だけになるようにする(チェックが入っている「Tab」と「Space」のチェックははずす)。「Comma」だけになっていることを確認したら、「Show Text File Import Options」のチェックをはずし、設定パネルを閉じる。
今度は、どの列がどのようなデータなのかを、「Interaction Definition」パネルで指定する。ここでは、「Source Interaction」を「column 1」、「Interaction Type」を「column 3」、「Target Interaction」を「column 2」と設定する。左下の「Preview」領域で、正しく指定されていることを確認する。
そして、右下の「Import」ボタンを押すと、データの読み込みが始まる。「Loading Network and Edge Attributes」ウィンドウが立ち上がり、読み込み状況が表示される。小さなデータであれば、あっという間に終わるが、非常に大規模なデータの場合には、この読み込みに数時間から1日かかることもある。読み込みが終わると、「Close」ボタンが押せるようになっているので、それを押して、「Loading Network and Edge Attributes」ウィンドウを閉じる。
■ネットワークのレイアウト変更
データの読み込みが終わると、画面中央にネットワークが可視化されているはずだ。最初に開いたときには、ノードが縦横に整列して配置されていると思う。ここで、ネットワークのレイアウトの変更をしてみよう。
ネットワークのレイアウトの変更は、[Layout]メニューで行うことができる。ネットワークをどのような観点で見たいかによって選択する。[Layout]メニューには、「yFiles」、「Cytoscape Layouts」、「JGraph Layouts」があるが、ここでは、[Cytoscape Layout]→[Edge-weighted Spring Embedded]→[unweighted]を選んでみよう。
これで、リンクのつながり方を反映した配置になったと思う。
見た目の基本的な調整としては、スケールを変える、という方法がある。[Layout]メニューから、[Scale]を選ぶと、左下にスケールパネルが開く。そこでスケールを変更することができる。
また、上方のツールバーにある「(1:1)の虫眼鏡」を選ぶと、ネットワークの全体像が表示されるように調整してくれる。ネットワーク図のノードをドラッグすると、個々のノードの位置を変えることもできる。
色や形などについての詳細な設定については、今度書くことにするとして、次に、ここで可視化したネットワーク図の画像出力を行うことにしたい。
■ネットワークの画像出力
ネットワーク図を画像として出力するには、[File]メニューから、[Export]→[Network View as Graphics] を選ぶ。
立ち上がった「Export Network View as Graphics」ウィンドウで、「Choose」ボタンを押し、出力場所とファイル名を指定する。
出力形式にいは、PDF形式、SVG形式、EPS形式、JPEG形式、PNG形式、BMP形式が指定できる。最初の3つの形式(PDF、SVG、EPS)は、ドロー系の画像として保存される。つまり、ネットワーク図が線の情報として記録されるので、Adobe Illustrator等のドロー系ソフトで編集することができるようになる。論文などで図を使用する場合には、こちらの形式にするのがよいだろう。僕らも普段、PDF形式で出力して、Adobe Illustratorで編集・調整をしている。
後半の3つの形式(JPEG、PNG、BMP)は、ペイント系の画像として保存される。研究の途中段階で、ネットワークの全体像をとりあえず記録したり、メンバーと共有したりするときには、便利かもしれない。
■セッションの保存
最後に、セッションの保存をする。ここでいうセッションの保存というのは、ネットワーク「図」の保存ではなく、ネットワークデータや見た目の設定などを含んだセッション全体を保存するという意味だ。Cytoscapeを閉じたあと、また次のときに、現在の状態から作業を続けるために必要となる。
セッションの保存は、[File]メニューの[Save as ...]で行う。一度、保存場所とファイル名を指定してあれば、[Save]だけでよい。Cytoscapeのセッションは、「~.cys」ファイルとして保存される。
次に読み込むときには、[File]メニューの[Open]で開くか、「~.cys」ファイルをダブルクリックすることで、保存したセッションを読み込むことができる。
以上が、Cytoscapeの基本的な操作だ。次回は、ネットワークの描画についての、より詳細な設定について解説することにしたい。