第5部 - 京都大学

Download Report

Transcript 第5部 - 京都大学

集中講義(九州大学数理学研究院)
バイオ構造データに対する数理モデルと
アルゴリズム(5)
木構造データ間の編集距離
阿久津 達也
京都大学 化学研究所
バイオインフォマティクスセンター
内容





文字間の編集距離とアラインメント
木の編集距離
順序木に対する多項式時間アルゴリズム
オイラー文字列による木の編集距離の近似
無順序木に対する固定パラメータアルゴリ
ズム
背景
背景

配列のパターンマッチング


バイオインフォマティクスの最重要基本
技術の一つ
木構造のパターンマッチング

バイオインフォマティクス


XMLデータベース


RNA構造の比較、糖鎖構造の比較
類似XML文書の検索
画像理解
配列検索

バイオインフォマティク
スにおける基本原理



配列が似ていれば機能
も似ている
機能未知の配列
VLPIKSKLP......
配列検索
配列データベース
ただし、例外はある
配列検索の利用法



実験を行い機能未知の配列
が見つかった
データベース中で類似の配列
を検索
機能既知の類似の配列が見
つかれば、その配列と似た機
能を持つと推定
DFECILTSKLG.....
.
ACILTSTRE......
VLPIKSDLP......
HPFACILPDEL......
類似配列
VLPIKSDLP......
RNA二次構造
RNAでは一部の塩基対が結合している
⇒ RNA二次構造

RNA二次構造の木表現
文字間の編集距離と
配列アラインメント
文字列の編集距離

編集操作


文字の追加
文字の削除
文字の置換
編集距離 = 文字列 s1 を s2 に変換するための最小
の編集操作回数

距離の公理を満たす
s1 = GCGTCGT
s2 = CGATCCTC
G C G ー T C G T ー
ー C G A T C C T C
アラインメント
⇒ 距離=4
配列アラインメント
• バイオインフォマティクスの
最重要技術の一つ
• 2個もしくは3個以上の配列
の類似性の判定に利用
• 2個の配列に対するアライ
ンメントは編集距離とほとん
ど同じ
• 文字間の最適な対応関係を
求める(最適化問題)
• 配列長を同じにするように、
ギャップ記号(挿入、欠失に
対応)を挿入
A L G F G S L Y G
A L G G V S V G
A L G F G
A L G
S L Y G
G V S V
G
ペアワイズ・アラインメント
• 配列が2個の場合でも可能なアラインメントの個数は
指数オーダー
• しかし、スコア最大となるアライメント(最適アライメン
ト)は動的計画法により、O(n2)時間で計算可能(n:入
力配列のうち長い方の長さ)
入力配列
AGCT, ACGCT
アライメント
AGCT ACGCT
スコア -3
AG - CT
ACGCT
1
最適アラ
イメント
A - GCT
ACGCT
3
- AGC - - T
AC - - GCT
-5
(同じ文字の時: 1、違う文字の時: -1、ギャップ1文字: -1)
ギャップペナルティ
ギャップ (g =3)

線形コスト




-gd
A L G
g: ギャップ長
A
d: ギャップペナルティ
この図の例では、コスト= -3d
L Y G
V G V S D L
アフィンギャップコスト –d – e(g-1)
 d: ギャップ開始ペナルティ



e: ギャップ伸張ペナルティ
この図の例では、コスト= -d - 2e
よく利用されるペナルティ (d,e)=(12,2),(11,1)
G
スコア行列
• 残基間(アミノ酸文字間)の類似性を表す行列
– PAM250, BLOSUM45 など
A
A
R
N
D
C
Q
E
G
H
I
L
K
M
F
P
S
T
W
Y
V
5
-2
-1
-2
-1
-1
R
N
D
C
Q
E
G
H
I
L
K
M
F
P
T
W
Y
V
-2 -1 -2 -1 -1 -1 0 -2 -1 -2 -1 -1 -3 -1 1 0
7 -1 -2 -4 1 0 -3 0 -4 -3 3 -2 -3 -3 -1 -1
-1 7 2 -2 0 0 0 1 -3 -4 0 -2 -4 -2 1 0
-2 2 8 -4 0 2 -1 -1 -4 -4 -1 -4 -5 -1 0 -1
-4 -2 -4 13 -3 -3 -3 -3 -2 -2 -3 -2 -2 -4 -1 -1
1 0 0 -3 7 2 -2 1 -3 -2 2 0 -4 -1 0 -1
-3
-3
-4
-5
-5
-1
-2
-1
-2
-3
-3
-1
0
3
-3
-4
-1
-3
BLOSUM50 スコア行列
(置換行列)の一部分
S
動的計画法による大域アラインメント(1)



入力文字列から格子状グラフを構成
アライメントと左上から右下へのパスが一対一対応
最長経路=最適アライメント
G
G
F
V
D
5
-5
K
-2
-5
Y
-5
7
D
1
-6
-1
-2
-3
-2
1
0
-4
4
-7
-7
-7
-7
アライメント
スコア
-7
-7
-7
-7
GKY
D
G F V D
5 -7 +7
-7 +4 = 2
GK Y D
GF V D
-7 -7 -1 +0
-7 -7 = -29
GKY D
-7 -7 -5 -7
-7 -7 -7 = -47
G
F V D
動的計画法による大域アラインメント(2)
F(0,0)
G
F(1,0)
=-d
K
F(2,0)
=-2d
=0
F (0, j )   jd , F (i,0)  id
G
F(0,1)
=-d
DP (動的計画法)による
最長経路(スコア)の計算
F(i-1, j-1)
F(i, j-1)
s(K,F)
F
 F (i  1, j  1)  s ( xi , y j )

F (i, j )  max
F (i  1, j )  d

F (i, j  1)  d

-d
⇒ O(mn)時間
F(0,2)
=-2d
F(i-1, j)
-d
F(i, j)
行列からの経路の復元は、
F(m,n)からmaxで=となっている
F(i,j)を逆にたどることに行う
(トレースバック)
動的計画法による編集距離の計算


アラインメント: 配列が類似 ⇔ スコアは大
編集距離:
配列が類似 ⇔ 距離は小
アラインメント計算
編集距離計算
F (0, j )   jd , F (i,0)  id
F (0, j )  j , F (i,0)  i
 F (i  1, j  1)  s ( xi , y j )

F (i, j )  max
F (i  1, j )  d

F (i, j  1)  d

 F (i  1, j  1)   ( xi , y j )

F (i, j )  max
F (i  1, j )  1

F (i, j  1)  1

木の編集距離
木構造の比較

部分グラフに基づく最大共通部分木



編集距離に基づく最大共通部分木



順序木:O(n2)時間
無順序木: O(n2.5/log n)時間
順序木: O(n3)時間
無順序木:NP困難(MAX SNP困難)
講義で示すアルゴリズム



順序木に対するO(n4)時間アルゴリズム
順序木に対するO(n2)時間近似アルゴリズム
無順序木に対する固定パラメータアルゴリズム
(O(f(k) poly(n))時間アルゴリズム)
n: 二つの入力木のうち、大きい方の頂点数
順序木の編集距離計算

上限
O(n6)時間 [K-C.Tai, 1979]
4
 O(n )時間 [K. Zhang & D. Shasha, 1989]
 O(n3log n)時間 [P. N. Klein, 1998]
 O(n3)時間 [E. Demaine et al., 2007]


下限

Ω (n3)時間 [E. Demaine et al., 2007]
(ただし、decomposition strategy algorithms の枠内)
無順序木の編集距離計算

編集距離




NP困難 [K. Zhang, R. Statman, D. Shasha, 1992]
MAX SNP困難 [K. Zhang & T. Jiang, 1994]
高さが h の時、2h+2近似 [Fukagawa et al., 2009]
最大共通部分木




MAX SNP困難 [K. Zhang & T. Jiang, 1994]
一方が高さ1の木で、もう一方が高さ2の木でも
定数近似困難 [M. M. Halldorsson & K. Tanaka, 1996]
O(log 2n)近似 [M. M. Halldorsson & K. Tanaka, 1996]
高さが h の時、2h 近似 [M. M. Halldorsson & K. Tanaka, 1996]

1.5h 近似に改良 [Akutsu et al., 2008]
木の編集距離

編集距離: T1 を T2 に変換するのに要する編集
操作の最小回数
削除: 頂点 v を削除し、v の子を v の親の子とする
 挿入: 削除の逆
 置換: 頂点 v のラベルを置き変える
(無順序木では、子の左右を入れ替えてもOK)

A
T1
A
C を削除
B
D
B
A
C
A
B
B
D
D
A
C を挿入
B
B
T2
B
D
A
B
木の編集距離


文字列間の編集距離の
根つき木への拡張
3種類の編集操作


c
a
頂点ラベルの置換、頂点の削除、
頂点の挿入
T1, T2 間の
編集距離

a
T1 を T2 に変え
るのに必要な
最小の編集
操作回数
c
挿入
置換
削除
a
a
c
b
c
b
c
c
a
c
b
a
a
b
c
b
木の編集距離と木間写像

T1, T2 間の写像



1対1、親子関係を保存
コスト: ラベルが異なる頂点数 + 写像に含まれない頂点数
編集距離の計算


順序木(子の順序を保存): 動的計画法により、多項式時間
無順序木: NP困難
a
c
a
d
b
e
c
c
コスト=2
b
d
c
e
木間写像と最大共通部分木

木間写像: 以下を満たす写像 M  V (T1 ) V (T2 )
((v1 , w1 )  M )((v2 , w2 )  M )
 v1  v2  w1  w2
 v1がv2の先祖  w1がw2の先祖
 v1がv2の左  w1がw2の左 (順序木)

最大共通部分木

M id  {(v, w) | (v, w)  M , label(v)  label(w)}
の要素数が最大となる Mid により誘導される部分木

編集距離と最大共通部分木の関係

編集距離 =
| V (T1 ) |  | V (T2 ) |  | M |  | M id |
木間写像と最大共通部分木の例
T1
最大共通部分木
T2
順序木に対する
多項式時間アルゴリズム
動的計画法アルゴリズム(1)

D(F1,F2) 森 F1 と森 F2 の編集距離


森: 木の集合(ここでは木の順序集合)
w(x,y)はラベル x から y への置換コスト
(- はギャップ)
D( ,  )  0
D( F1 ,  )  D( F1  v,  )  w(l (v),)
D( , F2 )  D( , F2  u )  w(, l (u ))

 D( F1  v, F2 )  w(l (v),)

D( F1 , F2 )  min D( F1 , F2  u )  w(, l (u ))
 D( F1  T1 (v), F2  T2 (u ))

 D(T1 (v)  v, T2 (u )  u )  w(l (v), l (u ))
動的計画法アルゴリズム(2)
D( F1  v, F2 )  w(l (v),)


D( F1 , F2 )  min
D( F1 , F2  u )  w(, l (u ))
 D( F  T (v), F  T (u ))  D(T (v)  v, T (u )  u )  w(l (v), l (u ))
1
1
2
2
1
2

動的計画法アルゴリズムの解析



各再帰ステップ1回あたりは定数時間で実行可能
よって、異なる D(F1,F2) の個数を見積もれば良い
F1は、各頂点 v を根とする部分木から一番右上にあ
る子頂点を繰り返し削除して得られる
⇒ v の選び方がO(n), 削除の回数がO(n)より、
異なる F1 の個数はO(n2)
異なる D(F1,F2) の個数は
O(n4)
⇒ O(n4) 時間

順序木の編集距離の
O(h) 近似アルゴリズム
オイラー文字列



木を深さ優先探索
探索した順に頂点のラベルを並べる
ただし、戻る時のラベルは A の様に区別する
命題: T1 と T2 が同型 iff es(T1)=es(T2)
ただし、根のラベルは無視
アルゴリズム


T1, T2 をオイラー文字列 s1, s2 に変換
s1, s2間の編集距離 EDS(s1,s2) を計算して出力
定理
1
2
EDS (s1, s2 )  EDT (T1, T2 )  (2h  1)EDS (s1, s2 )
h: 低い方の木の高さ
文字列の編集距離

編集操作


文字の追加
文字の削除
文字の置換
編集距離 = 文字列 s1 を s2 に変換するための最小
の編集操作回数

距離の公理を満たす
s1 = GCGTCGT
s2 = CGATCCTC
G C G ー T C G T ー
ー C G A T C C T C
アラインメント
⇒ 距離=4
命題
1
2
EDS (s1, s2 )  EDT (T1, T2 )
T1に対する1編集操作 ⇒ s1 に対する2編集操作

T1
T2
B
C
B
C
D
D
T1
T2
B
C
D
B
C
E
s1: B D D B C C
s2: B
B C C
s1: B D D B C C
s2: B E E B C C
アラインメントからの写像の復元

アラインメントから両者において完全に保存されてい
る部分木のみを抽出
上限の解析(1)


命題:途中に編集操作の入らない部分木どおしを対応
させると正当な木間写像になる
証明:部分木どおしは親子関係に無く、かつ、オイラー
文字列を利用しているので左右の関係が保存される
A
B
上限の解析(2)

文字列アライメントにおける1個のエラーが高さ×2個
(T1と T2 )の頂点の対応関係を損なう
EDT (T1 , T2 ) 
(2h  1) EDS (s1 , s2 )
定理
1
2
EDS (s1, s2 )  EDT (T1, T2 )  (2h  1)EDS (s1, s2 )
[Akutsu, IPL 2006]
無順序木に対する
固定パラメータアルゴリズム
固定パラメータアルゴリズム

NP困難問題への対処法






近似アルゴリズム
固定パラメータアルゴリズム
指数時間アルゴリズム(O(an)で底aを小さくする)
平均的に高速なアルゴリズム
ヒューリスティックなアルゴリズム
固定パラメータアルゴリズム

あるパラメータ k があり、O(f(k)poly(n)) 時間で動作



f(k) は指数時間、poly(n) は多項式時間
k に対しては指数時間(もしくは、超指数時間)
n に対しては多項式時間
補題
T1 , T2 の根を r1 , r2 とし、 dist(T1(u), T2(v))>0 がすべての u∊chd(r1),
v∊chd(r2) について成立すると仮定する。
ここで、u を |Ti(u)| が最大となる r1 もしくは r2 の子とし、M を編集距離
を与える写像とすると、以下の一つが成立( u∊chd(r1) と仮定)。
・ u は M に出現しない (u を削除)
・ (u,v)∊M かつ dist(T1(u), T2(v))>0 が、 v∊chd(r2) に対して成立
・ (u,v)∊M かつ dist(T1(u), T2(v))>0 が、 子以外の子孫に対して成立
補題
xi ∊chd(r1), yj ∊chd(r2)、かつ、T1 (xi) と T2 (yj) が同型なら、
dist(T1, T2) = dist(T1-T1(xi), T2-T2(yj ))
アルゴリズムの概要



根のペアから再帰的に実行
同型な子頂点ペアがあれば削除
それぞれの木の子頂点の個数が k 個以下の間は、大
きい順に子頂点を1個ずつ追加


追加の際には、その子頂点の削除の場合も再帰的に考慮
子頂点を追加できなくなったらば、最小重みマッチング
により、子頂点間の対応関係を計算
計算量の解析 (2)
f (k , n)  2k  f (k 1, n)  O(n )
3

 O(n )  (1  2

   2 )  k!  O(n )  2
f (k , n)  O(n3 )  1  2k  2k  2(k  1)    2k  k!
3



2
k
3
k 1

 k!
FpDistは、すべての頂点ペアについてボトムアップ
に実行: O(n2)倍
距離は 0 から k のそれぞれについて実行: O(n)倍
よって、全体の計算時間は O(2k  k!n6 )
定理: 二つの無順序木の編集距離が k 以内かどう
かは O(2k・k!・n6)時間で判定可能
[Akutsu et al., SIGAL Tech. Rep., 2010]
まとめ

配列アラインメント



順序木の編集距離



バイオインフォマティクスの基本技術
動的計画法によるO(n2)時間アルゴリズム
O(n4)時間動的計画法アルゴリズム
(O(n3)時間に改良可能)
O(n2)時間O(h)近似アルゴリズム
無順序木の編集距離

固定パラメータアルゴリズム
(O(2.62k・poly(n))に改良可能)