2010年06月28日
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
2007年07月09日
Cytoscape + R + Rgraphviz
2007年07月08日
Cytoscape + R + igraph

Rはあらゆる統計や科学の世界で使われている便利な統計パッケージですが、そこにigraphと言うグラフ関連のライブラリがあります。この中には、複雑ネットワークなどの研究に便利な様々なデータモデルとオペレーションが用意されています。しかしながら、これらはあくまでコマンドラインとバッチ処理を念頭に作られたものなので、インタラクティブな処理には向いていません。そこで、グラフに対する一連のオペレーションや解析をR+igraphで行い、可視化にはCytoscapeを使うと便利です。以下は非常にシンプルな一例:
- igraphをロード:
library("igraph") Barabasi-Albertモデルでネットワークを作成:
graph2 <- barabasi.game(10000, power=1)
(この例では10,000ノードのスケールフリーネットワーク)- ネットワークをテキストデータとしてエクスポート:
write.graph(graph2, "table2.txt", "edgelist") - CytoscapeでFile-->Import-->Network from Tableよりインポート
- Cytoscape内の可視化機能を利用(上はその一例)
2007年06月27日
Excelを使って、辺の属性を含んだネットワークファイルを作成
Excelでのネットワークファイル作製
日本語ドキュメントサイトの方に、Excelでのネットワークファイルの作り方を書いておきました。基本的な事ですが、スクリプトを書きたくない人も多いと思いますので。
2007年06月24日
KEGG Pathwayのインポート

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


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

前回はアウトプットの一例としてCell Circuitsを紹介しましたが、今回はその逆で、入力に使うデータベースの一例としてSTRINGを紹介します。
このデータベースでは、タンパク質相互作用を網羅的に収集してあるだけではなく、それを洗練されたインターフェースからサーチすることも出来ます。また、Downloadのリンクから、ネットワーク、シーケンス、アノテーションなどのデータを一括ダウンロードすることも可能です。
(上のスクリーンショットは、STRING内の全ての酵母に関するインタラクションをCytoscape2.5で表示したもの。およそ5600タンパク質、40万のインタラクション)
2007年06月16日
Cell Circuits

Cytoscapeなどでネットワーク解析を行い、最終的にモジュールを発見したあとはもちろん論文にして発表するわけですが、今日の生物学では、そう言ったアウトプットをデータベース化し共有して行き、またそのデータから新たな発見が生まれる、と言うのが一般的です。
そんなアウトプットの一つの例としてCell Circuitsがあります。
読んで字の如く、生体内の機能的モジュールを回路に見立て、既知の「回路」をクエリに基づいて表示するウェブアプリケーションです。
サーチ結果のSIFリンクをクリックすれば、すぐにCytoscapeで読み込めますので、一度使ってみてください。
2007年01月17日
Cytoscape 2.4の新機能紹介: オントロジーの可視化

2.4では、オントロジーの内部での扱いを大幅に変更しました。生物学者にとって、もっとも馴染み深いオントロジーと言えばGene Ontology(GO)でしょうが、他にも様々な概念が、計算機で扱えるオントロジーとして表現されています。生物学に関係のあるオントロジーだけでも、これだけのものが公開されています:
これらは、OBOフォーマット等の形で公開されています。そもそもこういったファイルには何が記述されているのでしょうか?GOのCellular Component(細砲構成要素)のトップレベルにあるTermを図で表わすと、このようになります:

一番左側の矢印(エッジ)は、「protein complexはcellular componentである」という関係を表わします。上位の概念に行く程その表わす範囲は広くなり、下位の概念はより狭い範囲を表わします。簡単な例で言えば、「ヒト」と言う概念を定義するのに、以下のような関係を定義できます:「ヒトは霊長類である」、「霊長類は哺乳類である」、「哺乳類は脊椎動物である」。このように定義して行けば、「ヒト」と言う概念を「ヒトは脊椎動物である」と言うように定義し直すことも出来ます。こういった明確に定義された概念の関係の集合がオントロジーと呼ばれるものです。オントロジーを使うことにより、様々な現実世界の事象を、共通の定義(語彙)に基づいて記述することが可能になります。例えば、上記のcellular componentと言う概念は、このような感じで可視化することが可能です:


このような概念のグラフは、閉路(ある概念から、他の概念を辿り又自分自身へ戻るような経路)を持たず、有向(「XはYである」と言うように、概念の間に方向性が必ず存在する)であるため、計算機科学の用語ではDirected Acyclic Graph(DAG)と呼びます。
バージョン2.3以前にも、GOをインポートすることは出来ましたが、他のネットワークとは別の制限されたデータ構造を使っていたため、Cytoscapeの描画機能等を利用することは出来ませんでした。2.4からは、他のネットワークと同じように、特殊なケースのグラフとしてオントロジーも保存されます。最初のスクリーンショットにあるように、インポートされたオントロジーは「Ontology DAGs」という空のネットワークのもとに生成されます。
(つづく)
2006年12月15日
テキストマイニングによるネットワーク構築
生物学でのネットワークデータ(PPI、パスウェイなど)入手には、主に三つの方法があります。一つ目は、公開されているDIP、Reactomeなどのデータベースからダウンロードする方法です。もう一つは自らのラボからのデータを解析し、それをネットワークファイル化する方法、そして最後に、文献データを解析して、そこからネットワークデータを抽出するものです。
Cytoscapeには、Agilent社から無償で公開されているAgilent Literature Searchというプラグインがあります。これは、PubMedなどの複数の文献データベースに対してメタサーチをかけ、その文献から得られた情報を元にCytoscapeで利用できるネットワークデータを構築するソフトウェアです。ネットワークファイルとして公共データベースに公開されているもの以外にも、文献として公開されているPPIなどの情報もたくさんありますので、そう言った中からネットワークをマイニングする場合には非常に強力なツールとなります。
Cytoscapeには、Agilent社から無償で公開されているAgilent Literature Searchというプラグインがあります。これは、PubMedなどの複数の文献データベースに対してメタサーチをかけ、その文献から得られた情報を元にCytoscapeで利用できるネットワークデータを構築するソフトウェアです。ネットワークファイルとして公共データベースに公開されているもの以外にも、文献として公開されているPPIなどの情報もたくさんありますので、そう言った中からネットワークをマイニングする場合には非常に強力なツールとなります。
Pajekユーザーの方に (その2)
Pajekのネットワークファイル(.net)は、番号を振ったノードに関する情報を前半に、その番号に基づくネットワーク構造(エッジの情報)を後半に、と言う形で保存してあります。前回のエントリーに書きましたように、ネットワーク情報をCytoscapeにロードするのは、後半部分のコピペだけでOKです。では、ノードに関するその他の情報はどうすればいいのか?と言う部分を今回は書いてみます。
ノードに付随する情報は、Cytoscapeではアトリビュートと呼ばれます。アトリビュートの中身は基本的に何でも良く、ノードの形、名前など、必要な情報はすべてアトリビュートとして取り込みます。例を挙げますと、もしソシオグラムを表現するならば、ノードは人間に当たりますので、性別、名前、年齢などがアトリビュートとして考えられます。これがタンパク質相互ネットワークなら、各ノードはタンパク質になるので、各種データベースにおけるそのタンパク質のシンボル、GOのアノテーション、マイクロアレイのデータなどがアトリビュートになります。
Pajekの公式サイトにあるこのサンプルデータの中の1.netというファイルを例に考えてみます。後半のネットワーク構造は、前回のエントリーのようにして取り込み、各ノードの情報は、前半部から最初の列を、アトリビュートをネットワークにマッピングするためのキーとして、残りのものから任意の列を選び、アトリビュートとして取り込みます。.netファイルでは、キーは常に最初に出てくる整数になります。具体的には、一列目をキーとして、あとは前回と同じGUIから、必要な列だけをチェックしてインポートします。

上が取り込んだネットワークとアトリビュートを元に描画したグラフです。レイアウトは、yFilesのOrganicレイアウトアルゴリズムを使用しました。厳密にアトリビュートをPajek内で使われた場合と対応させる事も出来ますが、形の情報を色に変換したりであるとか、名前を元にランダムな彩色をするとか、グラフィックスとアトリビュートの対応は自由です。これらは全てGUIからインタラクティブに操作する事も出来ますし、プラグインでアトリビュートを処理して、それをグラフィックスに反映させる事も出来ます。
ノードに付随する情報は、Cytoscapeではアトリビュートと呼ばれます。アトリビュートの中身は基本的に何でも良く、ノードの形、名前など、必要な情報はすべてアトリビュートとして取り込みます。例を挙げますと、もしソシオグラムを表現するならば、ノードは人間に当たりますので、性別、名前、年齢などがアトリビュートとして考えられます。これがタンパク質相互ネットワークなら、各ノードはタンパク質になるので、各種データベースにおけるそのタンパク質のシンボル、GOのアノテーション、マイクロアレイのデータなどがアトリビュートになります。
Pajekの公式サイトにあるこのサンプルデータの中の1.netというファイルを例に考えてみます。後半のネットワーク構造は、前回のエントリーのようにして取り込み、各ノードの情報は、前半部から最初の列を、アトリビュートをネットワークにマッピングするためのキーとして、残りのものから任意の列を選び、アトリビュートとして取り込みます。.netファイルでは、キーは常に最初に出てくる整数になります。具体的には、一列目をキーとして、あとは前回と同じGUIから、必要な列だけをチェックしてインポートします。

上が取り込んだネットワークとアトリビュートを元に描画したグラフです。レイアウトは、yFilesのOrganicレイアウトアルゴリズムを使用しました。厳密にアトリビュートをPajek内で使われた場合と対応させる事も出来ますが、形の情報を色に変換したりであるとか、名前を元にランダムな彩色をするとか、グラフィックスとアトリビュートの対応は自由です。これらは全てGUIからインタラクティブに操作する事も出来ますし、プラグインでアトリビュートを処理して、それをグラフィックスに反映させる事も出来ます。
2006年12月13日
Pajekユーザーの方へ
PajekというWindows用のネットワーク可視化ソフトがあります。社会学の方々にもよく使われているもので、非常に良く出来たソフトウェアなのですが、MacやUNIXでも同じような事をしたいと言う需要も有ると思います。そこで、とりあえず出回っているPajekの.net形式のファイルCytoscapeで描画するにはどうすれば良いのか、と言う事を紹介します。
例えば、Pajekのサイトで公開されているサンプルファイルをCytoscapeで読み込むには、まず"*Edges"以下のデータをスプレッドシートなどにコピーします。

これをそのままテキストファイルや、普通のExcel形式のファイル(.xsl)としてセーブします。あとはこれを、2.4からの新機能であるTable Importを使ってロードするだけです

一列目をソースノード、二行目をターゲットノードとしてインポートすると、基本的なネットワークが出来上がります。あとはCytoscapeの強力なレイアウトアルゴリズムや、VizMapperを使って好きなように加工できます。

Rであるとか、その他の解析ソフトのアウトプットを適当なテキストファイルにしてこのように描画する事も出来ますし、大規模な解析には、その用途に特化したプラグインを書く事により自動的にこのような描画を行う事も出来ます。
とりあえずテキストやExcelでデータを作れば、基本的に何でもインポートできますので、色々試してみてください。
例えば、Pajekのサイトで公開されているサンプルファイルをCytoscapeで読み込むには、まず"*Edges"以下のデータをスプレッドシートなどにコピーします。

これをそのままテキストファイルや、普通のExcel形式のファイル(.xsl)としてセーブします。あとはこれを、2.4からの新機能であるTable Importを使ってロードするだけです

一列目をソースノード、二行目をターゲットノードとしてインポートすると、基本的なネットワークが出来上がります。あとはCytoscapeの強力なレイアウトアルゴリズムや、VizMapperを使って好きなように加工できます。



Rであるとか、その他の解析ソフトのアウトプットを適当なテキストファイルにしてこのように描画する事も出来ますし、大規模な解析には、その用途に特化したプラグインを書く事により自動的にこのような描画を行う事も出来ます。
とりあえずテキストやExcelでデータを作れば、基本的に何でもインポートできますので、色々試してみてください。
2006年07月20日
とりあえず使ってみましょう
とりあえずCytoscapeがどんなものかを知るために、サンプルファイルを見てみましょう。
メニューのFile-->Openを選択すると、セッションファイルを選択する画面になります。セッションファイルとは、Cytoscape2.3から導入されたファイル形式で、基本的にはZipファイルです。その中に、ネットワーク、アトリビュート、各種設定などのファイルがまとめて入っています。Cytoscapeをインストールしたディレクトリに、sampleDataというディレクトリが出来ていますので、その中にあるgalFiltered.cysを選択して開いてください。以下のような画面が表示されるはずです。
左ボタンドラッグで、ノード、エッジを選択すると、それらはアトリビュート・ブラウザに表示されます。そこでブラウザ内の矢印のアイコンをクリックすると、現在どのようなアトリビュート(属性)がメモリ内に読み込まれているのかが分かります。左クリックで属性を選択すると、ブラウザにそれらの値が表示されます。

サンプルでは、マイクロアレイデータ、GO Term、種などの属性がネットワークに統合されています。これらの属性を元にノードの色や形を決定し、ネットワークの特性を視覚的に確認する事も可能です。この属性を元に、ネットワークのグラフィックスを操作する機能をVizmapperと呼びます。次のセクションでは、Vizmapperの基本操作を見てみます。
メニューのFile-->Openを選択すると、セッションファイルを選択する画面になります。セッションファイルとは、Cytoscape2.3から導入されたファイル形式で、基本的にはZipファイルです。その中に、ネットワーク、アトリビュート、各種設定などのファイルがまとめて入っています。Cytoscapeをインストールしたディレクトリに、sampleDataというディレクトリが出来ていますので、その中にあるgalFiltered.cysを選択して開いてください。以下のような画面が表示されるはずです。
左ボタンドラッグで、ノード、エッジを選択すると、それらはアトリビュート・ブラウザに表示されます。そこでブラウザ内の矢印のアイコンをクリックすると、現在どのようなアトリビュート(属性)がメモリ内に読み込まれているのかが分かります。左クリックで属性を選択すると、ブラウザにそれらの値が表示されます。

サンプルでは、マイクロアレイデータ、GO Term、種などの属性がネットワークに統合されています。これらの属性を元にノードの色や形を決定し、ネットワークの特性を視覚的に確認する事も可能です。この属性を元に、ネットワークのグラフィックスを操作する機能をVizmapperと呼びます。次のセクションでは、Vizmapperの基本操作を見てみます。
2006年06月24日
Cytoscapeとは何か?
そもそもCytoscapeとは何か?という所から始めてみたいと思います。このソフトを一言で表すと、グラフの可視化と解析のためのプラットフォームという事になります。ここで言うグラフとは、折れ線グラフとかそういうものではなく、計算機科学で用いられる用語で、ノードと呼ばれる頂点の集合とエッジと呼ばれるノードを結合する辺の集合で、要するに下の図のようなものです。
生物学において、PPI(Protein-Protein Interaction)などはまさにこのグラフであり、これらを視覚的に理解しようとする場合、Cytoscapeの力を借りる事により作業効率をあげる事が出来ます。また、元々は生物学者のために書かれたソフトですが、グラフを可視化するという目的ならば何にでも使えます。例えば、ウェブページの相互の繋がりを視覚化したり、ソーシャルネットワーキングサイトの人々の繋がりを視覚化したりすることも可能です。
そして、Cytoscapeのもうひとつの重要な機能が、ネットワークとそれに付随する情報の統合です。各ノード、エッジ、そしてネットワーク(=グラフ)には、それぞれアトリビュートと呼ばれる情報を付加する事が出来ます。PPIネットワークの場合、ノードはタンパク質に相当するわけですから、GO Term、マイクロアレイデータなどをノードに付加して、その情報に基づく解析が可能になります。マイクロアレイの発現データに基づくフィルタリング、GO Termによるノードの色分けなどの機能を用いて、生物学的ネットワークに対するデータマイニングを行う事が可能です。特に2.3からは巨大なネットワークもインタラクティブに操作できるようになりましたので、この機能は非常に強力なツールになります。
さらに、こういった解析・視覚化の機能は、プラグインと呼ばれる拡張ソフトを使う事により追加してゆく事が可能です。JAVAでプログラミングが出来る方でしたら、Cytoscapeの描画機能などを使った独自のマイニングアルゴリズムを追加したりする事が出来ます。世界中の様々な研究機関の人々が書いたプラグイン がすでに多数存在します。
こうして視覚化されたネットワークは、PNG・PDF・JPEGといった形式でエクスポートする事も可能で、Illustrator、GIMPなどの画像処理ソフトウェアで加工して論文などに使う事も出来ます。
CytoscapeはLGPLに基づくオープンソースソフトウェアでどなたでもお使いいただけます。皆様からのフィードバックにより更なる改良を加えてゆきますので、感想などをお聞かせいただければ幸いです。
とりあえず今回はここまで。次回からはもう少し具体的な例を使って説明したいと思います。
参考:
生物学において、PPI(Protein-Protein Interaction)などはまさにこのグラフであり、これらを視覚的に理解しようとする場合、Cytoscapeの力を借りる事により作業効率をあげる事が出来ます。また、元々は生物学者のために書かれたソフトですが、グラフを可視化するという目的ならば何にでも使えます。例えば、ウェブページの相互の繋がりを視覚化したり、ソーシャルネットワーキングサイトの人々の繋がりを視覚化したりすることも可能です。
そして、Cytoscapeのもうひとつの重要な機能が、ネットワークとそれに付随する情報の統合です。各ノード、エッジ、そしてネットワーク(=グラフ)には、それぞれアトリビュートと呼ばれる情報を付加する事が出来ます。PPIネットワークの場合、ノードはタンパク質に相当するわけですから、GO Term、マイクロアレイデータなどをノードに付加して、その情報に基づく解析が可能になります。マイクロアレイの発現データに基づくフィルタリング、GO Termによるノードの色分けなどの機能を用いて、生物学的ネットワークに対するデータマイニングを行う事が可能です。特に2.3からは巨大なネットワークもインタラクティブに操作できるようになりましたので、この機能は非常に強力なツールになります。
さらに、こういった解析・視覚化の機能は、プラグインと呼ばれる拡張ソフトを使う事により追加してゆく事が可能です。JAVAでプログラミングが出来る方でしたら、Cytoscapeの描画機能などを使った独自のマイニングアルゴリズムを追加したりする事が出来ます。世界中の様々な研究機関の人々が書いたプラグイン がすでに多数存在します。
こうして視覚化されたネットワークは、PNG・PDF・JPEGといった形式でエクスポートする事も可能で、Illustrator、GIMPなどの画像処理ソフトウェアで加工して論文などに使う事も出来ます。
CytoscapeはLGPLに基づくオープンソースソフトウェアでどなたでもお使いいただけます。皆様からのフィードバックにより更なる改良を加えてゆきますので、感想などをお聞かせいただければ幸いです。
とりあえず今回はここまで。次回からはもう少し具体的な例を使って説明したいと思います。
参考:
- Cytoscape: A Software Environment for Integrated Models of Biomolecular Interaction Networks
- Cytoscapeの基本的なコンセプトを解説した論文です。(若干内容が古くなっています)