cytoscape seminar
DESCRIPTION
講演の模様はgoogle videoにてご覧になれます。http://video.google.com/videoplay?docid=3879022490303771573 2008年9月8日に奈良先端科学技術大学院大学GCOEセミナーにて行われた大野圭一朗氏のセミナー講演のスライドです。TRANSCRIPT
Cytoscape生物学的ネットワーク解析と可視化のためのオープンソースプラットフォーム
UC, San Diego Bioengineering Dept. Trey Ideker LabResearch Associate 大野 圭一朗
C
自己紹介• 大野 圭一朗• UC, San DiegoBioengineeringTrey Ideker Lab
• Research Associate
‣ とは言っても、基本的にはソフトウェア開発者
• Cytoscapeコアディベロッパー
概要•Cytoscapeとは?•基本的な機能の紹介•プラグインによる拡張•次期バージョンへのロードマップ
Cytoscapeとは?
ネットワークデータ解析と可視化のためのオープンソースプラットフォーム
•データ統合•可視化•解析
開発の動機
•ゲノムビューアなど、シーケンスやタンパク質の構造等の可視化技術は既に充実している
•しかし、タンパク質間相互作用、パスウェイ等を扱うソフトウェアには未だ定番がない
➡オープンな環境で皆が使えるソフトウェアを開発しよう
簡単な歴史 1• Institute for Systems BiologyのPaul Shannon博士が中心となり最初のバージョンがリリース
簡単な歴史 2
•その後UCSD等の研究機関が開発に参加•現在は非営利団体のCytoscapeコンソーシアムがコア部分を開発。
•多数の研究機関がその機能を使って独自のプラグイン(後述)を開発中
Cytoscape Consortium
研究開発資金の流れ
コンソーシアムのメンバー資格
•最低一人のフルタイム開発者を雇用•もしくはそれに匹敵する費用を負担➡日本からの参加もお待ちしています
(研究資金の配分の仕組みの違いから難しいかもしれませんが・・・)
基本的な機能
1. データ統合
データ統合
•ネットワークと各種アノテーション、実験データ等を統合
•公共データベースのウェブサービスクライアントとして機能
•標準的なファイルフォーマットをサポート
データ構造
•ネットワーク(グラフ)•頂点(ノード)•辺(エッジ)•属性値(アトリビュート)
属性値とネットワーク
データ統合
→ネットワークと属性値の結合
データ統合の重要性 (1)
•生物学的ネットワークのデータベースが徐々に充実
• STRING• HPRD• IntAct• BioGRID
データ統合の重要性 (2)
• ネットワークのみの情報では解析に限界がある
• 機能情報等との統合の必要性• 遺伝子の機能アノテーション• 三次元構造へのリンク• 既知のパスウェイへのマッピング
データ統合の重要性 (3)
•しかし、その公共データベースの情報を、ユーザー自身がその都度加工して統合するのは面倒
➡標準ファイルフォーマットのサポート
➡Webサービスの活用
Cytoscapeで扱う生物学的なデータ
•ネットワーク• Protein-Protein Interactions
• Protein-DNA Interactions
• Pathway
• 属性• 機能アノテーション
• 発現データ
• 元データのページへのリンク
• エッジの重み
サポートされているフォーマット
• SIF• GML• XGMML• GPML (GenMAPP
Pathway XML)
• BioPAX
• SBML• PSI-MI1.0/2.5• Excelスプレッドシート
•テキスト形式(タブ区切り等)
BioPAXに対する自動的なVisual Styleの適用
サポートされているWebサービス
•BioMart• NCBI Entrez Gene• PathwayCommons• IntAct• KEGG (WikiPathwaysを通じて)
• Reactome• PICR
サポートを予定しているWebサービス
• インタラクション系➡STRING
➡DAS (Interaction)
• マイクロアレイ➡ArrayExpress
➡GEO
• その他➡EBIの各種Webサービス
➡Bio2RDF
Web Service Client Manager
• Webサービスクライアントをまとめて管理
• 一つのウインドウから様々なサービスへアクセス可能
Advanced Network Merge
データ統合機能のまとめ
•ローカル/リモートの区別が無いデータのインポート
•多様な標準的データフォーマットのサポート
•公共Webサービスのクライアント•ユーザーの手間の最小化
2. 可視化
可視化•ノードを見やすく配置• ネットワークデータを属性値に基づいて可視化
• 各種画像データとしてそれを出力
• PDF/JPG/PNG/PS/SVG
レイアウト
•直感的に理解しやすい形へネットワークのノードを自動配置
•手動による微調整もサポート
初期状態
Organic
Circular
Tree
VizMapper
•属性値を視覚効果へマッピングする機能➡ノードの色、形、大きさ等
Visual Style無し
Visual Style適用後
よくある可視化の例
アレイの発現データをノードの色へ
大規模なネットワークにモジュールを表示
3. 解析
解析•各種統計値の取得• 属性値によるフィルタリング• 最短経路の表示• トポロジ/属性値による機能モジュールの発見
解析機能
•コア部分には最低限の解析機能のみを含む•フィルタリング•検索•解析はプラグインにて行う
プラグインによる拡張
プラグインとは?
•コア部分の機能を使い、ユーザーが独自の機能を作成
• Javaにより実装• 次期バージョンではスクリプト言語もサポート
プラグインの種類•世界各地の大学や研究機関が開発•公開されているものだけで数十種類•様々な用途向けにカスタマイズ• ネットワーク/属性値インポート
• 解析
• 可視化機能の拡張
プラグインの公開•基本的に誰でも公式サイトで公開可能• 公開されれば、ユーザーはプラグインマネージャから簡単にインストールできる
•公式サイトのプラグインページから投稿
2.6向けプラグインの紹介
データインポート
BioMart Client
PathwayCommons Client
解析
BiNGO
jActiveModules
MCODE
可視化機能の拡張
StructureViz
Cerebral (Cell Region-Based Rendering And Layout)
CyOog
Bubble Router
その他
RDFScape
RubyScriptingEngine
Gaggle
ここまでのまとめ
•プラグインの組み合わせでかなりのデータ統合や可視化が可能
•プログラミングの出来る人は、複雑ネットワーク可視化のツールボックスとして利用できる
現在の最新バージョン: 2.6.1
現在の機能のデモ
C 3
現在の問題点•未整理なレガシーコード- ViewとModelがきれいに分離していない
- 理解し辛いAPI• プラグインの衝突• Javaであるが故のプラグイン作成の敷居の高さ
Cytoscape 3•OSGiベース•データモデルの変更•大規模なリファクタリング• Spring Frameworkの採用•動的言語のサポート•サーバーサイドでの活用
Cytoscape 3
•来年初頭ベータリリース予定•暫くは2.6.xと3.0が共存
モジュール化
モジュール化によるメリット•再利用可能性のアップ•標準的なテクノロジの利用による疎結合の実現
➡他のプロジェクトとの連携
➡Taverna
➡BioJava
➡デスクトップ以外への展開
モジュール化に用いられるテクノロジ
•OSGi• Spring Framework• Spring Dynamic Modules• インターフェイス指向の設計
OSGiとは?
•動的なモジュールのロード•ライブラリやプラグインの衝突の回避• Eclipseでの実績• Java 7でのサポート
Cytoscape 2.x
Hardware
Operating System
Java Virtual Machine
Cytoscape Application
Plugin 1 Plugin 2 Plugin 3
Cytoscape 2.x
User Interface
Data Model(Networks & Attributes)
Views and Other Components
C3 ArchitectureModel
Command
Presentation
I/O
View Model
Application
OSGi
デスクトップ以外への展開 (1)
• 現状では、Cytoscapeは一デスクトップアプリケーション
• モジュール化により部品単位での利用が可能
デスクトップ以外への展開 (2)
• サーバーサイドでの利用• データモデルと画像出力部分を利用し、オンザフライでネットワーク図をブラウザに返す
• コマンドラインアプリ• バッチ処理 - 数百のネットワークと属性ファイルを読み込み、一連の解析を行い、結果をXHTMLファイルとして出力
動的言語のサポート
2.6でのサポート
•実験的• RubyとJavaScript
Cytoscape 3でのサポート
•コア部分でのスクリプト言語サポート• Ruby, JavaScript, Groovy, Python•スクリプト言語によるプラグイン実装
JVM Scripting Languages
• JRuby (Ruby)
• Jython (Python)
• Rhino (JavaScript)
• BeanShell
• Groovy
• and a lot more languages
一般的なスクリプト言語
Hardware
Operating System
Scripting Language Interpreter (Written in C/C++)
Scripts
JVM上でのスクリプト言語
Hardware
Operating System
Scripting Language Interpreter (Written in Java)
Scripts
Java Virtual Machine
OSGi + Spring Framework + Scripting Engines
User Scripts
現在利用可能な言語
解析手法やワークフローを実装する
プラットフォームとして
•モジュール化によるメンテナンス性の向上•プラグイン開発者が理解しやすいすっきりしたAPI
更なる情報
具体的な利用法解説•Nature Protocolsにチュートリアル的なペーパーを昨年発表
日本語サイト
http://cytoscape.seesaa.net/
http://cydoc.sourceforge.jp/
Thank You!