生物情報ソフトウェア特論 (3)近似文字列マッチング 阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター.

Slides:



Advertisements
Similar presentations
組合せ最適化輪講 2.3 連結性 川原 純. 2.3 連結性 内容 – グラフ上の節点をすべてたどるアルゴリズム 計算機上でのグラフの表現 – 強連結成分を求めるアルゴリズム トポロジカル順序を求める方法も – k- 連結、 k- 辺連結について – 2- 連結グラフの耳分解について.
Advertisements

奈良女子大集中講義 バイオインフォマティクス (3) 配列アラインメント
情報生命科学特別講義III (5)配列アラインメント
阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
木構造および化学構造に対する特徴ベクトル: 埋め込み、検索、構造推定
区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
情報生命科学特別講義III (1) 文字列マッチング
簡潔データ構造 国立情報学研究所 定兼 邦彦.
ヒープソートの演習 第13回.
近似アルゴリズム 第10章 終了時刻最小化スケジューリング
第11回 整列 ~ シェルソート,クイックソート ~
情報生命科学特別講義III (8)木構造の比較: 順序木
データ構造と アルゴリズム 理工学部 情報システム工学科 新田直也.
分子生物情報学 動的計画法に基づく配列比較法 (ペアワイズアライメント法)
奈良女子大集中講義 バイオインフォマティクス (6) モチーフ発見・隠れマルコフモデル
集中講義(九州大学数理学研究院) バイオ構造データに対する数理モデルと アルゴリズム(3) + 数理談話会 木構造および画像データの文法圧縮
阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
データ構造と アルゴリズム 知能情報学部 新田直也.
岩井 儀雄 コンピュータ基礎演習  ー探索、整列ー 岩井 儀雄
京都大学 化学研究所 バイオインフォマティクスセンター
集中講義(九州大学数理学研究院) バイオ構造データに対する数理モデルと アルゴリズム(5) 木構造データ間の編集距離
情報生命科学特別講義III (7)進化系統樹推定
データ構造と アルゴリズム 第十一回 理工学部 情報システム工学科 新田直也.
アルゴリズムとデータ構造 第7回探索のためのデータ構造(1) 2015/11/18 アルゴリズムとデータ構造 2015.
第11回 整列 ~ シェルソート,クイックソート ~
生物情報ソフトウェア特論 (1) 文字列マッチング・データ構造
情報生命科学特別講義III (11) RNA二次構造予測
k 個のミスマッチを許した点集合マッチング・アルゴリズム
生物情報ソフトウェア特論 (8) RNA二次構造予測
生物情報ソフトウェア特論 (3)近似文字列マッチング
情報生命科学特別講義III (4)近似文字列マッチング
阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
情報生命科学特別講義III (2)文字列データ構造
九州大学大学院 情報学専攻特別講義 (9) ブーリアンネットワークの 解析と制御
決定木とランダムフォレスト 和田 俊和.
奈良女子大集中講義 バイオインフォマティクス (9) 相互作用推定
阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
7.4 Two General Settings D3 杉原堅也.
第14章 モデルの結合 修士2年 山川佳洋.
阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
第9回 優先度つき待ち行列,ヒープ,二分探索木
九州大学大学院 情報学専攻特別講義 (3) 配列解析
分子生物情報学(2) 配列のマルチプルアライメント法
情報生命科学特別講義III (13) 固定パラメータアルゴリズムと 部分k木
計算の理論 II 計算量 月曜5校時 大月美佳 2019/4/10 佐賀大学理工学部知能情報システム学科.
分子生物情報学(3) 確率モデル(隠れマルコフモデル)に 基づく配列解析
阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
九州大学大学院 情報学専攻特別講義 (2) 配列アラインメント
九州大学大学院 情報学専攻特別講義 (4) RNA二次構造予測
九州大学大学院 情報学専攻特別講義 (6) 固定パラメータアルゴリズムと 部分k木
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
「データ学習アルゴリズム」 第3章 複雑な学習モデル 報告者 佐々木 稔 2003年6月25日 3.1 関数近似モデル
データ構造とアルゴリズム (第5回) 静岡大学工学部 安藤和敏
生物情報ソフトウェア特論 (8) RNA二次構造予測
第9回 優先度つき待ち行列,ヒープ,二分探索木
Max Cut and the Smallest Eigenvalue 論文紹介
九州大学大学院 情報学専攻特別講義 (8) ニューラルネットワークの 離散モデル
情報工学概論 (アルゴリズムとデータ構造)
奈良女子大集中講義 バイオインフォマティクス (7) 進化系統樹
情報生命科学特別講義III (14) グラフの比較と列挙
4.プッシュダウンオートマトンと 文脈自由文法の等価性
生命情報学特論 (6) 固定パラメータアルゴリズムと 部分k木
生物情報ソフトウェア特論 (4)配列解析II
阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター
情報生命科学特別講義III (3)たたみ込みとハッシュに 基づくマッチング
生物情報ソフトウェア特論 (10)固定パラメータアルゴリズムと 部分k木
集中講義(東京大学)「化学システム工学特論第3」 バイオインフォマティクス的手法による化合物の性質予測(1) バイオインフォマティクス概観
配列解析アルゴリズム特論 配列アライメントI
分子生物情報学(0) バイオインフォマティクス
Presentation transcript:

生物情報ソフトウェア特論 (3)近似文字列マッチング 阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター

講義予定 第1回 : 文字列マッチング・データ構造 第2回: たたみ込みとハッシュに基づくマッチング 第3回: 近似文字列マッチング 第4回: 配列解析 第5回: 木構造の比較:順序木 第6回: 木構造の比較:無順序木 第7回: 文法圧縮 第8回: RNA 二次構造予測 第9回: タンパク質立体構造の予測と比較 第10回: 固定パラメータアルゴリズムと部分 k 木 第11回: グラフの比較と列挙 第12回: ニューラルネットワークの離散モデル

近似文字列マッチング

近似文字列マッチング: 問題の定義 入力: 出力: 以下の条件を満たす T 中のすべての位置 j  P と は誤差 k 以内でマッチ 誤差の種類 : (A) 文字が異なる (B) 1 文字挿入 (C) 1 文字削除 例: P=bcde, T=abcdfebde, k=1 例: P=bcdefgh, T=abxdyeghij, k=3 編集距離 : P と T の距離が k ⇔ P と T の誤差が k

近似文字列マッチング: 動的計画法アルゴリズム 例: P=caab, T=bccabac ⇒ O(mn) 時間

Landau-Vishkin アルゴリズム

Landau-Vishkin アルゴリズム: アイデ ア アイデア: たてのものをななめ に見る 対角線 d : j-i=d を満たす D[i,j] の集 合 表 L[d,e] : L[d,e]=i ⇔ D[i,j]=e かつ j-i=d を満たす最大の行が i 例: 下の表で、 L[3,0]=0, L[3,1]=3, L[3,2]=4 L[d,e] の性質 必要な記憶領域は O(kn)  対角線の総数は O(n)  L[d,e] は e ≦ k までで十分 対角線に沿って単調増加

Landau-Vishkin アルゴリズム 定理: 近似文字列マッチングは O(kn) 時間で実行可 能 (略証) 計算量の解析で問題となるのは while ループ。 しかし、 suffix tree を用いれば、 while ループは 1 回あたり O(1) 時間で実行可能。 アルゴリズム の中心部分

接尾辞木の利用 while ループ(極大伸長部分列検出)の O(1) 時間での実行方法 S=P#T$ についての接尾辞木を構成 P row+1 に相当する箇所 S[row+1..m+n+2] に対応する葉を x とする t row+1+d に相当する箇所 S[row+m+2+d..m+n+2] に対応する葉を y とする x と y の LCA ( lowest common ancestor )が 該当部分列に対応 LCA の計算は O(log n) ビット長ワードの定数 時間演算を仮定する と定数時間で可能

Don’t Care 記号つき 近似文字列マッチング [Akutsu: Inf. Proc. Lett. 1995]

Don’t Care つき近似文字列マッチング: 問題の定 義 問題: P,T のどちらにも Don’t Care 記号( *:任意の1文字とマッチ可能)が入って 良いとした近似文字列マッチング 例: P=bc*eghi, T=a*cdefgij, k=2

Don’t Care つき近似文字列マッチング: アイデア アイデア: 二つの方法を組み合わせてバランスを とる Landau-Vishkin アルゴリズムの利用 while ループの p row+1 =t row+d+1 を次のように変更 p row+1 = * or t row+d+1 = * or p row+1 =t row+d+1 ⇒ しかし、ループの実行が最悪で O(m) 時間かかる テーブルの 利用 ⇒ ループの実行が O(M) ⇒ 全体で O(kMn)

定理: Don’t Care 記号つき近似文字列マッチング は 時間で実行可能 Don’t Care つき近似文字列マッチング: テーブルの 構成 W[r,j] : を満たす最大の h テーブル W[r,j] の構成 テーブル全体のサイズは O((m/M)n) 構成はたたみ込み法により O((m/M)n log m )時間 テーブル作成とマッチングのバランス

編集距離の埋め込みと 局所性鋭敏型ハッシュ [Andoni, Indyk: CACM 2008]

編集距離の埋め込み 埋め込み: X を距離 ρ 、 Y を距離 σ を有する距離空間とする時、以下を 満たす X から Y への関数 Φ を、 X から Y への歪み率 D の埋め込みとよ ぶ 定理: 長さ n の文字列に対する編集距離は O(n 2 ) 次元の L 1 空間 に歪み率 で埋め込み可能 [Ostrovsky, Rabani: J. ACM 2007] 定理: 長さ n の文字列に対する編集距離の L 1 空間への埋め込みの歪み率 は Ω(log n) [Krauthgamer, Rabani: Proc. SODA 2006] 定理: 長さ n の文字列に対する編集距離の log(n) O(1/ε) 近似は O(n 1+ε ) 時間 で計算可能 [Andoni et al.: Proc. FOCS 2010] 定理: 移動操作を許した場合、長さ n の文字列に対する編集距離は L 1 空 間に歪み率 O(log n ・ log * n) で埋め込み可能 [Cormode, Muthukrishnan: ACM Trans. Alg. 2007] 埋め込んだ後では高次元空間での探索が必要 ⇒ 局所性鋭敏型ハッシュ

局所性鋭敏型ハッシュ (Locality Sensitive Hashing) 高次元データの探索 Kd 木などが使われるが、一般に次元が高いと難しい ⇒アイデア: 多少のあいまい性を許す 近似近傍探索 (Approximate Neighbor Search) 入力: d 次元の点集合 P (|P|=n), 質問点 q, 距離 r 出力: d(p,q) ≦ r を満たす点が あれば、 yes ( p も 出力 ) d(p,q) ≦ (1+ε)r を満たす 点が なければ、 no それ以外はどちらでも OK

局所性鋭敏型ハッシュ関数族 F が (r,r(1+ε),α,β)- 局所性鋭敏型ハッシュ関数族 ⇔ h を F からランダムに選んだ時、(∀ p ) 以下が満たされる d(p,q) ≦ r ならば、 Pr[h(p)=h(q)] ≧ α d(p,q) > (1+ε)r ならば、 Pr[h(p)=h(q)] ≦ β 命題: P ⊆ 2 d 、 b=(b 1,…,b d ) ∈ P とし、 F={h i | h i (b)=b i } とすると、 F は (r,r(1+ε),1-r/d,1-r(1+ε)/d)- LSH 関数族 証明: c と b の距離が r 以下なら、少なくとも d-r ビットは一致。 よって、 h i (c)=h i (b) となる確率は (d-r)/d=1-r/d 以上。 注意: 確率は h の選び方 のみについてとる

局所性鋭敏型ハッシュ: アルゴリズム F から k 個の関数の組合せを選ぶことにより G を構成 G={g | g(p)=(h i1 (p),…,h ik (p)), h ij ∈ F } G からランダムに τ 個選んだ関数を g 1,…,g τ とする 前処理: ハッシュテーブルの構成 g 1,…,g τ を用いて τ 個のハッシュテーブルを作成 各テーブルごとに、 P をハッシュ 探索: i=1 から i=τ まで以下を繰り返す バケット g i (q) の点をすべてチェックし、 d(p,q) ≦ r を満たす p があれば出力して終了 調べた点の合計が 4 τ を超えたら失敗して終了。 繰り返しが終了したら、 d(p,q) ≦ (1+ε)r を満たす点は無しと 出力。

局所性鋭敏型ハッシュ: アルゴリズムの 説明 探索: i=1 から i=τ まで以下を繰り返す バケット g i (q) の点をすべてチェックし、 d(p,q) ≦ r を満たす p があれば出 力して終了 調べた点の合計が 4 τ を超えたら失敗して終了。 繰り返しが終了したら、 d(p,q) ≦ (1+ε)r を満たす点は無しと出力。

局所性鋭敏型ハッシュ: 検出確率 パラメータの設定 d(p,q) ≦ r が満たす p が存在する時に、 g i (p)=g i (q) とな る確率は 上記を満たす g i が存在(つまり、 p を検出)する確 率は

d(p,q)>(1+ε)r を満たす p に対し、 g i (p)=g i (q) となる確 率は より、1個のバケットに入る、そのような(望ましく ない) p の個数の期待値は ((1/n)×n)=1 以下。 局所性鋭敏型ハッシュ: 誤検出確率 よって、 τ 個のバケットに入る、そのような p の個数 の期待値は τ 以下。 ⇒ 4τ 個以上の点を調べてしまう確率は (τ/4τ)=1/4 以下 。 ⇒ d(p,q) ≦ (1+ε)r を満たす p が存在しない場合に、 失敗してしまう確率は 1/4 以下。 (no を出力して欲しいのに失敗してしまう場合)

局所性鋭敏型ハッシュ: 計算量 領域計算量: O(dn+n 1+ρ ) 領域 点の情報: O(dn) 領域 ハッシュテーブル: O(τn)=O(n 1+ρ ) 領域 (点の情報は点へのポインタで記憶) 探索の時間計算量: O(dτ)=O(dn ρ ) 時間 (ハッシュ関数は O(d) 時間で計算可能と仮定) 定理: ( r,r(1+ε),α,β)- LSH 族が存在する問題に対し、 O(dn+n 1+1/(1+ε) ) 領域、 O(dn 1/(1+ε) ) 探索時間で (高確率で成功する)近似近傍探索が実行可能 O(log n) 個のコピーを作成すれば、失敗確率は O(1/n h ) に下げることが可能

実数データへの対応 ランダムな直線への射影 + 整数化 [Datar et al.: Proc. SoCG. 2004] R t 空間( t は定数)の球への射影(ほぼ最適) [Andoni, Indyk: Proc. FOCS 2006] バイオインフォマティクスへの応用 配列比較 [Buhler: Bioinformatics 2001] モチーフ検出 [Buhler, Tompa: J. Comp. Biol. 2002] 化合物検索 [Cao et al.: Bioinformatics 2010] 質量分析スペクトル検索 [Dutta, Chen: Bioinformatics 2007] 拡張と応用

まとめ 近似文字列マッチング 動的計画法により O(mn) 時間 対角線に注目し、接尾辞木を用いると O(kn) 時間( k は許容誤差) Don’t Care 記号つき近似文字列マッチング テーブル + たたみ込み + 動的計画法 局所性鋭敏型ハッシュ 近似と乱拓性の導入により次元への指数依存性を回避 補足 近似文字列マッチングは O(nk 4 /m+m+k) 時間まで改善されている [Cole, Hariharan: SIAM J. Comput. 2002] 。編集距離は O(n+k 2 ) 時間で計算可能。 Steaming 型でも O(n+k 2 ) 時間らしい [Chakraborty et al., STOC 2016] k に関係なく O(nm 1-ε ) 時間でできるかは研究課題( O(log 2 n) 程度の改善は既知 [Bille, Colton: TCS 2008] )⇒ 最近、 Strong Exponential Time Hypothesis (SETH) のもとで否 定的に解決 [Backurs & Indik, STOC 2015] (第4回に解説) Don’t Care 文字つき近似文字列マッチングの改良は研究課題 編集距離の O(n) サイズ(もしくはそれに近いサイズ)の L 1 空間への低歪み埋め 込みは研究課題 LSH を利用しない近似近傍探索 [Andoni et al., SODA, 2014]