FASTA はホモロジー検索法の一つで、入力した配列(クエリー配列)と似ている配列(ターゲット配列)を検索する方法である。検索するデータベースが大きいため、マッチングによる検索は膨大な時間がかかる。そこで、FASTA は検索速度を上げるために、二段階検索を取り入れている。一段階目では、二つの配列のずれを粗スコア化してから、スコアの高いものをいくつか選ぶ。二段階目では、選ばれた配列に対して Needleman-Wunsch アルゴリズムを利用してギャップを考慮したスコアを計算して、検索結果を出力する。
- 二つの配列のズレをスコア化する(粗スコア)。
- 例えば、クエリー配列が「WWKRTSW」で、データベースにある配列のうちの一つを「CTWCRTSWA」とする、この配列に対して粗スコアを求める。
-
位置番号を記録する
クエリー配列
W K R T S 1 , 2 , 7 3 4 5 6 対象配列
C T W C R T S W A 1 2 3 4 5 6 7 8 9 -
相対位置を計算する。例えば、対象配列の 1 文字目 C は、入力配列に存在しないので計算できない。次に、対象配列の 2 文字目 T の相対位置は、5 - 2 = 3 となります。対象配列の 3 文字目の W は三つの値が存在し、それぞれ 1 - 3 = -2、2 - 3 = -1、7 - 3 = 4 である。以降、順に求める。
C T W C R T S W A 1 2 3 4 5 6 7 8 9 NA 3 -2, -1, 4 NA -1 -1 -1 -7, -6, 1 NA -
相対位置からスコアを計算する。上の表から、相対位置は -7 から 4 の間の値をとるから、この範囲にあるすべての相対位置のスコアを計算する。
- 粗スコアの高い部分配列を選ぶ。
- 選ばれた部分配列に対して、スコア行列を利用して再度スコアを計算し、スコアがもっとも大きいものを初期スコアとする。
- 初期スコアを利用して、部分配列をフィルタリングする。
- 残った配列に対して Needleman-Wunsch アルゴリズムを利用して、ギャップを考慮したスコアを計算する。
- スコア順にソートして結果を表示する。