新しい高速相同検索アルゴリズムを用いたゲノム解析ツールの開発

Slides:



Advertisements
Similar presentations
平面三角分割グラフを列挙す るアルゴリズムの改良 中野 眞一 ( 群馬大学 ) 宇野 毅明 ( 情報学研究 所 ) 2002 年 6 月 24 日 コンピューテーション研究会.
Advertisements

HBSP モデル上での 行列積を求めるアルゴリ ム 情報論理工学 吉岡健太.
A Simple Constant Time Enumeration Algorithm for Free Trees 中野 眞一 宇野 毅明 群馬大学 情報学研究所 2003 年 9 月 19 日 アルゴリズム研究会.
J: Magical Switches JAG 模擬地区予選 2013 原案:保坂 解答:保坂・楠本 解説:保坂.
ゲノムアルゴリズム ゲノムの仕組み 応用問題 アラインメントアルゴリズム ミスマッチトレランス 遺伝子発見問題.
到着時刻と燃料消費量を同時に最適化する船速・航路計画
区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
いいプログラムは コーディング技術だけではない
高度情報演習1A “テーマC” 実践 画像処理プログラミング 〜画像認識とCGによる画像生成〜 第四回 演習課題 画像中からの物体抽出処理(背景情報を手がかりとして) 芝浦工業大学 工学部 情報工学科 青木 義満 2006/05/15.
パネル型クエリ生成インタフェース画像検索システムの改良
LZ圧縮回路の設計とハード・ソフト 最適分割の検討 電子情報デザイン学科 高性能計算研究室 4回生 中山 和也 2009/2/27.
極小集合被覆を列挙する 実用的高速アルゴリズム
文字列の類似構造発見問題と 複数分類アルゴリズム
On the Enumeration of Colored Trees
整数計画法を用いた スリザーリンクの解法 杉村 由花 (東京大学)
An Algorithm for Enumerating Maximal Matchings of a Graph
分子生物情報学 動的計画法に基づく配列比較法 (ペアワイズアライメント法)
「データ学習アルゴリズム」 第3章 複雑な学習モデル 3.1 関数近似モデル ….. … 3層パーセプトロン
遺伝アルゴリズムによる NQueen解法 ~遺伝補修飾を用いた解探索の性能評価~
データ構造と アルゴリズム 第二回 知能情報学部 新田直也.
宇野 毅明 (国立情報学研究所 &総合研究大学院大学)
宇野 毅明 (国立情報学研究所 &総合研究大学院大学)
データ構造と アルゴリズム 知能情報学部 新田直也.
宇野 毅明 国立情報学研究所 2002年3月 東北大大学院 情報科学研究科ワークショップ
疑似頻出アイテム集合の 多項式遅延列挙アルゴリズム
最短路問題のための LMS(Levelwise Mesh Sparsification)
高山建志 五十嵐健夫 テクスチャ合成の新たな応用と展開 k 情報処理 vol.53 No.6 June 2012 pp
二分探索木によるサーチ.
宇野 毅明 (国立情報学研究所 &総合研究大学院大学)
静的情報と動的情報を用いた プログラムスライス計算法
ゲノムアルゴリズム ゲノムの仕組み 応用問題 アラインメントアルゴリズム ミスマッチトレランス 遺伝子発見問題.
MPIを用いた並列処理 ~GAによるTSPの解法~
生命情報学入門 配列のつなぎ合わせと再編成
決定木とランダムフォレスト 和田 俊和.
奈良女子大集中講義 バイオインフォマティクス (9) 相互作用推定
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
グラフアルゴリズムの可視化 数理科学コース 福永研究室 高橋 優子 2018/12/29.
近年の列挙技術の進展 ー 計画立案と解法 ー 宇野 毅明 (情報学研究所) 有村 博紀 (北海道大学) 中野 眞一 (群馬大学)
利用関係に基づく類似度を用いたJavaコンポーネント分類ツールの作成
実行時情報に基づく OSカーネルのコンフィグ最小化
情報検索(6) メディア検索の仕組み 教員 岩村 雅一
リファクタリング支援のための コードクローンに含まれる識別子の対応関係分析
分子生物情報学(2) 配列のマルチプルアライメント法
A Simple Algorithm for Generating Unordered Rooted Trees
Data Clustering: A Review
Webコミュニティ概念を用いた Webマイニングについての研究 A study on Web Mining Based on Web Communities 清水 洋志.
数独の解生成と 解に対する番号付け 理学部 情報科学科 渡辺研究室 戸神星也.
サポートベクターマシンを用いた タンパク質スレッディングの ためのスコア関数の学習 情報科学科4年 81025G 蓬来祐一郎.
第4章 社会構造概念はどのように豊穣化されるか
2018年度 植物バイオサイエンス情報処理演習 第12回 情報解析(2) 配列相同性解析・DNA
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
ベイジアンネットワーク概説 Loopy Belief Propagation 茨城大学工学部 佐々木稔
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
コーディングパターンの あいまい検索の提案と実装
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
宇野 毅明 (国立情報学研究所 &総合研究大学院大学)
第16章 動的計画法 アルゴリズムイントロダクション.
短い部分文字列の ミスマッチトレランスを 高速計算するアルゴリズム
大規模ネットワークに対する 実用的クラスタ発見アルゴリズムの開発
構造的類似性を持つ半構造化文書における頻度分析
クローン検出ツールを用いた ソフトウェアシステムの類似度調査
大規模データ処理に対する アルゴリズム理論からのアプローチ
4.プッシュダウンオートマトンと 文脈自由文法の等価性
「データ学習アルゴリズム」 第3章 複雑な学習モデル 報告者 佐々木 稔 2003年8月1日 3.2 競合学習
確率的フィルタリングを用いた アンサンブル学習の統計力学 三好 誠司 岡田 真人 神 戸 高 専 東 大, 理 研
参考:大きい要素の処理.
情報生命科学特別講義III (3)たたみ込みとハッシュに 基づくマッチング
MPIを用いた 並列処理 情報論理工学研究室 06‐1‐037‐0246 杉所 拓也.
ベイジアンネットワークと クラスタリング手法を用いたWeb障害検知システムの開発
プログラミング論 バイナリーサーチ 1.
Presentation transcript:

新しい高速相同検索アルゴリズムを用いたゲノム解析ツールの開発 宇野 毅明  (国立情報学研究所) 2007年 5月10日 国立遺伝学研究所

もし、相同領域を短時間で行えるようになるなら、 ゲノム解析(相同領域発見)の困難さ ・ ここ数十年の計算機の進歩は目覚しいものがあるが、ゲノムの解析を短時間で行うにはまだ不十分   ソフトにより性能は異なるが、100万文字の配列(文字列)2つを比較するのにもかなり(数分から数時間)かかる   染色体のような、数億文字ある配列の比較には多大な計算資源が必要   他にも、ショットガンシークエンスから行うアセンブリング、BAC配列の比較、固有な部分配列の同定など、計算資源を必要とする問題は多い もし、相同領域を短時間で行えるようになるなら、 それがゲノム研究に与える影響は大きい

アルゴリズム理論 ・ 計算の高速化において、並列計算は強力であるが、コストがかかるのが欠点 (プログラミングの複雑さも含め)  アルゴリズム理論 ・ 計算の高速化において、並列計算は強力であるが、コストがかかるのが欠点 (プログラミングの複雑さも含め) ・ アルゴリズム理論による高速化は、問題の大きさに対する計算時間の増加を、計算手法の設計変更により、抑える 100項目 2-3倍 100万項目 10000倍 データが巨大になるほど、アルゴリズム改良の加速率は上がる 相同領域発見に取り組んでみる

相同領域発見の研究(アルゴリズム的) ・ 2つ文字列の編集距離(挿入/削除/変化の最小数)は最短路アルゴリズムを使って、ある程度高速に求められる   2つの文字列が似ていないと有効でない   入れ替わり構造は発見できない ・ BLASTを始めとする相同発見アルゴリズム (例えば11文字の)短い完全一致領域を見つけ、そこを種として検索   文字列が長いと、大量の完全一致がある   11文字を長くすると精度が落ちる   良く現れる単語は候補から除外、遺伝子部分だけ注目     といった処理をしているようだ ・ 類似検索   大量のクエリを実行しなければならない     類似検索は通常、完全一致検索より大幅に時間がかかる

問題設定:短い文字列の比較 問題: 各項目が同じ長さ l の短い文字列(50文字程度)であるデータベースを入力したときに、文字列のペアで異なり数(ハミング距離)が d 文字以下である組を全て見つけよ ・ この問題を高速に解くアルゴリズム SACHICA (Scalable Algorithm for Characteristic/Homology Interval CAlculation )を開発した (全対比較や類似検索よりも高速) ・ 長くて、ある程度似ている配列は、このような似ている部分列を必ずある一定数以上含む ATGCCGCG GCGTGTAC GCCTCTAT TGCGTTTC TGTAATGA   ... ・ ATGCCGCG と AAGCCGCC ・ GCCTCTAT と GCTTCTAA ・ TGTAATGA と GGTAATGG      ...

ゲノムの比較 ・ 比較するゲノムを、オーバーラップさせてスライスし、全対比較 ・ 縦横に比較するゲノムをおき マトリクスを作って類似するペアが あるセルの色を白くする(各ピクセル内の 個数によって色の強弱をつける) ・ 長さα、幅βの領域にいくつかのペアが あるときのみ、色を白くする  長さαの部分配列が、誤差 k %弱で 似ているなら、必ず 誤差 k %で似て いる短い部分列がいくつかある 例:長さ3000で10%弱(間違い290)なら、 長さ30で間違い2の部分列を、少なくとも3つは含む

ゲノムの比較 (1) ヒト21番染色体とチンパンジー22番染色体の比較 ・長さ3000万の配列×2 から、30文字の切片を3000万個取る ・ 似ている部分配列のペアの数に応じて、各ドットの明るさを変える ・ 白い部分が 「似ている可能性のある部分」 ・ 黒い部分が 「(絶対に)似ていない部分」 ・ 格子模様は、繰り返し   配列を拾っている ヒト 21番染色体 チンパンジー22番染色体 PCで 1時間で可能

ゲノムの比較 (2) ヒトX染色体とマウスX染色体の比較 ・ 30文字で間違い2文 字以下のペアを列挙 ・ 長さ3000、幅300 の領域に3つペア があれば点を打つ (誤差10%弱で似て いるものは、必ず3つ のペアを含む) ・ ノイズをかなり 除去できている ヒトX番染色体 マウスX染色体 PCで 2時間で可能

バクテリアを30種 ABC順の取得し つなげて比較 ・ 一度に複数の ゲノムを比較できる ゲノムの比較 (3) バクテリアを30種 ABC順の取得し つなげて比較 ・ 一度に複数の ゲノムを比較できる PCで 1時間で可能

(マイクロアレイ用の)固有な配列のデザイン ・ マイクロアレイの設計には、ゲノム配列中でなるべく他の部分と似ていない配列が使えるとありがたい ・ 配列の長さは20文字、のように決まっているので、 対象となるゲノムの全て20文字の部分配列を比較し、 似ているものがないもの、を見つければよい ・ 似ている文字列の数、はある種の統計量として利用できるかもしれない 100Mベース、25文字、間違い2文字まで、くらいなら PCで 1時間で可能

1万 EST で、PCで 10分で可能 (向きを考えれば5000) ・ EST配列(500文字程度?)をつなげて contig を作るときには、どことどこがつながるかを調べるために、どことどこが似ているかを調べる必要がある (重なり部分が端まで来ているもののみを見つける必要がある) ・ 似ている部分、ではなく、ほとんど同じ、でよいので、計算は多少楽) ・ マスクをかける、といったこともできる 1万 EST で、PCで 10分で可能 (向きを考えれば5000)

反復配列の検出 ・ 1つの文字列の内部を比較して、似てる部分を見つけたら、それを出力せずに、数を勘定することにする  各位置について、「何回現れるか」がわかる ・ 最後に、「5回以上現れた部分配列で100文字以上のもの」のように指定して出力すると、反復配列の候補が出る 今までのものとほぼ同じ計算時間

BAC配列の比較 ・ ゲノム全体の配列を決める際には、BAC同士がどのようにつながるかを調べる必要がある ・ しかし、どの配列とどの配列がオーバーラップしているか調べるのは、大変。(前述のアセンブリをミスしていると、微妙に異なるところが出て、重ならなくなる) ・ 例えば、重なりそうな BACのアセンブリをやり直す ことで、より正確なContig が 作れるかもしれない PCで 1ペア1秒

(生物学的な)課題点 ・ マウス13番染色体の未解読領域に適用を行っている  既にいくつかの空白部分が埋まった ・ 比較は高速にできるようになった。だが、比較結果をどう使うか、何に留意する必要があるか、といった点は、まだまだ明らかでない - 実験の指針を出すためには、   何を出力する必要があるか - どの程度の精度が必要か - どこまで処理を自動化すべきか - エラーをどのように扱うべきか  既存のアセンブリングソフト (phred/phrap/consed)では見つからない、 特殊な重なり方をしている相同領域が 見つかる。どう解釈すべきか?

(情報学的・システム的な)課題点 ・ 相同検索としての能力は高い ・ しかし、細かい部分で既存のソフトに劣る - アラインメントが取れない - ゲノム固有の制限を入れていない - データベースと連携していない - インストーラ、GUIがない - 実験誤差データを考慮していない - オンラインサービスをするべき ・ 既存のソフトウェアとの連携を 進めていくべきだろう

問題設定:短い文字列の比較 問題: 各項目が同じ長さ l の短い文字列(50文字程度)であるデータベースを入力したときに、文字列のペアで異なり数(ハミング距離)が d 文字以下である組を全て見つけよ ・ この問題を高速に解くアルゴリズム SACHICA (Scalable Algorithm for Characteristic/Homology Interval CAlculation )を開発した (全対比較や類似検索よりも高速) ・ 長くて、ある程度似ている配列は、このような似ている部分列を必ずある一定数以上含む ATGCCGCG GCGTGTAC GCCTCTAT TGCGTTTC TGTAATGA   ... ・ ATGCCGCG と AAGCCGCC ・ GCCTCTAT と GCTTCTAA ・ TGTAATGA と GGTAATGG      ...

問題の難しさ ・ 全ての項目が同じだと、O(項目数2) 個の出力がある  l を定数だと思えば、単純な全対比較のアルゴリズムが      計算量の意味では最適になる    計算量理論的には面白くない問題 ・ 現実には、やたらと似ているものがあるものを比較しても意味が無い    出力は少ないと仮定する ATGCCGCG GCGTGTAC GCCTCTAT TGCGTTTC TGTAATGA   ... ・ ATGCCGCG と AAGCCGCC ・ GCCTCTAT と GCTTCTAA ・ TGTAATGA と GGTAATGG      ...

基本のアイディア:文字列の分割 ・ 各文字列を、k(>d) 個のブロックに分割する ・ k-d 個のブロックの場所を指定したときに、そこがまったく等しくて、かつハミング距離がd 以下となるようなペアを全て見つけよ、という部分問題を考える  各文字列の k-d 個のブロックをつなげてキーにし、ソートをする。同じものはグループになる。それを総当りで比較すればよい ・ k-d 個のグループ数が大きければ、平均的にグループのメンバー数は小さくなるので、総当りで比較してもたいしたことない

全ての場合を尽くす ・ 先の部分問題を、全ての場所の組合せについて解く  2つの文字列が似てれば、必ずどこか k-d 個のブロックが同じ  必ずどれかの組合せで見つかる ・ 部分問題は、バケツソートやRadixソートで速く解ける ・ 組合せの数は kCd 。のk=5 で d=2 なら10通り    ソート10回 +α で解ける。全対比較よりもかなり高速 ・各文字の数から、1文字比較した場合に等しくなる確率を求め、適切な分割数 k を使用する

・ ABC、ABD、ACC、EFG、FFG、AFG、GAB のペアでハミング距離が1以下のものを求めよ 例題 ・ ABC、ABD、ACC、EFG、FFG、AFG、GAB のペアでハミング距離が1以下のものを求めよ A B C A B D A C C E F G F F G A F G G A B G A B A B C A B D A C C E F G F F G A F G A B C A C C A B D A F G E F G F F G G A B A B C A B D A C C A F G E F G F F G G A B

メモリに解を保持せずとも、重複が回避できる 重複の回避 ・ まったく同じ文字列があると、全てのブロックの組合せで見つかるので、 kCd 。回出力される   重複を回避する必要がある ・ 各見つかったペアについて、選択されていないブロックが選択したブロックの間にあったら出力しないようにする   等しいブロックが一番左端によっている場合にのみ出力 メモリに解を保持せずとも、重複が回避できる

イメージ的には ・ 似ているもののペアを探す問題は、マトリクスのセルの中で必要なものを全て見つける問題 ・ 全対比較は、マトリクスのセルをすべて見ていることに対応 ・ 分類によるアルゴリズムは、 分類を順々にしていると思えば、 木構造の探索を行っていることに対応

(全部の比較と一部の比較の速度があまり変わらない) なぜBLASTより速くできるのか? ・オリジナルのBLASTは、連続して11文字同じところを見つける   大雑把に言って、分類精度は、4の11乗 ≒ 400万   100万塩基あたりから苦しそう ・ 今回の手法は、例えば 30文字中間違い3文字(連続して7文字同じ、と同じ精度)で6個に分割するなら、  大雑把に、分類精度は、4の15乗 ≒ 10億を20回   2億塩基あたりから苦しいが、そうなったら分割数を7にすればいい ただし、(短い配列の)検索は苦手 (全部の比較と一部の比較の速度があまり変わらない)

人のY染色体から部分配列をとって実験。PenMのノートPC 実験:長さ20文字で異なり数 d を変化 人のY染色体から部分配列をとって実験。PenMのノートPC

実は、情報の人間は良く知らない ・ 情報(特にアルゴリズム理論)の研究者の多くは、ゲノムの問題の実情を良くわかっていない、と思われる  - 最も重たい計算は、遺伝ネットワークでの最適化問題ではなく、相同検索である  - 相同検索は、全体をアラインメントで比較するだけでなく、部分的な比較を必要とする  - ゲノムの読み取りは、DNAをぶつ切りにしてつなぎあわせる  - BLAST、 phred/phrap/consed というソフトがある  - 単なる相同検索だけでなく、固有配列や反復配列の発見、オーバーラップの検出が必要である ・ しっかりと問題を聞かなければいけない

データベースから類似する項目を見つける ・ データベースの項目の中で、似た項目のペアを全て見つけたい (項目のペア全てについて、 2項関係が成り立つかを調べる) ・ 類似している項目の検出は、  データベース解析の基礎的な手法   基礎的なツールがあれば、使い方しだいで いろいろなことができる (大域的な類似性、データの局所的な関連の構造・・・)

グラフのクリーク: 部分グラフで、全ての頂点間に枝があるもの (2部クリーク:完全2部グラフになっている部分グラフ) クリーク列挙問題 グラフのクリーク: 部分グラフで、全ての頂点間に枝があるもの   (2部クリーク:完全2部グラフになっている部分グラフ) ・ クリークは、グラフの中の密な構造をあらわす   クラスタ、コミュニティーなどをあらわす ・ 極大クリークの列挙は比較的高速にできる(秒速10万個) ・ クリークっぽい構造の列挙もできる

・ データベースの中に多く現れるパターンを頻出パターンという  データの解析、特徴分析、知識・ルール発見に使える 頻出パターンの列挙 ・ データベースの中に多く現れるパターンを頻出パターンという   データの解析、特徴分析、知識・ルール発見に使える データベース 頻出する パターンを抽出 ・ 実験1● ,実験3 ▲ ・ 実験2● ,実験4● ・ 実験2●, 実験3 ▲, 実験4● ・ 実験2▲ ,実験3 ▲     . 実験1 実験2 実験3 実験4  ●  ▲ ATGCGCCGTA TAGCGGGTGG TTCGCGTTAG GGATATAAAT GCGCCAAATA ATAATGTATTA TTGAAGGGCG ACAGTCTCTCA ATAAGCGGCT ・ ATGCAT ・ CCCGGGTAA ・ GGCGTTA ・ ATAAGGG     . 実験結果 ゲノム情報 ・ グラフ、木、文字列、時系列など、多くのパターンが扱える ・ 頻出パターンの列挙は、通常非常に高速で行える ・ 実験結果から分類規則を見つけることができる

各種最適化問題 最適化問題: 与えられた条件を満たす解の中で、評価値が最も良いもの、あるいはかなり良いものを見つける問題 ・ グラフ構造:パス、木、サイクル、クリーク、マッチング ・ 文字列構造: 部分文字列、シークエンス ・ 集合構造: カバー ・ 平面構造: 四角、直線、詰め込み、 ・ 問題によって、解法をデザインする必要があるが、比較的見通しが明るいことが多い

… 各種サブグラフ列挙問題 列挙問題: 与えられた問題の解を全て重複なく見つけ出す問題 ・ グラフの2点間を結ぶパス ・ グラフのサイクル ・ 部分木 ・ マッチング ・ 全張木 ・ 高速だが、解の数が大きい ・ サイクルの代わりにコードレス サイクルを使う、といった工夫が必要 A B …

まとめ ・類似する項目のペアを列挙する、出力数依存型のアルゴリズム 異なりの場所に注目し、分類による絞込みを行う   異なりの場所に注目し、分類による絞込みを行う ・ 部分的な比較を用いて、大域的な類似構造を検出するモデル  - ゲノムの比較: ヒト、チンパンジー、マウスの染色体の比較              バクテリアゲノムの多対多比較  - EST配列のマスク、オーバーラップ検出  - BAC配列の全対比較  - 固有部分配列の発見 ・ツールとしての完成度を高める(UI、解の圧縮など) ・機能の追加