More Related Content
More from Preferred Networks
More from Preferred Networks (20)
Prosym53
- 1. 逆サフィックスリンクを用いた プログラミングシンポジウム
2012/01/06〜08
塩基配列の曖昧検索 Preferred Infrastructure
概要 許容誤差 d が小さい場合は,パターンの近傍を
検索クエリに対し編集距離が一定以下の部分列を検 Suffix Array を用いて列挙する。その際、ある Suffix
索するアルゴリズム(曖昧検索)を実装し、塩基配列 の先頭に別の文字をつけたものの Suffix Array 上で
を曖昧検索するデモを構築した。 の位置を前計算し、インデックスとして保持する。
デモ画面 保持するインデックス
dna4 インデックス
文字数が 4 種である事を用いてビット単位で圧縮し
たインデックス
suffix array インデックス
fm インデックス
「ある Suffix の先頭に(文字列中にあるとは限らな
い)別の一文字をつけた文字列」の Suffix Array 中
での位置を前計算したインデックス
その他最適化
システム全体像 分割が均等になるように最初に分割の幅とそれぞれ
の許容誤差を決めてから再帰処理を行う
文章長を考慮して,パターンの最適な分割幅を調節
する
ノードでの許容誤差を徐々に増やしながら探索する
事で特殊ケースを除き検索を高速化できる.
フロントサーバーがクエリを受けつける。バックサ 実験
ーバーはインデックスを持ち、曖昧検索を行う。
文字列 4 種類(A, G, C, T)に限定し、ヒトの全染色体
問題設定 (約 32 億 5400 万塩基)に対し検索を行う。
文章 T,検索クエリ q、許容誤差 d が与えられたと 実験 1(パターン長一定,許容誤差率を変化)
き、T の部分列で、q との編集距離が d 以下のものを
列挙せよ。
前提知識 1:Suffix Array
文章 T の Suffix 全体をソートして並べたもの
例:T = abracadabra$の場合
実験 2(許容誤差率一定,パターン長を変化)
前提知識 2:分割統治法
配列 T に関する問題を、配列を 2 つに再帰的に分割
し、それぞれの配列に対する小問題として再帰的に問
題を解く。(例:クイックソート)
結果
誤差 20%以内ならば 10000 塩基程度でも 100 秒以
内に全列挙を行う事ができた
許容誤差率に対し指数関数的に検索時間が増加した
今後の展望
複数の生物種の塩基配列での相同検索
アルゴリズム概要 メタゲノム検索
許容誤差 d が大きい場合、パターンを分割し,そ 参考文献
れぞれに対して許容誤差(d-1)/2 の解を再帰的に求
める(鳩の巣原理)。それらのうち全体で d 以下 [1] Myers: A fast bit-vector algorithm for approximate
string matching based on dynamic programming. Journal
のもの返す。 of the ACM, 46(3): 395-415 1999.
逆サフィックスリンクを用いた塩基配列の曖昧検索 1