ポスター間の相関ネットワーク図作成

 前回どのような単語がポスター間で使われているのかが分かったので、今回はそれを利用してポスター間の関係性をネットワーク図にしてみようとしました。
 まずネットワーク図を表示するプログラムとして、Cytoscapeを利用することにしました。これは統合TVでも紹介されているもので、タンパク質や遺伝子ネットワークを表示することができるのですが、ファイル形式を合わせてポスター番号をネットワーク表示させることにしました。
 CytoscapeはSIF形式のファイルを読込んでネットワークを作成してくれるので、私のプログラムから以下の形式で結果を出力するようにしました。

ポスター番号 pp ポスター番号 ポスター番号 …
ポスター番号 pp ポスター番号 ポスター番号 …

このようにすれば、一番左のポスター番号を中心にしたエッジが引かれることになります。エッジラベルを表すppは適当なものが無かったので暫定的にこのようにしておきました。
 さてポスター間の相関解析ですが、前回得た単語リストを利用して、同じ単語がよく使われるポスター同士にエッジを引くようにしました。
 まず単語ごとにそれを内容に含むポスターをまとめ、ポスター間ごとに同じ単語を一定数以上含むかどうか判定し、規定数以上含むようならエッジを引く、というようにしました。
 このプログラムから得られた結果を見てみて、あまりにエッジの数が多かったりしたので、次にポスター相関解析に用いる単語を制限してみることにしました。具体的にはある一定数以上のポスターで出現している単語については使用しないことにし、限られた数のポスターで出現する単語のみを解析対象にすることにしました。
 以上のような動作をするRubyモジュール"posterCorrelation.rb"を作成し、「ポスター相関を決める単語数」と「使用する単語の出現するポスター数」の二つのパラメータを調整しながら、結果を見てみました。以下に表示するCytoscapeの画像は、「単語数8個以上」、「ポスター数40個未満」の時のものです。

 ハブとなるポスターや、クラスタっぽいものが見えますが、接続されなかったポスターもありました。次回以降パラメータを調整したり手法をいじったりして様子を見てみようと思います。