配列アラインメント

Download Report

Transcript 配列アラインメント

情報生命科学特別講義III
(5)配列アラインメント
阿久津 達也
京都大学 化学研究所
バイオインフォマティクスセンター
講義予定















第1回: 文字列マッチング
第2回: 文字列データ構造
第3回: たたみ込みとハッシュに基づくマッチング
第4回: 近似文字列マッチング
第5回: 配列アラインメント
第6回: 配列解析
第7回: 進化系統樹推定
第8回: 木構造の比較:順序木
第9回: 木構造の比較:無順序木
第10回: 文法圧縮
第11回: RNA二次構造予測
第12回: タンパク質立体構造の予測と比較
第13回: 固定パラメータアルゴリズムと部分k木
第14回: グラフの比較と列挙
第15回: まとめ
配列アラインメントとは?
配列検索

バイオインフォマティク
スにおける基本原理



配列が似ていれば機能
も似ている
機能未知の配列
V L P IK SK L P......
配列検索
配 列 デ ー タベ ー ス
ただし、例外はある
配列検索の利用法



実験を行い機能未知の配列
が見つかった
データベース中で類似の配列
を検索
機能既知の類似の配列が見
つかれば、その配列と似た機
能を持つと推定
D F EC ILT SK L G .....
.
A C ILT ST R E......
V L P IK SD L P......
H P FA C IL P D EL ......
類似配列
V L P IK SD L P......
配列アラインメント
• バイオインフォマティクスの
最重要技術の一つ
• 2個もしくは3個以上の配
列の類似性の判定に利用
• 文字間の最適な対応関係
を求める(最適化問題)
• 配列長を同じにするように
、ギャップ記号(挿入、欠失
に対応)を挿入
A
L
G
F
G
S
L
Y
A
L
G
G
V
S
V
G
A
L
G
F
G
S
L
A
L
G
S
V
G
V
2個の配列に対するアラインメント:
ペアワイズ・アラインメント
3個以上の配列に対するアラインメント: マルチプル・アラインメント
G
Y
G
G
ペアワイズ・アラインメント
ペアワイズ・アラインメント
• 2本の配列に対するアラインメント
• 大域アラインメント: 配列全体にわたるアラインメント
• 列ごとにスコアが定義され、各列のスコアの和が最
大となる最適アラインメントを計算
入力配列
ACGT
ATCCT
アラインメント
A C G T ー ー
A ー C G T
A C ー G T
ー A T C C T
A T C C T
A T C C T
スコア
-6
スコアの定義
1
同じ文字: 1
違う文字: -1
-1
ギャップ: -1
…
大域アラインメントと格子状グラフ



入力文字列から格子状グラフを構成
アライメントと左上から右下へのパスが一対一対応
最長経路=最適アラインメント
A
A
1
C
G
-1
-1
T
-1
最適アラインメント
-1
A ー C G T
-1
1
T
-1
C
-1
1
-1
-1
-1
C
-1
1
-1
-1
-1
T
-1
-1
-1
-1
-1
-1
-1
1
-1
-1
-1
A T C C T
非最適アラインメント
A C G T ー ー
ー A T C C T
アラインメントの個数
• 漸化式による解析
• アラインメントの個数=格子状グラフにおけるパス数
m  0 or n  0
 1,
A(m , n)  
 A ( m  1, n  1)  A ( m , n  1)  A ( m  1, n ), m  0 and n  0
• 組み合わせ的解析
• ギャップ文字が現れない列の個数を k とすると
• アラインメント全体の長さは m+n-k
• (si,-) という型の列の個数は m-k
• (-,tj) という型の列の個数は n-k
• よって、アラインメントの個数は m+n-k 個の要素をk個、m-k個、n-k個に
分割する組み合わせの数
min( m , n )
A(m , n) 

( m  n  k )!
k !( m  k )! ( n  k )!
k 0
• Delannoy数として知られている
入力配列: s, t (|s|=m, |t|=n)
動的計画法による最適アラインメントの計算
• アラインメントの個数:指数関数のオーダー
• 動的計画法を用いれば O(mn) 時間
• D[i,j] は始点(0,0)から(i,j)までの最適パスの長さ
• アラインメントの復元(トレースバック)
• D[m,n] から再帰式で=となっている頂点を逆にたどる
D [i ,0 ]  i  (  d )
i  0, , m
D[0, j ]  j  ( d )
j  0, , n
D [ i  1, j ]  d


D [ i , j ]  max 
D [ i , j  1]  d
 D [ i  1, j  1]  w ( s [ i ], t [ j ])

D[i-1,j-1]
w(s[i],t[j])
D[i-1,j]
-d
D[i,j-1]
-d
D[i,j]
スコア行列
• 残基間(アミノ酸文字間)の類似性を表す行列
– PAM250, BLOSUM45 など
A
A
R
N
D
C
Q
E
G
H
I
L
K
M
F
P
S
T
W
Y
V
R
N
D
C
Q
E
5 -2 -1 -2 - 1 -1 -1
-2
7 - 1 -2 -4
G
H
I
L
K
M
F
P
S
T
W
Y
V
0 -2 - 1 -2 -1 -1 -3 - 1
1
0 -3 -2
0
3
1
0 -3
0 -4 -3
3 - 2 -3 -3 -1 -1 - 3 -1
1 -3 -4
0 - 2 -4 -2
-1 -1
7
2 -2
0
0
0
-2 -2
2
8 -4
0
2 - 1 -1 -4 -4 -1 - 4 -5 -1
1
0 - 4 -2 -3
0 -1 - 5 -3 -4
-1 -4 - 2 -4 13 -3 -3 - 3 -3 -2 -2 -3 - 2 -2 -4 -1 -1 - 5 -3 -1
-1
1
0
0 -3
7
2 -2
1 -3 -2
2
0 -4 -1
B LO S U M 5 0 ス コ ア 行 列
(置 換 行 列 )の 一 部 分
0 -1 - 1 -1 -3
局所アラインメント
局所アラインメント

配列の一部のみ共通部分があることが多い
⇒共通部分のみのアラインメント


というアラインメントを計算
問題の定義



例えば、AATGCATE と GATCG の場合、
ATG C
AT-C
入力: 2個の配列 s, t スコア関数 w(x,y)
出力: Sopt(s[h…k],t[h’…k’]) が最大となる部分文字列の
組(s[h…k],t[h’…k’])に対する最適アラインメント
大域アラインメントを繰り返すとO(m3n3)時間
⇒Smith-WatermanアルゴリズムならO(mn)時間
局所アラインメントに対する動的計画法

大域アラインメントに対する動的計画法を少し修正
するだけでOK
D [i ,0 ]  0
i  0, , m
D [0, j ]  0
j  0, , n
0

 D [ i  1, j ]  d
D [ i , j ]  max 
D [ i , j  1]  d

 D [ i  1, j  1]  w ( x i , y j )

max D [ i , j ]}
局所アラインメント・アルゴリズムの正当性

証明のアイデア
 始点と終点を表す2個の頂点を格子状グラフに追加
 始点から終点へのパスと局所アラインメントが1対1対応
0

 D [ i  1, j ]  d
D [ i , j ]  max 
D [ i , j  1]  d

 D [ i  1, j  1]  w ( x i , y j )

0
max D [ i , j ]}
0
0
(一 部 の 辺 は
省略)
ギャップコスト
ギャップペナルティ
ギ ャ ッ プ ( g =3 )

線形コスト




-gd



L
G
A
V
G
g: ギャップ長
d: ギャップペナルティ
この図の例では、コスト= -3d
アフィンギャップコスト

A
L
V
S
D
L
Y
G
G
–d – e(g-1)
d: ギャップ開始ペナルティ
e: ギャップ伸張ペナルティ
この図の例では、コスト= -d - 2e
よく利用されるペナルティ (d,e)=(12,2),(11,1)
アフィンギャップコストによるアラインメント
 D [ i  1, j ]  d
D X [ i , j ]  max 
 D X [ i  1, j ]  e
 D [ i , j  1]  d
D Y [ i , j ]  max 
 D Y [ i , j  1]  e
D X [i, j ]


D [ i , j ]  max 
DY [i, j ]
 D [ i  1, j  1]  w ( s [ i ] ,t [ j ])

三種類の行列を用いる動的
計画法によりO(mn)時間
 Smith-Watermanアルゴリズ
ムとの組み合わせが広く利
用されている
⇒ Smith-Waterman-Gotoh
アルゴリズム

任意ギャップコストによるアラインメント

動的計画法(下式)により、O(n 3 )時間
(ただし、m=O(n)とする)
D[ i , j ] 
max

 D [ i  1, j  1]  w ( s [ i ], t [ j ])

 max D [ k , j ]   ( i  k )
 k  0,..., i 1
 max D [ i , k ]   ( j  k )
 k  0,... j 1
ギャップコストと計算時間の関係




線形: O(n2)時間
アフィン:O(n2)時間
凸: O(n2α(n))時間
任意: O(n3)時間
線形
凸
α(n)はアッカーマン関数の逆関数
(実用的には定数と同じ)
2
O ( n )時 間
2
O ( n α (n ))時 間
ア フィン
任意
2
O ( n )時 間
3
O ( n )時 間
線形領域アラインメント
線形領域アラインメント



スコアの計算だけならO(m+n)領
域で簡単に可能
トレースバックが難しい
アイデア: 分割統治法を利用
計算時間
C× m n
LinearSpac eAlign ( i1 , i 2 , j1 , j 2 )
1 . i 2  i1が定数以下なら通常の
DP で計算・
出力して終了
C × (m n / 2 )
2 . i h  ( i1  i 2 ) / 2   i1とする
3 . ( i1 , j1 )から ( i h , j )までのの最適スコア
( i h , j )から ( i 2 , j 2 )までの最適スコア
D 1 [ j ]、
D 2 [ j ]を
通常の DP で計算
4 . D 1 [ j ]  D 2 [ j ]が最大となる
j を j hとする
5 . LinearSpac eAlign ( i1 , i h , j1 , j h )を実行
6 . ( i h , j h )を出力
7 . LinearSpac eAlign ( i1 , i h , j h , j 2 )を実行
C × (m n / 4 )
配列検索の実用的アルゴリズム
配列検索の実用的アルゴリズム
• データベース検索: O(mn): m は数百だが、n は数GBにもなる
⇒実用的アルゴリズムの開発
• FASTA: 短い配列の完全一致(アミノ酸の場合、1,2文字、DNAの場合、4-6
文字)をもとに対角線を検索し、さらにそれを両側に伸長し、最後にDPを利
用
• BLAST: 固定長(アミノ酸では3, DNAでは11)の全ての類似単語のリストを
生成し、ある閾値以上の単語ペアを探し、それをもとに両側に伸長させる。
ギャップは入らない。伸長の際に統計的有意性を利用
• SSEARCH: 局所アラインメント(Smith-Waterman-Gotohアルゴリズム)を
そのまま実行
• PSI-BLAST: ギャップを扱えるように拡張したBLASTを繰り返し実行。「
BLASTで見つかった配列からプロファイルを作り、それをもとに検索」という
作業を繰り返す
• PatternHunter: 穴あきシードを用いる(連続した文字ではなく飛び飛びの文
字の完全一致をもとに検索)
マルチプル・アラインメント
マルチプル・アラインメント:定式化

3本以上の配列が与えられた時、長さが同じで、かつ、スコアが最適となるよ
うに各配列にギャップを挿入したもの
HBA_HUM AN
HBB_HUM AN
MYG_PHY CA
GLB5_PE TMA
LGB2_LU PLU
GLB1_GL YDI

VGAHA GEY
VNVDE V
VEADV AGH
VYSTY ETA
FNANI PKH
IAGAD NGAGV
HBA_HUM AN
HBB_HUM AN
MYG_PHY CA
GLB5_PE TMA
LGB2_LU PLU
GLB1_GL YDI
V
V
V
V
F
I
G
E
Y
N
A
A
A
S
A
G
A
D
H
N
D
T
N
N
A
V
V
Y
I
G
G
D
A
E
P
A
E
E
G
T
K
G
Y
V
H
A
H
V
スコアづけ (全体スコアは基本的に各列のスコアの和:∑S(mi))
 最小エントロピースコア


(cia= i列におけるaの出現回数,
pia = i列におけるaの生起確率)
S(mi) = -∑cia log pia
SPスコア(Sum-of-Pairs)

S(mi)=∑k<lw(mk[i],ml[i])
( mk[i]= アラインメント後のi列, k行目の文字)
多次元DPによるマルチプル・アラインメント

N個の配列に対するマルチプ
ル・アラインメント
(i,j-1,k-1)
N次元DPによりO(2NnN)時間
(各配列の長さはO(n)を仮定)

例:N=3
D [ i , j , k ]  max

 D [ i  1, j  1, k  1] 

w ( s1 [ i ], s 2 [ j ], s 3 [ k ])

 D [ i , j  1, k  1]  w (  , s 2 [ j ], s 3 [ k ])

 D [ i  1, j , k  1]  w ( s1 [ i ],  s 3 [ k ])

 D [ i  1, j  1, k ]  w ( s1 [ i ], s 2 [ j ],  )
 D [ i , j , k  1]  w (  ,  , s [ k ])
3

 D [ i , j  1, k ]  w (  , s 2 [ j ],  )
 D [ i  1, j , k ]  w ( s [ i ],  ,  )
1

一般の N に対しては NP困難
(i,j-1,k)
(i-1,j,k)
(i,j,k)
マルチプル・アラインメントの実用的計算手法

プログレッシブ・アラインメント







CLUSTAL-W(広く利用されているソフト)などで採用
逐次改善法との組み合わせが、より有効
逐次改善法
シミュレーテッドアニーリング
遺伝的アルゴリズム
HMMによるアラインメント
分枝限定法

10配列程度なら最適解が計算可能
近似アルゴリズム

NP困難問題への対処法






近似アルゴリズム
固定パラメータアルゴリズム
指数時間アルゴリズム(O(an)で底aを小さくする)
平均的に高速なアルゴリズム
ヒューリスティックなアルゴリズム
近似アルゴリズム


最適解との比率の最悪の場合の上限を理論的に保証
最適解がわからないのにどうやって保証するか?



最適解の下限を理論的に見積もる(最小化問題の場合)
近似解の上限を理論的に見積もる
「近似解の上限/最適解の下限」が比率になる
近似アルゴリズム




スコアに三角不等式を仮定
し、最小化問題として定義
SPスコアを使用
アイデア: 中心となる配列を
定め、それと各配列とのアラ
インメント結果をまとめる
アルゴリズム
1. ∑k≠iS(sk,si)が最小とな
る sk を計算
2. S(sk,si)をもとにギャッ
プを適切に挿入し、マ
ルチプルアラインメン
トA を構成
x1
x2
S TA R - 1
S TA R - 2
S TA R - 3
S TA R - 4
x3
ACGT
A-GT
A-CGT
AACGT
ACG-T
A-GGT
x4
A-CG-T
A--G-T
AACG-T
A--GGT
図中の xi はsi を表す
近似アルゴリズムの解析
定理
A のSPスコア ≦
(2-2/N)・最適解の
SPスコア
証明
N・Starのスコア ≦2・最適
解のスコア
(図1でNスターにより、各辺
を2回ずつカバー)
A のスコア ≦
(N-1)・Starのスコア
(図2でx1に(=s1)接続しない
辺のスコアの合計はスター
(N-2)個分以下)
図1
x1
x2
x3
x4
図2
三角不等式
x1
x2
xk
xi
x3
xj
x4
図中の xi はsi を表す
まとめ

ペアワイズ・アラインメント



動的計画法で O(n2) 時間、線形領域も可能
局所アラインメント、線形ギャップスコアでも同様
マルチプル・アラインメント

NP困難だが、距離で定義した場合、2近似が可能
補足
 ペアワイズ・アラインメントは O(n2/log n) 時間で可能 [Crochemore
et al.: Proc. SODA 2002]


様々なギャップスコアや疎行列の場合の動的計画法について
も多くの研究 [Galil, Park: Theoret. Comp. Sci. 1992]
マルチプル・アラインメントの近似率は 2-K/N まで改善(K は
任意の定数) [Bafna et al.: Theoret. Comp. Sci. 1997]

N に関係なく 2 より良くできるかは研究課題