ipa未踏ソフトウェア ruby言語による生物化学 情報基盤ライブラ...

76
2005年度上期IPA未踏ソフトウェア キックオフセミナー Ruby言語による生物化学 情報基盤ライブラリの開発 ::: BioRuby + ChemRuby ::: 片山 俊明 <[email protected]> http://bioruby.org/ 東京大学医科学研究所ヒトゲノム解析センター + BioRuby: 中尾 光輝(産総研), 後藤 直久(阪大) + ChemRuby: 田中 伸也(京大)

Upload: others

Post on 31-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

2005年度上期IPA未踏ソフトウェア キックオフセミナー

Ruby言語による生物化学情報基盤ライブラリの開発

::: BioRuby + ChemRuby :::

片山 俊明 <[email protected]>http://bioruby.org/

東京大学医科学研究所ヒトゲノム解析センター

+ BioRuby: 中尾 光輝(産総研), 後藤 直久(阪大)

+ ChemRuby: 田中 伸也(京大)

Page 2: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

http://bioruby.org/国際交流:O|B|F (http://open-bio.org)BioPerl, BioPython, BioJava, ..

国内普及:オープンバイオ研究会(http://open-bio.jp)

Page 3: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

開発メンバー

後藤直久BioRuby

中尾光輝BioRuby

片山俊明BioRuby

田中伸也ChemRuby

Ewan BirneyBioPerl

ハッシュ蓮珠

アレイ藍鈴

Page 4: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

-ATGCTTCAG-:::::::::-TACGAAGTC-

ゲノム日々更新される膨大な配列情報と

アノテーション情報 (TB)

Page 5: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

2004年までに200種以上のゲノム解読が完了

0

50

100

150

200

250

1995199619971998199920002001200220032004

ヒトゲノム完了2000 / 1 / 27

生物種数

Page 6: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

RefSeq

PDB

PubMed

PubChem

GenPept

EMBL

UniProt

GenBankDNA(ゲノム,遺伝子)タンパク質配列DB GENES

ENZYME

PATHWAY

COMPOUND

タンパク質立体構造

遺伝子発現

UCSC

文献情報

Ensembl

KEGGDAS

化学計算ソフトウェア

解析ソフトウェア

HMMER

TINKER

各種フォーマット

酵素,化合物DB

LIGAND

ポストゲノム時代

遺伝子 病気 薬

Page 7: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

ヒトゲノムはわかったがまだ

よくわからないな~

• 回路図 ( パスウェイ )

• I/Oデータ ( 化学物質 )

• リバースエンジニアリング( マイクロアレイ、遺伝子チップ )

遺伝子はコンピュータでいうと部品の一つ

ポストゲノムだ!

Page 8: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

ポストゲノム:Bio + Chem

遺伝子ネットワーク

代謝パスウェイ

ケミカルコンパウンド

ゲノム(Bio)と化学物質(Chem)のつながり(パスウェイ)がポストゲノムの課題

BOSC2005

配列解析だけの時代は終わった→パイプライン、グリッド

Page 9: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

バイオインフォマティクス分子生物学計算生物学

* 配列解析 * 立体構造 * シミュレーション

* 遺伝コード * ゲノム

* 分子進化

インターフェースBioRuby

実装

Page 10: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

生命の情報表現MMEILRGSPALSAFRINKLLARFQAARLPVHNIYAEYVHFADLNAPLNDDEHAQLERLLKYGPALASHAPQGKLLLVTPRPGTISPWSSKATDIAHNCGLQQVNRLERGVAYYIEAGTLTNEQWQQVTAELHDRMMETVFFALDDAEQLFAHHQPTPVTSVDLLGQGRQALIDANLRLGLALAEDEIDYLQDAFTKLGRNPNDIELYMFAQANSEHCRHKIFNADWVIDGEQQPKSLFKMIKNTFETTPDHVLSAYKDNAAVMEGSEVGRYFADHETGRYDFHQEPAHILMKVETHNHPTAISPWPGAATGSGGEIRDEGATGRGAKPKAGLVGFSVSNLRIPGFEQPWEEDFGKPERIVTALDIMTEGPLGGAAFNNEFGRPALNGYFRTYEEKVNSHNGEELRGYHK

配列データ (GenBank, UniProt,......)

立体構造 (PDB,......)HEADER LIGASE 15-DEC-04 1VQ3 TITLE CRYSTAL STRUCTURE OF PHOSPHORIBOSYLFORMYLGLYCINAMIDINE TITLE 2 SYNTHASE, PURS SUBUNIT (EC 6.3.5.3) (TM1244) FROM TITLE 3 THERMOTOGA MARITIMA AT 1.90 A RESOLUTION :ATOM 1 N HIS A -3 70.636 28.979 8.146 1.00 32.07 N ATOM 2 CA HIS A -3 70.436 29.954 7.050 1.00 28.18 C ATOM 3 C HIS A -3 69.098 30.657 7.163 1.00 26.01 C ATOM 4 O HIS A -3 68.684 31.308 6.214 1.00 29.86 O ATOM 5 CB HIS A -3 70.492 29.234 5.702 1.00 33.52 C

Affymetrix:CompositeSequence:HG_U95Av2:AFFX-HUMGAPDH/M33197_5_at AFFX-HUMGAPDH/M33197_5_at IPB000173 1.4.1.16 M33197 ENSG00000111640 7Affymetrix:CompositeSequence:HG_U95Av2:AFFX-HUMGAPDH/M33197_M_at AFFX-HUMGAPDH/M33197_M_at IPB000173 1.4.1.16 M33197 ENSG00000111640 7Affymetrix:CompositeSequence:HG_U95Av2:AFFX-HUMGAPDH/M33197_3_at AFFX-HUMGAPDH/M33197_3_at IPB000173 1.4.1.16 M33197 ENSG00000111640 7

発現データ (ArrayExpress,.......)<?xml version="1.0" standalone="yes"?><!DOCTYPE DASGFF SYSTEM "http://www.biodas.org/dtd/dasgff.dtd"><DASGFF><GFF version="1.01" href="http://das.hgc.jp/cgi-bin/das/eco/features?segment=eco%3A2671072%2C2721071"><SEGMENT id="eco" start="2671072" stop="2721071" version="1.0"> <FEATURE id="EC:1.14.12.17/7199" label="1.14.12.17"> <TYPE id="enzyme:KEGG" category="enzyme">enzyme:KEGG</TYPE> <METHOD id="enzyme">enzyme</METHOD> <START>2683857</START> <END>2685047</END>

XML (DAS, KGML,......)

Page 11: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

BioRubyの必要性• バイオインフォマティクスの広がり(新規参入者増加)

• バイオ系から(利用者) >> インフォ系から(開発者)

• 扱うデータは大規模(TB)かつ多種多様(>700DB)• バイオ系ではデータフォーマットの変換でさえハードル

• プログラミングは避けがたく Perl は広く使われている

• PCR, 制限酵素 ⇔ my, $_, @ISA, デリファレンス???

• 先行する BioPerl はプロ仕様、日本のユーザは少ない

• バイオ系利用者でも日常のツールとして使えるものを• Perlと同様にパワフルで記述の分かりやすいRubyで• 国内のニーズ、日本語によるドキュメンテーション

NAR DB issue

The 2005 update includes

719 databases

Page 12: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

ケモインフォマティクス情報化学計算化学

* 量子化学計算 * 分子力学 * 確率論的計算

* 薬っぽさ * 部分構造マッチ * 対称性 * データ検索

インターフェースChemRuby

実装

Page 13: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

化学物質の情報表現CC1C(C(CC(O1)OC2C(C(C(OC2OC3=C4C=C5C=C3OC6=C(C=C(C=C6)C(C(C(=O)NC(C(=O)NC5C(=O)NC7C8=CC(=C(C=C8)O)C9=C(C=C(C=C9C(NC(=O)C(C(C1=CC(=C(O4)C=C1)Cl)O)NC7=O)C(=O)O)O)O)CC(=O)N)NC(=O)C(CC(C)C)NC)O)Cl)CO)O)O)(C)N)O

線形化学表現 (SMILES, InChI,......)

結合表 (MDL, Tinker,......) ISISHOST03240423012D 1 1.00000 0.00000 9

5 4 0 0 0 999 V2000 -0.0414 0.1586 0.0000 P 0 0 3 0 0 0 0 0 0 -0.7621 -0.2517 0.0000 O 0 0 0 0 0 0 0 0 0 0.6759 -0.2517 0.0000 O 0 0 0 0 0 0 0 0 0 0.1724 -0.6414 0.0000 O 0 0 0 0 0 0 0 0 0 -0.0414 0.9897 0.0000 O 0 0 0 0 0 0 0 0 0 1 2 1 0 0 0 1 3 1 0 0 0 1 4 1 0 0 0 1 5 2 0 0 0M END

00000000: 0d6a 4344 3031 3030 0403 0201 0000 0000 .jCD0100........00000010: 0000 0000 0000 0000 0000 0000 0300 0e00 ................00000020: 0000 4368 656d 4472 6177 2037 2e30 0800 ..ChemDraw 7.0..00000030: 0f00 0000 6879 7065 7269 6369 6e2e 6364 ....hypericin.cd00000040: 7800 0332 0008 00ff ffff ffff ff00 0000 x..2............00000050: 0000 00ff ff00 0000 00ff ffff ff00 0000 ................00000060: 00ff ff00 0000 00ff ffff ff00 0000 00ff ................

バイナリ (CDX,.......)<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE CDXML SYSTEM "http://www.cambridgesoft.com/xml/cdxml.dtd" ><CDXML CreationProgram="ChemDraw 7.0" Name="hypericin.mol" BoundingBox="67.44 97.35 301.63 315.25"

XML (CML, CDXML,......)

Page 14: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

化学物質の性質水素結合?

芳香族性?

環の数は?

似た化学物質?

部分構造?キラル中心?

• 部分構造検索DBエンジン

• 分子力学計算

グラフアルゴリズム

Page 15: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

ChemRubyの必要性

• 化合物のDBと表現フォーマットはこれまた多種多様

• ChemRuby では kcf, sdf, rdf, rxn, mol, msi, g98, cdx に対応

• フォーマット変換、EPSなど画像での出力も可能

• OpenBabel (sf.net) - 不完全なフォーマット変換ツールは存在

• 計算科学ソフトウェアへのインターフェイス• 分子モデリング (tinker)

• 化合物の構造検索アルゴリズム

• 部分構造検索 (subcomp), グラフとしての幅優先探索

Page 16: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

ゲノム創薬

遺伝子チップ

代謝マップ

Innovation & Business Architecture Inc.

ロボット化学実験

BioRuby ChemRuby

化学物質遺伝情報

新しい実験手法

Page 17: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

RefSeq

PDB

PubMed

PubChem

GenPept

EMBL

UniProt

GenBankDNA(ゲノム,遺伝子)タンパク質配列DB GENES

ENZYME

PATHWAY

COMPOUND

タンパク質立体構造

遺伝子発現

UCSC

文献情報

Ensembl

KEGGDAS

Bio::DAS(REST CGI)

Bio::Flat(BDB)Bio::Fetch(HTTP)Bio::SQL(RDB)

Bio::KEGG::API(SOAP/WSDL)

Bio::GenBank,Bio::EMBL etc.

E-Utils(CGI)

Bio::Pathway化学計算ソフトウェア

解析ソフトウェア

Bio::Sequence

Bio::Reference

Bio::BLAST,Bio::HMMER etc.

HMMER

TINKER

各種フォーマット

酵素,化合物DB

LIGAND

BioRuby + ChemRuby

Page 18: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

KEGG 京大で開発され、世界的に広く利用されている代謝パスウェイ中心のDB

BioRuby + KEGG API発現変化パスウェイの探索定期的な作業の自動化

ChemRuby + subcomp類似構造検索創薬ターゲット

片山:KEGG API (SOAP サーバ), KEGG DAS (ゲノムブラウザ) 等の開発

田中:類似構造検索アルゴリズム開発

# 枯草菌のパスウェイ106枚中の1枚(アミノ酸合成経路)に# 栄養源枯渇時の遺伝子発現データを色でマッピング

# process KEGG Expression data here...

serv = Bio::KEGG::API.newlist = serv.list_pathways(org)list.each do |path| pathway = path.entry_id fg_list = Array.new bg_list = Array.new genes = serv.get_genes_by_pathway(pathway) genes.each do |gene| fg_list << "#000000" bg_list << hash[gene] || "#cccccc" end url = serv.color_pathway_by_objects(pathway, genes, fg_list, bg_list) serv.save_image(url)end

Connectseamlessly..

Page 19: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

Rubyの優位点• ユーザ:生物系、化学系の実験屋さんにも敷居が低い• 開発者:アイデアの実現が早い

• オブジェクト指向• バイオインフォで扱うモノ(遺伝子、化合物、グラフ)→複雑なデータ構造

• 標準添付ライブラリが充実(CGI~SOAPまで)

• インストール手順がとても簡単に• 国産である

Page 20: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

ユースケース• 必要なデータをネットから取得• ローカルでデータを加工• ネット経由で計算を投げる• 統計処理• ビジュアライズ

実行速度より実装速度

Page 21: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

Rubyは遅い!?

• BioPerlより20倍速い• ややこしい計算はCで拡張

• YARVが49倍速くしてくれる

Page 22: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

• 7月末 BioRuby 0.6.3 リリース(肉の日)

• Ruby1.8 用の BioRuby 0.7 開発開始

• 9月末 API見直し、UnitTest

• 英文ドキュメントの整備開始• 11月 チュートリアルのドキュメント完成

• 12月 講習会、OpenBio研究会の開催

• 2月 BioRuby 1.0 ChemRuby 1.0

Page 23: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

BioRuby/ChemRuby組の課題

1. ドキュメント整備2. 普及促進3. 機能追加4. 生物情報学+化学情報学5. 高品質化6. 開発の促進 - 地理的隔離

Page 24: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

BioRuby/ChemRuby組の課題

1. API の RDoc 化、チュートリアル文書2. 普及促進3. 機能追加4. 生物情報学+化学情報学5. 高品質化6. 開発の促進 - 地理的隔離

Page 25: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

BioRuby/ChemRuby組の課題

1. API の RDoc 化、チュートリアル文書2. 学会発表、講習会の開催3. 機能追加4. 生物情報学+化学情報学5. 高品質化6. 開発の促進 - 地理的隔離

Page 26: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

BioRuby/ChemRuby組の課題

1. API の RDoc 化、チュートリアル文書2. 学会発表、講習会の開催3. インタラクティブなシェル4. 生物情報学+化学情報学5. 高品質化6. 開発の促進 - 地理的隔離

Page 27: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

BioRuby/ChemRuby組の課題

1. API の RDoc 化、チュートリアル文書2. 学会発表、講習会の開催3. インタラクティブなシェル4. BioRuby + ChemRuby 融合5. 高品質化6. 開発の促進 - 地理的隔離

Page 28: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

BioRuby/ChemRuby組の課題

1. API の RDoc 化、チュートリアル文書2. 学会発表、講習会の開催3. インタラクティブなシェル4. BioRuby + ChemRuby 融合5. Test::Unit を利用6. 開発の促進 - 地理的隔離

Page 29: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

BioRuby/ChemRubyで解決!

1. API の RDoc 化、チュートリアル文書2. 学会発表、講習会の開催3. インタラクティブなシェル4. BioRuby + ChemRuby 融合5. Test::Unit を利用6. 旅費問題が解決 - 合宿

Page 30: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

(1)

Page 31: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

ドキュメントせいび

Page 32: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

チュートリアル

日本語版更新!

英語版新規!

Thank you, Pjotr!(たぶん、どっちか)

Page 33: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

http://bioruby.org/rdoc/

• RDoc 化で、これまで眠っていたドキュメントが表舞台に。

Page 34: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

開発ガイドライン

• README.DEV ファイルを書いた

• コントリビュートの方針• LGPL ライセンスについて

• コーディングスタイル• 名前空間、Test::Unit、autoload など

Page 35: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

書籍でも紹介「BioPerlが提供している機能は多いですが、各モジュールがばらばらで開発されているように感じます。その点、プログラミングのしやすさとソースコードの読みやすさではBioRubyに軍配が上がると思います。」

Page 36: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

(2)

Page 37: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

普及促進

Page 38: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

BOSC2005

• Bioinformatics Open Source Coference

• 2005/06/23

• @デトロイト

BioPerl

Page 39: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

第4回関西Ruby

勉強会• 河野信さん• ユースケース

• 後藤直久• 概要

Page 40: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

かずさDNA研究所で発表

Page 41: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

BioRuby/ChemRuby実習• 科学技術振興調整費 ゲノム情報科学教育機構の人材養成講義

Page 42: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

(3)

Page 43: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

機能追加

Page 44: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

autoload 化

• 起動時間 ruby -r bio -e 0 が 30 倍高速に

% repeat 10 { time ruby -r bio -e 0 }-------------------------------------------------------------0.6.4: 0.74s user 0.16s system 1.082 total0.7.0 (9/10): 0.01s user 0.01s system 0.033 total

Page 45: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

シェルの開発

• エンドユーザがスクリプトを書かなくて良いように• bioruby コマンド -- irb を流用

• ヒストリ• オブジェクト保存• スクリプト生成• 配列操作、DB入出力などのショートカット

Page 46: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

追加ライブラリ• パスウェイ関係• Bio::KEGG::KGML

• 遺伝子発現データ• Bio::KEGG::EXPRESSION

• 表示系• Bio::ColorScheme

Page 47: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

(4)

Page 48: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

イヒ学

Page 49: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

ゲノム創薬

遺伝子チップ

代謝マップ

Innovation & Business Architecture Inc.

ロボット化学実験

BioRuby ChemRuby

化学物質遺伝情報

新しい実験手法

Page 50: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

ChemRuby

Page 51: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

化学物質の情報表現

CC1C(C(CC(O1)OC2C(C(C(OC2OC3=C4C=C5C=C3OC6=C(C=C(C=C6)C(C(C(=O)NC(C(=O)NC5C(=O)NC7C8=CC(=C(C=C8)O)C9=C(C=C(C=C9C(NC(=O)C(C(C1=CC(=C(O4)C=C1)Cl)O)NC7=O)C(=O)O)O)O)CC(=O)N)NC(=O)C(CC(C)C)NC)O)Cl)CO)O)O)(C)N)O

線形化学表現 (SMILES, InChI,......)

結合表 (MDL, Tinker,......) ISISHOST03240423012D 1 1.00000 0.00000 9

5 4 0 0 0 999 V2000 -0.0414 0.1586 0.0000 P 0 0 3 0 0 0 0 0 0 -0.7621 -0.2517 0.0000 O 0 0 0 0 0 0 0 0 0 0.6759 -0.2517 0.0000 O 0 0 0 0 0 0 0 0 0 0.1724 -0.6414 0.0000 O 0 0 0 0 0 0 0 0 0 -0.0414 0.9897 0.0000 O 0 0 0 0 0 0 0 0 0 1 2 1 0 0 0 1 3 1 0 0 0 1 4 1 0 0 0 1 5 2 0 0 0M END

00000000: 0d6a 4344 3031 3030 0403 0201 0000 0000 .jCD0100........00000010: 0000 0000 0000 0000 0000 0000 0300 0e00 ................00000020: 0000 4368 656d 4472 6177 2037 2e30 0800 ..ChemDraw 7.0..00000030: 0f00 0000 6879 7065 7269 6369 6e2e 6364 ....hypericin.cd00000040: 7800 0332 0008 00ff ffff ffff ff00 0000 x..2............00000050: 0000 00ff ff00 0000 00ff ffff ff00 0000 ................00000060: 00ff ff00 0000 00ff ffff ff00 0000 00ff ................

バイナリ (CDX,.......)<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE CDXML SYSTEM "http://www.cambridgesoft.com/xml/cdxml.dtd" ><CDXML CreationProgram="ChemDraw 7.0" Name="hypericin.mol" BoundingBox="67.44 97.35 301.63 315.25"

XML (CML, CDXML,......)

Page 52: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

化学的性質

• 水素結合の数• LogP

• 分子量• ケミカルオントロジー

特徴

Graph

Page 53: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

性質を推定

毒類似

化合物の類似性から

Page 54: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

グラフマッチ

• NP困難

• スパコン10 CPUでタイムアウト

• 実装がない• Boost Graph Library、VF

Page 55: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

Adjacency Matrix

Page 56: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

Adjacency Matrix

Page 57: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

Finding Match Matrix

Page 58: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

Match Matrix

Page 59: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

ビット演算int numofbits(int bits) { int num = 0; int mask = 1; for( ; mask != 0 ; mask = mask << 1 ){ if( bits & mask ) num++ ; } return num;}

int numofbits(long bits) { bits = (bits & 0x55555555) + (bits >> 1 & 0x55555555); bits = (bits & 0x33333333) + (bits >> 2 & 0x33333333); bits = (bits & 0x0f0f0f0f) + (bits >> 4 & 0x0f0f0f0f); bits = (bits & 0x00ff00ff) + (bits >> 8 & 0x00ff00ff); return (bits & 0x0000ffff) + (bits >>16 & 0x0000ffff);}

http://www.hackersdelight.org/

Page 60: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

融合

Page 61: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

生化学情報はグラフが多い代謝経路 化学物質

タンパク相互作用

Page 62: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

汎用グラフライブラリで API を共通化

• 遺伝子間相互作用のグラフ表現• 化合物のグラフ表現

Page 63: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

(5)

Page 64: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

テスト

Page 65: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

Test::Unit

• 開発が平行して進んでいる• 当初予定より後回しに• 仕様の固まったものを中心に• 新規開発はテストファーストで• 現在、51.6% のファイルで完了

Page 66: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

Test::Unit

• 困っている点• いろいろあったけどほぼ解決• ノウハウの蓄積

• ruby install.rb test

Page 67: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

(6)

Page 68: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

合宿

Page 69: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

開発に専念

7回の合宿

地理的隔離を解消

Page 70: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

おまけ

• KEGG API

Page 71: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

24,24024,81528,52956,98658,125173,408248,281261,866

734,855

767,830

1,348,470

2,688,317

SOAP::Lite/Perl/0.60SOAP4R/1.5.3-ruby1.8.2Axis/1.2RC2SOAP4R/1.5.2SOAPpy/0.11.6Axis/1.2RC1SOAP::Lite/Perl/0.55Axis/1.1SOAPpy/0.12.0SOAP4R/1.5.3-ruby1.8.2-http-access2.rb/1.39Axis/1.2RC3Axis/1.2beta

KEGG API v3.2

Page 72: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

KEGG API v4.0

24,26729,95371,742341,802367,343

433,063

619,851

1,422,207 1,536,014

1,840,929 SOAP4R/1.5.2SOAP4R/1.5.3-ruby1.8.2SOAP::Lite/Perl/0.60SOAPpy/0.12.0SOAP::Lite/Perl/0.55SOAPpy/0.11.6Axis/1.2.1Axis/1.2alphaAxis/1.2RC2SOAPpy/0.11.3

Page 73: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

今後の予定

• 11 月 ドキュメント整備 - ほぼ完了

• 12 月 KAST 講習会、オープンバイオ研究会

• 1 月 シェル, Test::Unit 完成, YARV で試す?

• 2 月 BioRuby, ChemRuby 1.0 リリース

• 書籍(SciRuby, オープンバイオ本)、論文

Page 74: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

デモ

• BioRubyシェル

• ChemRubyデモサイト

Page 75: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

曲目一覧• 01_cpd_C00103

• 02_bsu_BG10189

• 03_cpd_C00668

• 04_bsu_BG12366

• 05_cpd_C05345

• 06_bsu_BG12644

• 07_cpd_C05378

• 08_bsu_BG10412

• 09_cpd_C00118

• 10_bsu_BG10827

• 11_cpd_C00236

• 12_bsu_BG12947

• 13_cpd_C00197

• 14_bsu_BG10898

• 15_cpd_C00631

• 16_bsu_BG10899

• 17_cpd_C00074

Page 76: IPA未踏ソフトウェア Ruby言語による生物化学 情報基盤ライブラ …open-bio.jp/archive/20051219_OB2/OB2-BioRuby-Katayama.pdf · BioRuby + KEGG API 発現変化パスウェイの探索

全てはクマゲのために