アラインメント

核酸配列あるいはアミノ酸配列を、似ている部分を同じ位置になるように並べることをアラインメントという。例えば、次のような 2 つのアミノ酸配列があり、

sequence A  RGSHMHGQVVSGYIEAEVIPAETGQETAYFLLKLVKTVHTDNGTTVKA
sequence B  KGEAMHGQVVYIEAEVIPAETGQETAYFLLKLAWPVKTIHTDNGPNFTSATVKA

これをアラインメントすると、次のようになる。(次の例では、アラインメントの結果を見やすいように、配列 A と配列 B の文字が一致するとき「|」を付けている。)

sequence A  RGSHMHGQVVSGYIEAEVIPAETGQETAYFLL---KLVKTVHTDNGTTV-----KA
            |  ||||||  ||||||||||||||||||||     ||| |||||        ||
sequence B  KGEAMHGQVV--YIEAEVIPAETGQETAYFLLKLAWPVKTIHTDNGPNFTSATVKA

アラインメントの中で、対応している 2 つの文字の関係のなかに「一致」、「ミスマッチ(不一致)」、および「ギャップ」と呼ばれるものがある。対応する 2 つの文字が同じならば一致という。例えば、アラインメントの中で、配列 A の 2 番目の G や 5 番目の M などの文字に対応する文字は、 配列 B にも存在するので、これらを一致という。これとは逆に、アラインメントの中で、配列 A の 1 番目の R に対応する配列 B の文字は K となっている。両者の文字が異なっているので、これをミスマッチという。また、アラインメントの中で、片方の配列にある文字に対応する文字がもう片方にない場合(上の例では - と表示されているところ)、これをギャップという。

ミスマッチの原因は、進化過程において配列上で起きた置換が主な原因である。また、ギャップは、進化過程において配列上で起きた挿入あるいは欠損などが主な原因と考えられる。

2 つのアライメントを求めるとき、そのアライメントの正確性を測る指標も計算する必要がある。例えば、2つの配列 TCCTCCAG と ATCCAG があるとき、次の 2 通りのアラインメントが考えられる。

1)          2)
TCCTCCAG    -TCCTCCAG
A--TCCAG    A---TCCAG

いくつかの候補から最適なアラインメントを絞るには、アラインメント用のスコアを定義する必要がある。例えば「一致:+1、ミスマッチ:-2、ギャップ:-3」ならば 1) のスコアは 5 × 1 + 1 × (-2) + 2 × (-3) = -3 であり、同様にして 2) のスコアは -7 である。従って、この場合は 1) のアライメントを採用する。また、例えば「一致:+1、ミスマッチ:-3、ギャップ:-1」ならば 1) のスコアは 0 であり、2) のスコアは 1 である。この場合は 2) のアライメントを採用する。

このように、複数個のアライメントの中から最適なアライメントを選ぶためにはスコアを利用する必要がある。また、スコアの付け方が異なると求められる最適アライメントも異なる。従って、アライメントを行う際に、スコアの付け方も考慮する必要がある。

与えられた 2 つの配列から、スコアを考慮しながらアラインメントを作っていくアルゴリズムとして、Needleman-Wunsh アルゴリズムおよび Smith-Waterman アルゴリズムなどが知られている。