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


posted by 大野圭一朗 at 14:09| サンディエゴ ☁| Comment(1) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

2007年07月09日

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に取り込んだものです。
posted by 大野圭一朗 at 17:34| サンディエゴ ☁| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

2007年07月08日

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などのアノテーション機能なども取り入れると更に便利なのですが、それはまた別の機会に。
posted by 大野圭一朗 at 22:30| サンディエゴ ☁| Comment(2) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

2007年06月27日

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



Excelでネットワークファイルを作る場合、ネットワークに関する情報以外の列では、辺の属性(アトリビュート)を同時に取り込むことが出来ます。その辺りの解説をここに追加しました。STRINGなどのデータベースでは、このような形式のテキストデータでネットワークファイルを提供していますので、Excelで加工しやすいと思います。
posted by 大野圭一朗 at 14:07| サンディエゴ ☀| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

Excelでのネットワークファイル作製

日本語ドキュメントサイトの方に、Excelでのネットワークファイルの作り方を書いておきました。基本的な事ですが、スクリプトを書きたくない人も多いと思いますので。
posted by 大野圭一朗 at 01:45| サンディエゴ ☁| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

2007年06月24日

KEGG Pathwayのインポート

kegg2.jpg

KEGGのパスウェイの一部は、BioPAXフォーマットで提供されています。実際のデータはここのFTPサーバーに保存してあるのですが、URLのコピー&ペーストではうまくロードできないというバグがあります。ですから現状では、一度ファイルをダウンロードしてからインポートしてください。

また、ディレクトリ名が略号になっていたり、ファイル名が数字のみなので非常にわかりにくいのですが、以下のページから実際のパスウェイ名、種の名前を確認できます。

posted by 大野圭一朗 at 18:13| サンディエゴ ☁| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

2007年06月19日

BioGRID



biogrid_human.jpg

BioGRIDは各種モデル生物のデータベースからインタラクションデータを集めた統合型データベースです。可視化ツールとして、おもいっきりOspreyへのリンクがトップページにありますが、もちろんCytoscapeでも扱えます。IDや遺伝子名から検索し、局所的なインタラクションを取り出すこともできますし、一括ダウンロードも可能です。

上のスクリーンショットは、ヒト関連のインタラクションを一括入力、可視化したもの。数ギガのメモリがあればストレス無く扱える量です。非常にメモリが安くなってきているので、増設にはいい機会かもしれません:-)
posted by 大野圭一朗 at 13:35| サンディエゴ ☀| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

2007年06月17日

STRINGデータベース

string_yeast.jpg

前回はアウトプットの一例としてCell Circuitsを紹介しましたが、今回はその逆で、入力に使うデータベースの一例としてSTRINGを紹介します。

このデータベースでは、タンパク質相互作用を網羅的に収集してあるだけではなく、それを洗練されたインターフェースからサーチすることも出来ます。また、Downloadのリンクから、ネットワーク、シーケンス、アノテーションなどのデータを一括ダウンロードすることも可能です。

(上のスクリーンショットは、STRING内の全ての酵母に関するインタラクションをCytoscape2.5で表示したもの。およそ5600タンパク質、40万のインタラクション)
posted by 大野圭一朗 at 21:00| サンディエゴ ☁| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

2007年06月16日

Cell Circuits



Cytoscapeなどでネットワーク解析を行い、最終的にモジュールを発見したあとはもちろん論文にして発表するわけですが、今日の生物学では、そう言ったアウトプットをデータベース化し共有して行き、またそのデータから新たな発見が生まれる、と言うのが一般的です。

そんなアウトプットの一つの例としてCell Circuitsがあります。
読んで字の如く、生体内の機能的モジュールを回路に見立て、既知の「回路」をクエリに基づいて表示するウェブアプリケーションです。

サーチ結果のSIFリンクをクリックすれば、すぐにCytoscapeで読み込めますので、一度使ってみてください。
posted by 大野圭一朗 at 20:33| サンディエゴ ☁| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

2007年01月17日

Cytoscape 2.4の新機能紹介: オントロジーの可視化

ontology_networkpanel.png


2.4では、オントロジーの内部での扱いを大幅に変更しました。生物学者にとって、もっとも馴染み深いオントロジーと言えばGene Ontology(GO)でしょうが、他にも様々な概念が、計算機で扱えるオントロジーとして表現されています。生物学に関係のあるオントロジーだけでも、これだけのものが公開されています:


これらは、OBOフォーマット等の形で公開されています。そもそもこういったファイルには何が記述されているのでしょうか?GOのCellular Component(細砲構成要素)のトップレベルにあるTermを図で表わすと、このようになります:

ontology_cctop.png

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

ontology_cctop1.png ontology_cctop2.png

このような概念のグラフは、閉路(ある概念から、他の概念を辿り又自分自身へ戻るような経路)を持たず、有向(「XはYである」と言うように、概念の間に方向性が必ず存在する)であるため、計算機科学の用語ではDirected Acyclic Graph(DAG)と呼びます。

バージョン2.3以前にも、GOをインポートすることは出来ましたが、他のネットワークとは別の制限されたデータ構造を使っていたため、Cytoscapeの描画機能等を利用することは出来ませんでした。2.4からは、他のネットワークと同じように、特殊なケースのグラフとしてオントロジーも保存されます。最初のスクリーンショットにあるように、インポートされたオントロジーは「Ontology DAGs」という空のネットワークのもとに生成されます。

(つづく)
posted by 大野圭一朗 at 11:57| サンディエゴ ☀| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

2006年12月15日

テキストマイニングによるネットワーク構築

生物学でのネットワークデータ(PPI、パスウェイなど)入手には、主に三つの方法があります。一つ目は、公開されているDIPReactomeなどのデータベースからダウンロードする方法です。もう一つは自らのラボからのデータを解析し、それをネットワークファイル化する方法、そして最後に、文献データを解析して、そこからネットワークデータを抽出するものです。

Cytoscapeには、Agilent社から無償で公開されているAgilent Literature Searchというプラグインがあります。これは、PubMedなどの複数の文献データベースに対してメタサーチをかけ、その文献から得られた情報を元にCytoscapeで利用できるネットワークデータを構築するソフトウェアです。ネットワークファイルとして公共データベースに公開されているもの以外にも、文献として公開されているPPIなどの情報もたくさんありますので、そう言った中からネットワークをマイニングする場合には非常に強力なツールとなります。

posted by 大野圭一朗 at 15:49| サンディエゴ ☀| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

Pajekユーザーの方に (その2)

Pajekのネットワークファイル(.net)は、番号を振ったノードに関する情報を前半に、その番号に基づくネットワーク構造(エッジの情報)を後半に、と言う形で保存してあります。前回のエントリーに書きましたように、ネットワーク情報をCytoscapeにロードするのは、後半部分のコピペだけでOKです。では、ノードに関するその他の情報はどうすればいいのか?と言う部分を今回は書いてみます。

ノードに付随する情報は、Cytoscapeではアトリビュートと呼ばれます。アトリビュートの中身は基本的に何でも良く、ノードの形、名前など、必要な情報はすべてアトリビュートとして取り込みます。例を挙げますと、もしソシオグラムを表現するならば、ノードは人間に当たりますので、性別、名前、年齢などがアトリビュートとして考えられます。これがタンパク質相互ネットワークなら、各ノードはタンパク質になるので、各種データベースにおけるそのタンパク質のシンボル、GOのアノテーション、マイクロアレイのデータなどがアトリビュートになります。

Pajekの公式サイトにあるこのサンプルデータの中の1.netというファイルを例に考えてみます。後半のネットワーク構造は、前回のエントリーのようにして取り込み、各ノードの情報は、前半部から最初の列を、アトリビュートをネットワークにマッピングするためのキーとして、残りのものから任意の列を選び、アトリビュートとして取り込みます。.netファイルでは、キーは常に最初に出てくる整数になります。具体的には、一列目をキーとして、あとは前回と同じGUIから、必要な列だけをチェックしてインポートします。

net1.png

上が取り込んだネットワークとアトリビュートを元に描画したグラフです。レイアウトは、yFilesのOrganicレイアウトアルゴリズムを使用しました。厳密にアトリビュートをPajek内で使われた場合と対応させる事も出来ますが、形の情報を色に変換したりであるとか、名前を元にランダムな彩色をするとか、グラフィックスとアトリビュートの対応は自由です。これらは全てGUIからインタラクティブに操作する事も出来ますし、プラグインでアトリビュートを処理して、それをグラフィックスに反映させる事も出来ます。
posted by 大野圭一朗 at 14:59| サンディエゴ ☀| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

2006年12月13日

Pajekユーザーの方へ

PajekというWindows用のネットワーク可視化ソフトがあります。社会学の方々にもよく使われているもので、非常に良く出来たソフトウェアなのですが、MacやUNIXでも同じような事をしたいと言う需要も有ると思います。そこで、とりあえず出回っているPajekの.net形式のファイルCytoscapeで描画するにはどうすれば良いのか、と言う事を紹介します。

例えば、Pajekのサイトで公開されているサンプルファイルをCytoscapeで読み込むには、まず"*Edges"以下のデータをスプレッドシートなどにコピーします。

table1.png

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

tableimport1.png

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

Rであるとか、その他の解析ソフトのアウトプットを適当なテキストファイルにしてこのように描画する事も出来ますし、大規模な解析には、その用途に特化したプラグインを書く事により自動的にこのような描画を行う事も出来ます。

とりあえずテキストやExcelでデータを作れば、基本的に何でもインポートできますので、色々試してみてください。

posted by 大野圭一朗 at 17:09| サンディエゴ ☀| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする

2006年07月20日

とりあえず使ってみましょう

とりあえずCytoscapeがどんなものかを知るために、サンプルファイルを見てみましょう。
メニューのFile-->Openを選択すると、セッションファイルを選択する画面になります。セッションファイルとは、Cytoscape2.3から導入されたファイル形式で、基本的にはZipファイルです。その中に、ネットワーク、アトリビュート、各種設定などのファイルがまとめて入っています。Cytoscapeをインストールしたディレクトリに、sampleDataというディレクトリが出来ていますので、その中にあるgalFiltered.cysを選択して開いてください。以下のような画面が表示されるはずです。

session1.png

中央でネットワークを表示している部分をネットワーク・ビュー、右下に表示されているテーブルをアトリビュート・ブラウザと呼びます。ネットワーク・ビューで、右ボタンを押しながらマウスを前後に動かすとズーム、中央ボタンを押しながらドラッグする事でネットワークの表示範囲を移動する事が出来ます。現在ネットワークのどの部分を表示しているかは、左下のウィンドウで確認できます。
左ボタンドラッグで、ノード、エッジを選択すると、それらはアトリビュート・ブラウザに表示されます。そこでブラウザ内の矢印のアイコンをクリックすると、現在どのようなアトリビュート(属性)がメモリ内に読み込まれているのかが分かります。左クリックで属性を選択すると、ブラウザにそれらの値が表示されます。
session2.png

 
サンプルでは、マイクロアレイデータ、GO Term、種などの属性がネットワークに統合されています。これらの属性を元にノードの色や形を決定し、ネットワークの特性を視覚的に確認する事も可能です。この属性を元に、ネットワークのグラフィックスを操作する機能をVizmapperと呼びます。次のセクションでは、Vizmapperの基本操作を見てみます。
posted by 大野圭一朗 at 15:19| サンディエゴ ☁| Comment(8) | TrackBack(1) | チュートリアル | このブログの読者になる | 更新情報をチェックする

2006年06月24日

Cytoscapeとは何か?

そもそもCytoscapeとは何か?という所から始めてみたいと思います。このソフトを一言で表すと、グラフの可視化と解析のためのプラットフォームという事になります。ここで言うグラフとは、折れ線グラフとかそういうものではなく、計算機科学で用いられる用語で、ノードと呼ばれる頂点の集合とエッジと呼ばれるノードを結合するの集合で、要するに下の図のようなものです。

samplegraph

生物学において、PPI(Protein-Protein Interaction)などはまさにこのグラフであり、これらを視覚的に理解しようとする場合、Cytoscapeの力を借りる事により作業効率をあげる事が出来ます。また、元々は生物学者のために書かれたソフトですが、グラフを可視化するという目的ならば何にでも使えます。例えば、ウェブページの相互の繋がりを視覚化したり、ソーシャルネットワーキングサイトの人々の繋がりを視覚化したりすることも可能です。

そして、Cytoscapeのもうひとつの重要な機能が、ネットワークとそれに付随する情報の統合です。各ノード、エッジ、そしてネットワーク(=グラフ)には、それぞれアトリビュートと呼ばれる情報を付加する事が出来ます。PPIネットワークの場合、ノードはタンパク質に相当するわけですから、GO Term、マイクロアレイデータなどをノードに付加して、その情報に基づく解析が可能になります。マイクロアレイの発現データに基づくフィルタリング、GO Termによるノードの色分けなどの機能を用いて、生物学的ネットワークに対するデータマイニングを行う事が可能です。特に2.3からは巨大なネットワークもインタラクティブに操作できるようになりましたので、この機能は非常に強力なツールになります。

さらに、こういった解析・視覚化の機能は、プラグインと呼ばれる拡張ソフトを使う事により追加してゆく事が可能です。JAVAでプログラミングが出来る方でしたら、Cytoscapeの描画機能などを使った独自のマイニングアルゴリズムを追加したりする事が出来ます。世界中の様々な研究機関の人々が書いたプラグイン がすでに多数存在します。

こうして視覚化されたネットワークは、PNG・PDF・JPEGといった形式でエクスポートする事も可能で、Illustrator、GIMPなどの画像処理ソフトウェアで加工して論文などに使う事も出来ます。

CytoscapeはLGPLに基づくオープンソースソフトウェアでどなたでもお使いいただけます。皆様からのフィードバックにより更なる改良を加えてゆきますので、感想などをお聞かせいただければ幸いです。

とりあえず今回はここまで。次回からはもう少し具体的な例を使って説明したいと思います。


参考:

posted by 大野圭一朗 at 17:42| サンディエゴ 🌁| Comment(1) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。