PerlからCytoscapeを利用する

CytoscapeRPCと言うプラグインがありますが、これを利用することによりPerlスクリプトからCytoscapeを操作することができます。

簡単なはじめ方

独自ビルド版(依存関係も一緒にパックしてあります)をダウンロードしてpluginsフォルダにコピーする

cytoscapeRPC.jar

Cytoscapeを起動し、PluginメニューからCytoscapeRPC–>Activate Cytoscape RPCを選択する。ポート番号はそのままで構いません。

スクリプトを実行する前に、予めCPANからFrontier::RPC2をインストールしてください。

この状態で様々なメソッドをPerlから呼び出すことができます。サンプルコードはこちらにありますので、色々修正しながら試してみてください

https://wiki.nbic.nl/index.php/CytoscapeRPCPerlExample

Cytoscape + R + Rgraphviz


RとBioconductor内のグラフモデルをCytoscapeに取り込む場合:

  1. > edgeList <- edgeNames(グラフオブジェクト名)
  2. > write(edgeList, "krogan2006.txt", ncol=1)
  3. Cytoscapeでは、File–>Import–>Network from tableからインポート。その際、区切り文字は「~」に指定。

基本的にはこれだけです。上の図は、ppiDataパッケージ内のKrogan2006BPGraphデータをCytoscapeに取り込んだものです。

Cytoscape + R + igraph


Rはあらゆる統計や科学の世界で使われている便利な統計パッケージですが、そこにigraphと言うグラフ関連のライブラリがあります。この中には、複雑ネットワークなどの研究に便利な様々なデータモデルとオペレーションが用意されています。しかしながら、これらはあくまでコマンドラインとバッチ処理を念頭に作られたものなので、インタラクティブな処理には向いていません。そこで、グラフに対する一連のオペレーションや解析をR+igraphで行い、可視化にはCytoscapeを使うと便利です。以下は非常にシンプルな一例:

  1. igraphをロード:
    library("igraph")
  2. Barabasi-Albertモデルでネットワークを作成:
    graph2 <- barabasi.game(10000, power=1)
    (この例では10,000ノードのスケールフリーネットワーク)
  3. ネットワークをテキストデータとしてエクスポート:
    write.graph(graph2, "table2.txt", "edgelist")
  4. CytoscapeでFile–>Import–>Network from Tableよりインポート
  5. Cytoscape内の可視化機能を利用(上はその一例)

これらに加え、更にBioconductorなどのアノテーション機能なども取り入れると更に便利なのですが、それはまた別の機会に。

Excelを使って、辺の属性を含んだネットワークファイルを作成


Excelでネットワークファイルを作る場合、ネットワークに関する情報以外の列では、辺の属性(アトリビュート)を同時に取り込むことが出来ます。その辺りの解説をここに追加しました。STRINGなどのデータベースでは、このような形式のテキストデータでネットワークファイルを提供していますので、Excelで加工しやすいと思います。

KEGG Pathwayのインポート

kegg2.jpg
KEGGのパスウェイの一部は、BioPAXフォーマットで提供されています。実際のデータはここのFTPサーバーに保存してあるのですが、URLのコピー&ペーストではうまくロードできないというバグがあります。ですから現状では、一度ファイルをダウンロードしてからインポートしてください。
また、ディレクトリ名が略号になっていたり、ファイル名が数字のみなので非常にわかりにくいのですが、以下のページから実際のパスウェイ名、種の名前を確認できます。

BioGRID


biogrid_human.jpg
BioGRIDは各種モデル生物のデータベースからインタラクションデータを集めた統合型データベースです。可視化ツールとして、おもいっきりOspreyへのリンクがトップページにありますが、もちろんCytoscapeでも扱えます。IDや遺伝子名から検索し、局所的なインタラクションを取り出すこともできますし、一括ダウンロードも可能です。
上のスクリーンショットは、ヒト関連のインタラクションを一括入力、可視化したもの。数ギガのメモリがあればストレス無く扱える量です。非常にメモリが安くなってきているので、増設にはいい機会かもしれません:-)