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))に改良可能)