Từ ý tưởng ban đầu là align mỗi sequence với 1 nhóm sequence, một sự mở rộng của giải thuật là phân hoạch tập các sequence thành các nhóm sequence, sau đó tiến hành align các nhóm sequence này cho đến khi tất cả các nhóm sequence được align thành 1 nhóm chung duy nhất. Về bản chất, việc align 1 sequence với 1 nhóm các sequence cũng chính là việc align 2 nhóm sequence với nhau mà trong đó 1 nhóm chỉ có 1 phần tử. Điểm khác biệt chính trong các phiên bản hiện thực của Progressive Algorithm là phép phân hoạch tập sequence, cũng như trật tự để align các nhóm sequence với nhau. Kỹ thuật cơ bản thường được sử dụng trong việc align 2 nhóm sequence là giải thuật quy hoạch động. Phiên bản Progressive Algorithm cơ bản nhất,
thường được thừa kế, cải tiến sử dụng trong các phiên bản Progressive Algorithm sau này là giải thuật Feng-Doolittle.
3.3.3. Feng-Doolittle Algorithm
Feng-Doolittle Algorithm [10], [11] triển khai ý tưởng phân hoạch tập sequence ban đầu thành các nhóm sequence, sau đó thực hiện việc align các nhóm sequence với nhau cho đến khi chỉ cịn 1 nhóm duy nhất. Để áp dụng bài tốn PSA cho các nhóm sequence, giải thuật xem mỗi nhóm sequence như 1 sequence. Sau đó thực hiện việc tính tốn giá trị hàm đánh giá cho các cặp vị trí của 2 nhóm. Từ ma trận hàm đánh giá các cặp vị trí của 2 nhóm sequence, kết quả alignment của 2 nhóm sequence sẽ được xây dựng dựa trên quá trình thêm gap vào chúng.
Xét 2 nhóm sequence A có k1 sequence chiều dài n1, B có k2 sequence chiều dài
n2 . Cơng thức tính tốn hàm đánh giá cột thứ i của nhóm A và cột thứ j của nhóm B:
1 2 , , 1 1 1 ( , ) ( , ) 1* 2 k k x i y j x y S i j a b k k σ = = = ∑∑
Trong đó 1≤ ≤i n1 là cột thứ i của nhóm sequence A 2
1≤ ≤j n là cột thứ j của nhóm sequence B. ,
x i
a : ký tự đại diện cho amino acid tại dòng x, cột i của nhóm A. ,
y j
b : ký tự đại diện cho amino acid tại dòng y, cột j của nhóm B. Ví dụ chúng ta xem xét việc align 2 nhóm A, B như sau:
Giá trị hàm đánh giá cho vị trí cột thứ 4 của A và vị trí cột thứ 5 của B là: 1
(4,5) ( ( , ) ( , ) ( , ) ( , ) ( , ) ( , )) 2*3
S = σ R V +σ R X +σ K V +σ K X +σ G V +σ G X
Q trình thêm gap vào 2 nhóm sequence được thực hiện theo nguyên tắc: nếu xuất hiện gap tại 1 vị trí của nhóm sequence, thì tất cả các sequence của nhóm sẽ phải thêm gap vào vị trí này
DGM R EA DGM K GA DNM G GS EAM SVGS ENM I XGC Nhóm A Nhóm B