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

Slides:



Advertisements
Similar presentations
ITPASS Informational Training program with a spirit of self-help オプション課題の概要 高橋芳幸.
Advertisements

BioRuby BioRuby 入門 ― はじめてのプログラム言語 Naohisa Goto / 後藤直久 Genome Information Research Center, Research Institute for Microbial Diseases, Osaka Univ. 大阪大学微生物病研究所附属遺伝情報実験セン.
1 Layout Utilities の紹介 Layout Utilities とは、お客様のプログラムに 流し込み印刷を簡単に組み込めるソフトウエア開発ツールです 無償 流し込み印刷の例.
奈良女子大集中講義 バイオインフォマティクス (3) 配列アラインメント
KNOB CD-bootable Linux で開くバイオインフォマティクスの世界
MPIを用いたグラフの並列計算 情報論理工学研究室 藤本 涼一.
プログラミング言語ADP 大藤雄久.
The Perl Conference Japan ’98 朝日奈アンテナによる コンテンツ情報の取得と利用
植物系統分類学・第13回 分子系統学の基礎と実践
Java I 第2回 (4/18)
奈良先端大・情報・蛋白質機能予測学講座 川端 猛
BioRuby プロジェクト In-house R&D 環境のためのオープンソースプラットフォーム
全体ミーティング (4/25) 村田雅之.
JavaによるCAI学習ソフトウェアの開発
Perlによる競馬予想支援システムの構築
侵入検知システムの構築と ログの可読性向上
「絵葉書を通じてのハルビンの 街の印象調査」システムUIの iPadアプリ化 谷研究室  飯 祐貴.
伺か with なでしこ 発表者:しらたま /05/05 うかべん大阪#3.
分子生物情報学 動的計画法に基づく配列比較法 (ペアワイズアライメント法)
「まめだくん Ver.1.0」 特徴と利用方法.
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
共同ローカリゼーション フレームワーク 井上 謙次.
MATLAB測位プログラミングの 基礎とGT (1)
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
BioRuby プロジェクト In-house R&D 環境のためのオープンソースプラットフォーム
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
BioRubyにおける高速なBLAST結果処理機能の実装
アスペクト指向プログラミングを用いたIDSオフロード
東京大学空間情報科学研究センターを 中心とした空間情報データベースの整備
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
【プログラミング応用】 必修2単位 通年 30週 授業形態:演習.
2016年度 植物バイオサイエンス情報処理演習 第13回 情報解析(6) エクセルVBAによる遺伝子機能解析
第1回オープンバイオ研究会 w/ SIG-BMK.
Office IME 2010 を使う.
図書館職員のための アプリケーション開発講習会
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
実行時情報に基づく OSカーネルのコンフィグ最小化
2017年度 植物バイオサイエンス情報処理演習 第5回 公共データバンクの遺伝子情報
2018年度 植物バイオサイエンス情報処理演習 第5回 公共データバンクの遺伝子情報
平成30年度高知工科大学教職科目 微分方程式特論I 11 高知大学教育学部技術教育コース 北川 晃.
2016年度 植物バイオサイエンス情報処理演習 第6回 情報処理(4) データを加工する・2
数量分析 第2回 データ解析技法とソフトウェア
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
オープンソース開発支援のための リビジョン情報と電子メールの検索システム
分子生物情報学(2) 配列のマルチプルアライメント法
Fortranについて 高エネルギー加速器研究機構 平山 英夫.
ORI-GENE A Tool for Gene Classification and Prediction of Function Based on Evolutionary Tree Hideaki Mizuno, Yoshimasa Tanaka, Kenta Nakai, Akinori Sarai.
アプリケーション依存の先読みが可能なO/Rマッピングツール
植物系統分類学・第14回 分子系統学の基礎と実践
ネットワークプログラミング 05A1302 円田 優輝.
2018年度 植物バイオサイエンス情報処理演習 第12回 情報解析(2) 配列相同性解析・DNA
第二回 Javaの開発環境 04A2029           古賀慎也.
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
資料2-2 平成26年度 第2回技術委員会資料 次年度検討テーマ案
統計ソフトウエアRの基礎.
2017年度 植物バイオサイエンス情報処理演習 第11回 系統樹
2018年度 植物バイオサイエンス情報処理演習 第13回 メタゲノミクス
メソッドの同時更新履歴を用いたクラスの機能別分類法
2018年度 植物バイオサイエンス情報処理演習 第12回 次世代シーケンシング・RNA
MPIを用いた並列処理計算 情報論理工学研究室 金久 英之
Googleマップを活用した 生物調査データベースの構築
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
統合開発環境のための プログラミング言語拡張 フレームワーク
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
コンパイラ 2012年10月11日
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
集中講義(東京大学)「化学システム工学特論第3」 バイオインフォマティクス的手法による化合物の性質予測(1) バイオインフォマティクス概観
配列解析アルゴリズム特論 配列アライメントI
分子生物情報学(0) バイオインフォマティクス
就職活動.
Presentation transcript:

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

序論 データベース: 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, … http://bioinformatics.org/software/ http://sourceforge.net/ のBioinformaticsカテゴリ 組み合わせ 新たな生物学的知見

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

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

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

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

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

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

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

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

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

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種類のデータ形式に対応

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種類の解析ソフトウェアに対応

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

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

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

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

BLAST結果の例 Iteration Hit HSP HSP Hit HSP HSP Hit HSP バージョンReference BLASTN 2.2.6 [Apr-09-2003] 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:3389-3402. Query= ri|0610005A07|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|0610005A07|R000001A15|1277 contigs=2 ver=1 seqid=2 2531 0.0 ri|0610039M06|R000004L05|1061 contigs=2 ver=1 seqid=423 527 e-148 ri|4930431E11|PX00030N13|1181 contigs=2 ver=1 seqid=14024 333 6e-90 ri|1110004G14|R000015H01|1462 contigs=2 ver=1 seqid=1271 297 3e-79 ri|1700124M20|ZX00096C11|926 contigs=66 ver=1 seqid=52116 80 1e-13 ri|2900019E12|ZX00083B15|841 contigs=2 ver=1 seqid=21970 80 1e-13 ri|0610033N11|R000004G20|840 contigs=2 ver=1 seqid=368 80 1e-13 ri|9430011C20|PX00107J21|1874 contigs=4 ver=1 seqid=29908 62 3e-08 ri|B830049N13|PX00073P19|1106 contigs=2 ver=1 seqid=24417 62 3e-08 >ri|0610005A07|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|1110004G14|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|1700124M20|ZX00096C11|926 contigs=66 ver=1 seqid=52116 Length = 926 Posted date: Dec 7, 2003 4:50 PM Number of letters in database: 119,956,725 Number of sequences in database: 60,770 Lambda K H 1.37 0.711 1.31 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: 107501 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: 149453035510 effective search space used: 149453035510 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 統計情報など

Iteration Hit HSP HSP Hit HSP HSP Hit バージョンReference Queryの情報 BLASTN 2.2.6 [Apr-09-2003] 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:3389-3402. Query= ri|0610005A07|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|0610005A07|R000001A15|1277 contigs=2 ver=1 seqid=2 2531 0.0 ri|0610039M06|R000004L05|1061 contigs=2 ver=1 seqid=423 527 e-148 ri|4930431E11|PX00030N13|1181 contigs=2 ver=1 seqid=14024 333 6e-90 ri|1110004G14|R000015H01|1462 contigs=2 ver=1 seqid=1271 297 3e-79 ri|1700124M20|ZX00096C11|926 contigs=66 ver=1 seqid=52116 80 1e-13 ri|2900019E12|ZX00083B15|841 contigs=2 ver=1 seqid=21970 80 1e-13 ri|0610033N11|R000004G20|840 contigs=2 ver=1 seqid=368 80 1e-13 ri|9430011C20|PX00107J21|1874 contigs=4 ver=1 seqid=29908 62 3e-08 ri|B830049N13|PX00073P19|1106 contigs=2 ver=1 seqid=24417 62 3e-08 >ri|0610005A07|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|1110004G14|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|1700124M20|ZX00096C11|926 contigs=66 ver=1 seqid=52116 Length = 926 Posted date: Dec 7, 2003 4:50 PM Number of letters in database: 119,956,725 Number of sequences in database: 60,770 Lambda K H 1.37 0.711 1.31 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: 107501 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: 149453035510 effective search space used: 149453035510 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 統計情報など

Iteration Hit HSP HSP Hit HSP HSP バージョンReference Queryの情報 データベースの情報 BLASTN 2.2.6 [Apr-09-2003] 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:3389-3402. Query= ri|0610005A07|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|0610005A07|R000001A15|1277 contigs=2 ver=1 seqid=2 2531 0.0 ri|0610039M06|R000004L05|1061 contigs=2 ver=1 seqid=423 527 e-148 ri|4930431E11|PX00030N13|1181 contigs=2 ver=1 seqid=14024 333 6e-90 ri|1110004G14|R000015H01|1462 contigs=2 ver=1 seqid=1271 297 3e-79 ri|1700124M20|ZX00096C11|926 contigs=66 ver=1 seqid=52116 80 1e-13 ri|2900019E12|ZX00083B15|841 contigs=2 ver=1 seqid=21970 80 1e-13 ri|0610033N11|R000004G20|840 contigs=2 ver=1 seqid=368 80 1e-13 ri|9430011C20|PX00107J21|1874 contigs=4 ver=1 seqid=29908 62 3e-08 ri|B830049N13|PX00073P19|1106 contigs=2 ver=1 seqid=24417 62 3e-08 >ri|0610005A07|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|1110004G14|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, 2003 4:50 PM Number of letters in database: 119,956,725 Number of sequences in database: 60,770 Lambda K H 1.37 0.711 1.31 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: 107501 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: 149453035510 effective search space used: 149453035510 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 統計情報など

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

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

機能比較 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対応 ○ ○ × * 一部の統計情報には未対応

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

実行速度比較 所要時間(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) 751.067 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

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

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

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

応用例(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

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

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

http://bioruby.org/