Presentation is loading. Please wait.

Presentation is loading. Please wait.

BioRubyの開発と 遺伝子情報解析への応用 大阪大学遺伝情報実験センター ゲノム情報解析分野 後藤 直久 2005年1月21日.

Similar presentations


Presentation on theme: "BioRubyの開発と 遺伝子情報解析への応用 大阪大学遺伝情報実験センター ゲノム情報解析分野 後藤 直久 2005年1月21日."— Presentation transcript:

1 BioRubyの開発と 遺伝子情報解析への応用 大阪大学遺伝情報実験センター ゲノム情報解析分野 後藤 直久 2005年1月21日

2 序論 データベース: 719件以上 解析ソフトウェア: 129~448種類以上 組み合わせ 新たな生物学的知見
例: GenBank, EMBL, DDBJ, PDB, KEGG, … Galperin, M.Y. (2005) The Molecular Biology Database Collection: 2005 update. Nucleic Acids Research, 33: D5-D24. 解析ソフトウェア: 129~448種類以上 例: BLAST, FASTA, CLUSTAL W, … のBioinformaticsカテゴリ 組み合わせ 新たな生物学的知見

3 統合的に扱えるライブラリ(ソフトウェア部品集)やソフトウェア環境の整備が必要
データベース: 719件以上 解析ソフトウェア: 129~448種類以上 データ形式(フォーマット)はそれぞれ別々で、よく使われるフォーマットはいくつか存在するが、基本的には統一されていない データを読み込み解釈する機能(パーサ)は、あるフォーマットについて一回プログラミングしたら、流用可能 データの読み書き以外にも、バイオインフォマティクスに必要な定型処理はたくさんある 統合的に扱えるライブラリ(ソフトウェア部品集)やソフトウェア環境の整備が必要

4 プログラム言語のライブラリとして 実装するメリット
大量データ処理 ゲノム全体など数千~数万個の遺伝子に対する処理 複数処理の組み合わせ 例: BLASTを実行しヒットした遺伝子をCLUSTAL W でマルチプルアライメントする 条件分岐 例: BLASTのe-valueが0.1以下のときは処理Aを、それより大きいときは処理Bを実行

5 BioRuby 頻繁に使用する機能・あったら便利な機能 Rubyで実装した ライブラリ 統一されたインターフェース・使用法
バイオインフォマティクスにおいて 頻繁に使用する機能・あったら便利な機能 塩基・アミノ酸配列の処理・解析 データベースのデータ処理 解析ソフトウェアの結果処理 ファイル入出力・ネットワークとの通信 統一されたインターフェース・使用法 Rubyで実装した ライブラリ 個別に深く理解する必要なく使える (ソフトウェア部品集)

6 Rubyとは? オブジェクト指向スクリプト言語 http://www.ruby-lang.org/
日本で開発され、海外にも普及したプログラム言語 作者: まつもとゆきひろ氏 Perlとの類似点 テキスト(文字列)処理が得意 スクリプト言語(コンパイル不要) Javaとの類似点 オブジェクト指向

7 他言語による先行プロジェクト Perl BioPerl Java BioJava Python Biopython
言語により得意分野が異なるので共存 Open Bioinformatics Foundation (OBF) を結成 情報交換や開発協力など データ入出力形式の標準化 (OBDA)

8 Rubyを選択した理由 オブジェクト指向 簡潔な文法 日本で誕生し海外にも普及した言語 データ構造を容易に記述できる
データとデータに対する処理を一括管理可能 →構造化されたデータが数多く存在する生物学分野では特に有用 簡潔な文法 書きやすく読みやすい 開発効率が高い 日本で誕生し海外にも普及した言語

9 BioRuby 2000/11/21 BioRubyプロジェクト開始 2001/06/21 バージョン0.1をリリース
… (この間, リリース18回, 学会発表8回) 2004/12/13 バージョン0.62をリリース 現在 ファイル数: 130以上 行数: 37,000行以上 開発者: 累計 9人(うち海外2人)

10 BioRuby フリーソフトウェア オープンな開発体制 http://bioruby.org/ 誰でも自由にコピーや配布ができる
ソースを公開しており改造も自由 改造した物の再配布も可能 オープンな開発体制 インターネットを活用 誰でも開発に参加可能

11 BioRubyの機能(1) 基本的なデータ構造・アルゴリズム 塩基・アミノ酸配列 (Bio::Sequence)
部分配列の切り出し・翻訳など 配列上の位置情報 (Bio::Locations) アノテーション (Bio::Features) マルチプルアライメント (Bio::Alignment) 二項関係 (Bio::Relation) パスウェイ (Bio::Pathway) 文献情報 (Bio::References)

12 BioRubyの機能(2) データベース等のデータフォーマット対応 FASTA形式 (Bio::FastaFormat)
GenBank/DDBJ (Bio::GenBank) EMBL (Bio::EMBL) SwissProt/TrEMBL (Bio::SPTR) PIR(NBRF形式) (Bio::NBRF) PDB (Bio::PDB) PROSITE (Bio::PROSITE) KEGG (Bio::KEGG::*) TRANSFAC (Bio::TRANSFAC) FANTOM (Bio::FANTOM) MEDLINE (Bio::MEDLINE) Gene Ontology (Bio::GO) 他、合計約26種類のデータ形式に対応

13 BioRubyの機能(3) 解析ソフトウェアの結果処理 BLAST (Bio::Blast) FASTA (Bio::Fasta)
HMMER (Bio::HMMER) CLUSTAL W (Bio::ClustalW) MAFFT (Bio::MAFFT) sim4 (Bio::Sim4) BLAT (Bio::BLAT) Spidey (Bio;;Spidey) GenScan (Bio::GenScan) PSORT (Bio::PSORT) TarrgetP (Bio::TargetP) SOSUI (Bio::SOSUI) TMHMM (Bio::TMHMM) 他、合計約15種類の解析ソフトウェアに対応

14 BioRubyの機能(4) ファイルやネットワーク経由のデータ入出力 Bio::FlatFile Bio::FlatFileIndex
Bio::Fetch Bio::SQL Bio::Registry Bio::DAS Bio::KEGG::API Bio::DDBJ::XML Bio::PubMed

15 BioRubyにおける 高速なBLASTパーサの実装

16 ホモロジー検索ソフトウェアBLASTの実行結果を読み込み、結果の整理や解析などの後処理を加えることは広く行われている。
BLAST自体は並列化などにより高速化が図られているが、BLAST結果の後処理に関しては高速化の検討が不十分な場合が多い。 そこで、速度を重視したBLASTパーサ(BLAST結果を読み込み解釈する機能)を実装した。

17 機能 BioRubyでBLAST結果を読み込み、データをコンピュータ内部で扱える形にする NCBI BLAST 対応 WU-BLAST 対応
あとは次の処理しだいでいろいろなことができる 例: スコアやE-valueによって絞り込み NCBI BLAST 対応 BLASTN/BLASTP/BLASTX/TBLASTN/TBLASTX PSI-BLAST, PHI-BLAST WU-BLAST 対応

18 BLAST結果の例 Iteration Hit HSP HSP Hit HSP HSP Hit HSP バージョンReference
BLASTN [Apr ] Reference: Altschul, Stephen F., Thomas L. Madden, Alejandro A. Schaffer, Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman (1997), "Gapped BLAST and PSI-BLAST: a new generation of protein database search programs", Nucleic Acids Res. 25: Query= ri| A07|R000001A15|1277 contigs=2 ver=1 seqid=2 (1277 letters) Database: fantom2.00.seq 60,770 sequences; 119,956,725 total letters Searching done Score E Sequences producing significant alignments: (bits) Value ri| A07|R000001A15|1277 contigs=2 ver=1 seqid= ri| M06|R000004L05|1061 contigs=2 ver=1 seqid= e-148 ri| E11|PX00030N13|1181 contigs=2 ver=1 seqid= e-90 ri| G14|R000015H01|1462 contigs=2 ver=1 seqid= e-79 ri| M20|ZX00096C11|926 contigs=66 ver=1 seqid= e-13 ri| E12|ZX00083B15|841 contigs=2 ver=1 seqid= e-13 ri| N11|R000004G20|840 contigs=2 ver=1 seqid= e-13 ri| C20|PX00107J21|1874 contigs=4 ver=1 seqid= e-08 ri|B830049N13|PX00073P19|1106 contigs=2 ver=1 seqid= e-08 >ri| A07|R000001A15|1277 contigs=2 ver=1 seqid=2 Length = 1277 Score = 2531 bits (1277), Expect = 0.0 Identities = 1277/1277 (100%) Strand = Plus / Plus Query: 1 gggcagctctctgaacagccaaggctagattgacactgagcctgtccgttcagacctcgg 60 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| Sbjct: 1 gggcagctctctgaacagccaaggctagattgacactgagcctgtccgttcagacctcgg 60 ~~~~~~~~~~~~~~~~~~~~~(中略)~~~~~~~~~~~~~~~~~~~~~~ >ri| G14|R000015H01|1462 contigs=2 ver=1 seqid=1271 Length = 1462 Score = 297 bits (150), Expect = 3e-79 Identities = 207/226 (91%) Query: 113 attcgcctgttcctggaatacacagactcaagctatgaggagaagagatacaccatgggt 172 ||||| ||| |||| |||||||||| |||||||||||| |||||||||||||||||||| Sbjct: 29 attcggctgctcctagaatacacaggctcaagctatgaagagaagagatacaccatggga 88 Query: 173 gatgctcctgactatgaccaaagccagtggctgaatgagaaattcaagctgggcctggac 232 || |||||||||||||||| |||||||||||||| |||||| ||||| ||||||||||| Sbjct: 89 gacgctcctgactatgaccgaagccagtggctgagtgagaagttcaaattgggcctggac 148 Query: 233 tttcctaacctgccctacttgatcgatgggtcacacaagatcacgcagagcaatgccatc 292 ||||| || |||| |||||||| |||||||||||||||||||||||||||||||||||| Sbjct: 149 tttcccaatttgccttacttgattgatgggtcacacaagatcacgcagagcaatgccatc 208 Query: 293 ctgcgctaccttggccgcaagcacaacctgtgtggggagacagagg 338 ||||||||| ||| |||||||||||||||||||||||||||||||| Sbjct: 209 ctgcgctacattgcccgcaagcacaacctgtgtggggagacagagg 254 Score = 93.7 bits (47), Expect = 1e-17 Identities = 110/131 (83%) Query: 583 gtgcctggatgcgttcccaaacctgaaggacttcatagcgcgctttgagggcctgaagaa 642 ||||||||| || |||||||||||||||||||| | || |||||||||| ||||||| Sbjct: 499 gtgcctggacgccttcccaaacctgaaggactttgtggcccgctttgaggtactgaagag 558 Query: 643 gatctccgactacatgaagaccagtcgcttcctcccaagacccatgttcacaaagatggc 702 |||||| | |||||||||||||| |||||||||| || |||| | | |||||| |||| Sbjct: 559 gatctctgcttacatgaagaccagccgcttcctccgaacacccctatatacaaaggtggc 618 Query: 703 aacttggggca 713 |||||||||| Sbjct: 619 cacttggggca 629 Score = 56.0 bits (28), Expect = 2e-06 Identities = 106/132 (80%) Query: 419 gactttgagaagctgaagccagggtacctggagcaactccctggaatgatgaggctttac 478 ||||||||||| |||||| | ||| ||||||| |||||||||||| ||| ||| | | Sbjct: 335 gactttgagaaactgaaggtggaatacttggagcagctccctggaatggtgaagctcttc 394 Query: 479 tctgagttcctgggcaagcggccatggttcgcaggggacaagatcacctttgtggatttc 538 || ||||||||||| ||||| ||||||| | || || ||||| || ||||| |||||| Sbjct: 395 tcacagttcctgggccagcggacatggtttgttggtgaaaagattacttttgtagatttc 454 Query: 539 attgcttacgat 550 | ||||||||| Sbjct: 455 ctggcttacgat 466 >ri| M20|ZX00096C11|926 contigs=66 ver=1 seqid=52116 Length = 926 Posted date: Dec 7, :50 PM Number of letters in database: 119,956,725 Number of sequences in database: 60,770 Lambda K H Gapped Matrix: blastn matrix:1 -3 Gap Penalties: Existence: 5, Extension: 2 Number of Hits to DB: 107,501 Number of Sequences: 60770 Number of extensions: Number of successful extensions: 2506 Number of sequences better than 1.0e-01: 9 Number of HSP's better than 0.1 without gapping: 9 Number of HSP's successfully gapped in prelim test: 0 Number of HSP's that attempted gapping in prelim test: 2471 Number of HSP's gapped (non-prelim): 31 length of query: 1277 length of database: 119,956,725 effective HSP length: 19 effective length of query: 1258 effective length of database: 118,802,095 effective search space: effective search space used: T: 0 A: 0 X1: 6 (11.9 bits) X2: 15 (29.7 bits) S1: 12 (24.3 bits) S2: 21 (42.1 bits) バージョンReference Queryの情報 データベースの情報 HSP  High-Scoring Segment Pair の略。  BLASTによる相同性検索結果の最小単位 Iteration Hitの一覧 Hit HSP HSP Hit HSP HSP Hit 統計情報など

19 Iteration Hit HSP HSP Hit HSP HSP Hit バージョンReference Queryの情報
BLASTN [Apr ] Reference: Altschul, Stephen F., Thomas L. Madden, Alejandro A. Schaffer, Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman (1997), "Gapped BLAST and PSI-BLAST: a new generation of protein database search programs", Nucleic Acids Res. 25: Query= ri| A07|R000001A15|1277 contigs=2 ver=1 seqid=2 (1277 letters) Database: fantom2.00.seq 60,770 sequences; 119,956,725 total letters Searching done Score E Sequences producing significant alignments: (bits) Value ri| A07|R000001A15|1277 contigs=2 ver=1 seqid= ri| M06|R000004L05|1061 contigs=2 ver=1 seqid= e-148 ri| E11|PX00030N13|1181 contigs=2 ver=1 seqid= e-90 ri| G14|R000015H01|1462 contigs=2 ver=1 seqid= e-79 ri| M20|ZX00096C11|926 contigs=66 ver=1 seqid= e-13 ri| E12|ZX00083B15|841 contigs=2 ver=1 seqid= e-13 ri| N11|R000004G20|840 contigs=2 ver=1 seqid= e-13 ri| C20|PX00107J21|1874 contigs=4 ver=1 seqid= e-08 ri|B830049N13|PX00073P19|1106 contigs=2 ver=1 seqid= e-08 >ri| A07|R000001A15|1277 contigs=2 ver=1 seqid=2 Length = 1277 Score = 2531 bits (1277), Expect = 0.0 Identities = 1277/1277 (100%) Strand = Plus / Plus Query: 1 gggcagctctctgaacagccaaggctagattgacactgagcctgtccgttcagacctcgg 60 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| Sbjct: 1 gggcagctctctgaacagccaaggctagattgacactgagcctgtccgttcagacctcgg 60 ~~~~~~~~~~~~~~~~~~~~~(中略)~~~~~~~~~~~~~~~~~~~~~~ >ri| G14|R000015H01|1462 contigs=2 ver=1 seqid=1271 Length = 1462 Score = 297 bits (150), Expect = 3e-79 Identities = 207/226 (91%) Query: 113 attcgcctgttcctggaatacacagactcaagctatgaggagaagagatacaccatgggt 172 ||||| ||| |||| |||||||||| |||||||||||| |||||||||||||||||||| Sbjct: 29 attcggctgctcctagaatacacaggctcaagctatgaagagaagagatacaccatggga 88 Query: 173 gatgctcctgactatgaccaaagccagtggctgaatgagaaattcaagctgggcctggac 232 || |||||||||||||||| |||||||||||||| |||||| ||||| ||||||||||| Sbjct: 89 gacgctcctgactatgaccgaagccagtggctgagtgagaagttcaaattgggcctggac 148 Query: 233 tttcctaacctgccctacttgatcgatgggtcacacaagatcacgcagagcaatgccatc 292 ||||| || |||| |||||||| |||||||||||||||||||||||||||||||||||| Sbjct: 149 tttcccaatttgccttacttgattgatgggtcacacaagatcacgcagagcaatgccatc 208 Query: 293 ctgcgctaccttggccgcaagcacaacctgtgtggggagacagagg 338 ||||||||| ||| |||||||||||||||||||||||||||||||| Sbjct: 209 ctgcgctacattgcccgcaagcacaacctgtgtggggagacagagg 254 Score = 93.7 bits (47), Expect = 1e-17 Identities = 110/131 (83%) Query: 583 gtgcctggatgcgttcccaaacctgaaggacttcatagcgcgctttgagggcctgaagaa 642 ||||||||| || |||||||||||||||||||| | || |||||||||| ||||||| Sbjct: 499 gtgcctggacgccttcccaaacctgaaggactttgtggcccgctttgaggtactgaagag 558 Query: 643 gatctccgactacatgaagaccagtcgcttcctcccaagacccatgttcacaaagatggc 702 |||||| | |||||||||||||| |||||||||| || |||| | | |||||| |||| Sbjct: 559 gatctctgcttacatgaagaccagccgcttcctccgaacacccctatatacaaaggtggc 618 Query: 703 aacttggggca 713 |||||||||| Sbjct: 619 cacttggggca 629 Score = 56.0 bits (28), Expect = 2e-06 Identities = 106/132 (80%) Query: 419 gactttgagaagctgaagccagggtacctggagcaactccctggaatgatgaggctttac 478 ||||||||||| |||||| | ||| ||||||| |||||||||||| ||| ||| | | Sbjct: 335 gactttgagaaactgaaggtggaatacttggagcagctccctggaatggtgaagctcttc 394 Query: 479 tctgagttcctgggcaagcggccatggttcgcaggggacaagatcacctttgtggatttc 538 || ||||||||||| ||||| ||||||| | || || ||||| || ||||| |||||| Sbjct: 395 tcacagttcctgggccagcggacatggtttgttggtgaaaagattacttttgtagatttc 454 Query: 539 attgcttacgat 550 | ||||||||| Sbjct: 455 ctggcttacgat 466 >ri| M20|ZX00096C11|926 contigs=66 ver=1 seqid=52116 Length = 926 Posted date: Dec 7, :50 PM Number of letters in database: 119,956,725 Number of sequences in database: 60,770 Lambda K H Gapped Matrix: blastn matrix:1 -3 Gap Penalties: Existence: 5, Extension: 2 Number of Hits to DB: 107,501 Number of Sequences: 60770 Number of extensions: Number of successful extensions: 2506 Number of sequences better than 1.0e-01: 9 Number of HSP's better than 0.1 without gapping: 9 Number of HSP's successfully gapped in prelim test: 0 Number of HSP's that attempted gapping in prelim test: 2471 Number of HSP's gapped (non-prelim): 31 length of query: 1277 length of database: 119,956,725 effective HSP length: 19 effective length of query: 1258 effective length of database: 118,802,095 effective search space: effective search space used: T: 0 A: 0 X1: 6 (11.9 bits) X2: 15 (29.7 bits) S1: 12 (24.3 bits) S2: 21 (42.1 bits) バージョンReference Queryの情報 データベースの情報 Iteration Hitの一覧 Hit HSP HSP Hit HSP HSP Hit 統計情報など

20 Iteration Hit HSP HSP Hit HSP HSP バージョンReference Queryの情報 データベースの情報
BLASTN [Apr ] Reference: Altschul, Stephen F., Thomas L. Madden, Alejandro A. Schaffer, Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman (1997), "Gapped BLAST and PSI-BLAST: a new generation of protein database search programs", Nucleic Acids Res. 25: Query= ri| A07|R000001A15|1277 contigs=2 ver=1 seqid=2 (1277 letters) Database: fantom2.00.seq 60,770 sequences; 119,956,725 total letters Searching done Score E Sequences producing significant alignments: (bits) Value ri| A07|R000001A15|1277 contigs=2 ver=1 seqid= ri| M06|R000004L05|1061 contigs=2 ver=1 seqid= e-148 ri| E11|PX00030N13|1181 contigs=2 ver=1 seqid= e-90 ri| G14|R000015H01|1462 contigs=2 ver=1 seqid= e-79 ri| M20|ZX00096C11|926 contigs=66 ver=1 seqid= e-13 ri| E12|ZX00083B15|841 contigs=2 ver=1 seqid= e-13 ri| N11|R000004G20|840 contigs=2 ver=1 seqid= e-13 ri| C20|PX00107J21|1874 contigs=4 ver=1 seqid= e-08 ri|B830049N13|PX00073P19|1106 contigs=2 ver=1 seqid= e-08 >ri| A07|R000001A15|1277 contigs=2 ver=1 seqid=2 Length = 1277 Score = 2531 bits (1277), Expect = 0.0 Identities = 1277/1277 (100%) Strand = Plus / Plus Query: 1 gggcagctctctgaacagccaaggctagattgacactgagcctgtccgttcagacctcgg 60 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| Sbjct: 1 gggcagctctctgaacagccaaggctagattgacactgagcctgtccgttcagacctcgg 60 ~~~~~~~~~~~~~~~~~~~~~(中略)~~~~~~~~~~~~~~~~~~~~~~ >ri| G14|R000015H01|1462 contigs=2 ver=1 seqid=1271 Length = 1462 Score = 297 bits (150), Expect = 3e-79 Identities = 207/226 (91%) Query: 113 attcgcctgttcctggaatacacagactcaagctatgaggagaagagatacaccatgggt 172 ||||| ||| |||| |||||||||| |||||||||||| |||||||||||||||||||| Sbjct: 29 attcggctgctcctagaatacacaggctcaagctatgaagagaagagatacaccatggga 88 Query: 173 gatgctcctgactatgaccaaagccagtggctgaatgagaaattcaagctgggcctggac 232 || |||||||||||||||| |||||||||||||| |||||| ||||| ||||||||||| Sbjct: 89 gacgctcctgactatgaccgaagccagtggctgagtgagaagttcaaattgggcctggac 148 Query: 233 tttcctaacctgccctacttgatcgatgggtcacacaagatcacgcagagcaatgccatc 292 ||||| || |||| |||||||| |||||||||||||||||||||||||||||||||||| Sbjct: 149 tttcccaatttgccttacttgattgatgggtcacacaagatcacgcagagcaatgccatc 208 Query: 293 ctgcgctaccttggccgcaagcacaacctgtgtggggagacagagg 338 ||||||||| ||| |||||||||||||||||||||||||||||||| Sbjct: 209 ctgcgctacattgcccgcaagcacaacctgtgtggggagacagagg 254 Score = 93.7 bits (47), Expect = 1e-17 Identities = 110/131 (83%) Query: 583 gtgcctggatgcgttcccaaacctgaaggacttcatagcgcgctttgagggcctgaagaa 642 ||||||||| || |||||||||||||||||||| | || |||||||||| ||||||| Sbjct: 499 gtgcctggacgccttcccaaacctgaaggactttgtggcccgctttgaggtactgaagag 558 Query: 643 gatctccgactacatgaagaccagtcgcttcctcccaagacccatgttcacaaagatggc 702 |||||| | |||||||||||||| |||||||||| || |||| | | |||||| |||| Sbjct: 559 gatctctgcttacatgaagaccagccgcttcctccgaacacccctatatacaaaggtggc 618 Query: 703 aacttggggca 713 |||||||||| Sbjct: 619 cacttggggca 629 Score = 56.0 bits (28), Expect = 2e-06 Identities = 106/132 (80%) Query: 419 gactttgagaagctgaagccagggtacctggagcaactccctggaatgatgaggctttac 478 ||||||||||| |||||| | ||| ||||||| |||||||||||| ||| ||| | | Sbjct: 335 gactttgagaaactgaaggtggaatacttggagcagctccctggaatggtgaagctcttc 394 Query: 479 tctgagttcctgggcaagcggccatggttcgcaggggacaagatcacctttgtggatttc 538 || ||||||||||| ||||| ||||||| | || || ||||| || ||||| |||||| Sbjct: 395 tcacagttcctgggccagcggacatggtttgttggtgaaaagattacttttgtagatttc 454 Query: 539 attgcttacgat 550 | ||||||||| Sbjct: 455 ctggcttacgat 466 Posted date: Dec 7, :50 PM Number of letters in database: 119,956,725 Number of sequences in database: 60,770 Lambda K H Gapped Matrix: blastn matrix:1 -3 Gap Penalties: Existence: 5, Extension: 2 Number of Hits to DB: 107,501 Number of Sequences: 60770 Number of extensions: Number of successful extensions: 2506 Number of sequences better than 1.0e-01: 9 Number of HSP's better than 0.1 without gapping: 9 Number of HSP's successfully gapped in prelim test: 0 Number of HSP's that attempted gapping in prelim test: 2471 Number of HSP's gapped (non-prelim): 31 length of query: 1277 length of database: 119,956,725 effective HSP length: 19 effective length of query: 1258 effective length of database: 118,802,095 effective search space: effective search space used: T: 0 A: 0 X1: 6 (11.9 bits) X2: 15 (29.7 bits) S1: 12 (24.3 bits) S2: 21 (42.1 bits) バージョンReference Queryの情報 データベースの情報 Iteration Hitの一覧 Hit HSP HSP Hit HSP HSP 統計情報など

21 高速化の工夫 遅延評価 高速文字列検索機能の使用 その他、各種の最適化 まず、BLAST結果を大雑把に分解 その状態でメモリ上に保持
要求されたらはじめて細かな処理を行う 処理結果は保存し次回以降の要求に備える 高速文字列検索機能の使用 その他、各種の最適化

22 他のソフトとの機能比較 BioRuby (私が今回開発したパーサ) BioPerl Zerg 高速なBLASTパーサとして最近発表された
C言語で実装されたライブラリ Perlからも使用可能 Paquola,A.C.M., et al. (2003) Zerg: a very fast BLAST parser library, Bioinformatics, 19,

23 機能比較 BioRuby BioPerl Zerg C 言語 Ruby Perl NCBI BLAST対応 ○ ○ ○ *
(0.5.3) BioPerl (1.2.1) Zerg (1.0.3) C (Perlからも使用可能) 言語 Ruby Perl NCBI BLAST対応 * HSPのアライメント取得 × PSI-BLAST対応 × * WU-BLAST対応 × * 一部の統計情報には未対応

24 実行速度比較 ベンチマークプログラムを10回動作させたときの平均所要時間と処理速度およびBioPerlを1としたときの速度比を求めた。
テストデータ BLASTN実行結果 104,921,408バイト 8014エントリ マシンのスペック PentiumIII 1GHz, メモリ1GB, HDD 27GB OS: Linux

25 実行速度比較 所要時間(s) S.D. 速度(MB/s) 速度比 BioRuby 35.325 0.032 2.83 21.3
49.724 0.048 2.01 15.1 BioPerl (Perl5.6.1) 2.915 0.133 1 Zerg-C 2.437 0.002 41.1 308 Zerg-Perl 2.605 0.002 38.4 288 Zerg-Perl2 36.687 0.051 2.73 20.5

26 考察 機能は BioPerl ≒ BioRuby > Zerg 速度は Zerg > BioRuby > BioPerl
機能が少ない コンパイルやインストールが必要

27 結論 BLAST結果の後処理にBioRubyを使用することで、スクリプト言語の手軽さや柔軟性と処理の高速性の両方を得ることが可能
解析効率の向上が期待

28 応用例 (1) BLAST結果の表形式への変換 (2) BLASTでヒットしなかった配列のピックアップ
クエリー, ヒットした配列の名前, ヒットした部分の長さ(アライメント長), E-value, ビットスコアをタブ区切りで表示 (2) BLASTでヒットしなかった配列のピックアップ モチーフだけがヒットしているケースを除外するため、E-value以外にヒットした部分の長さも考慮 (3) BLASTをベースにしたcDNAのクラスタリング スクリプト言語だから、閾値などパラメータの変更が簡単 高速なので実行結果を見て微調整しても大丈夫

29 応用例(1) BLAST結果を読み込み、クエリー, ヒットした配列の名前, ヒットした部分の長さ(アライメント長), E-value, ビットスコアをタブ区切りで表示するプログラム #!/usr/bin/env ruby require 'bio' ff = Bio::FlatFile.auto(ARGF) print [ 'Query', 'Subject', 'AlignLen', 'eValue', 'BitScore' ].join("\t"), "\n" ff.each do |r| qdef = r.query_def.split[0] r.each_hit do |hit| hdef = hit.definition.split[0] hit.each do |hsp| alen = hsp.align_len evalue = hsp.evalue bscore = hsp.bit_score print [ qdef, hdef, alen, evalue, bscore ].join("\t"), "\n" end ff.close

30 今後の課題 対応データベース・ソフトウェアの拡大 より使いやすくするための改良・機能拡張 ドキュメントやサンプルの整備
BioRubyを使用したソフトウェアの開発 ソフトウェア作成支援ツールの開発 簡単なことならスクリプトを書かずにできるようにしたい

31 Acknowledgements BioRuby Developers Toshiaki Katayama Mitsuteru Nakao
Yoshinori Okuji Shuichi Kawashima Masumi Itoh Alex Gutteridge Moses Hohman and some other contributors on the internet.

32


Download ppt "BioRubyの開発と 遺伝子情報解析への応用 大阪大学遺伝情報実験センター ゲノム情報解析分野 後藤 直久 2005年1月21日."

Similar presentations


Ads by Google