120 likes | 235 Views
長さの制限付きギャップと 文字クラスを含むパタンに対する 照合アルゴリズムの改善. 九州大学附属図書館 喜 田 拓 也. 長さの制限付きギャップと文字クラス. PROSITE パタン タンパク質検索で用いられるパタン 例: C- x (2,4)-C- x (3)-[LIVMFYWC]- x (8)-H- x (3,5)-H 長さの制限付きギャップ a 以上、 b 以下のギャップ x ( a , b ), x ( a )= x ( a , a ) 文字クラス(文字種) 文字の集合 [abc…]. これまでの手法.
E N D
長さの制限付きギャップと文字クラスを含むパタンに対する照合アルゴリズムの改善長さの制限付きギャップと文字クラスを含むパタンに対する照合アルゴリズムの改善 九州大学附属図書館 喜 田 拓 也
長さの制限付きギャップと文字クラス • PROSITEパタン タンパク質検索で用いられるパタン 例: C-x(2,4)-C-x(3)-[LIVMFYWC]-x(8)-H-x(3,5)-H • 長さの制限付きギャップ a以上、b以下のギャップ x(a, b), x(a)=x(a, a) • 文字クラス(文字種) 文字の集合 [abc…]
これまでの手法 • 文字クラスに対する文字列照合アルゴリズム • Shift-And法 (Abrahamson 1987, Wu-Manber 1992)→ O(m|| + m/wn) • 正規表現パタンに対する文字列照合 • DFAへ変換 → O(2m+n)時間 • NFAへ変換 → O(m×n)時間 • PROSITEパタンに対する文字列照合アルゴリズム • Gaps-Shift-And法 (Navarro and Raffinot 2001)→ O( Pmax/w×n)
b a a b a 0 1 2 3 4 5 c 文字クラスを含んだパタン照合Shift-And法のアイデア • パタン a-a-b-a-[bc]を検出するNFA aababcaabacab テキスト:=
a 0 a 1 0 0 1 0 0 1 1 1 1 0 1 1 0 0 1 0 1 1 0 b 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 a 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 [bc] 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 Shift-And法の動作 a-a-b-a-[bc] パターン:= abc aababcaabacab テキスト:= ビット列 B & D ((D << 1) | 0m1) & B[ tj ]
c a b e f 0 1 2 3 4 5 6 7 8 d ba = 2 a = 1 b = 3 ギャップ付きShift-And法のアイデア • パタン a-b-[cd]-x(1,3)-e-fを検出するNFA
c a b e f 0 1 2 3 4 5 6 7 8 d I: 00100000 F: 00000100 F I: 00111000 Gaps-Shift-And法におけるNFAの状態遷移の模倣 • Shift-And法の状態更新D ((D << 1) | 0m1) & B[ tj ] • 遷移の模倣DD | (( F ( D & I )) & F )
c a b e f 0 1 2 3 4 5 6 7 8 d D: 00111000 Gaps-Shift-And法改良のアイデア • 5の状態に注目! 00011100 00001100 00000100
=( 0 0 0 0 0 1 0 1)= 1 1 1 1 1 0 1 0 C85 カウンタ Clk • 整数 k1 を2進数で表現したビット列を反転したビット列で長さが lのものを Clkとする。 k 回インクリメント (+ 5) 1 1 1 1 1 1 1 1 + 1 長さlog2(k+1) +1 0 0 0 0 0 0 0 0
LongGaps-Shift-And法の計算 • Shift-And法の状態更新D’ ((D << 1) | 0m1) & B[ tj ] • 新たにアクティブになったギャップ開始地点の検出A ( F ( D’ & I )) &F )カウンタのリセットC & A (ここで Cはカウンタの初期ビット列) • インクリメントされるカウンタの検出Dc (G A) & D (G はカウンタの位置をマスクするビット列)カウンタのインクリメント( Dc + (( Dc >> (lmax 1)) & I )) & G • 状態更新の式D D’ & G | C & A | (Dc + (( Dc >> (lmax 1)) & I )) & G
LongGaps-Shift-And法とGaps-Shift-And法との要ビット数の比較LongGaps-Shift-And法とGaps-Shift-And法との要ビット数の比較
まとめ • NavarroとRaffinot[2001]が提案したGaps-Shift-And法を基に、長いギャップでも少ないビット列で計算可能なLongGaps-Shift-And法を開発した • 実装・実験はこれから • ・・・たぶん、遅い・・・(演算回数が2倍以上!) • ギャップの下限a が上限b に近いと効果がない • PROSITEパタンはギャップが短いのがほとんど (ToT)