Tin Sinh học(bioinformatics) là một lĩnh vực khoa học sửdụng các công nghệ
của các ngành tin học, toán học ứng dụng, thống kê, khoa học máy tính, trí tuệnhân 
tạo, hóa học và hóa sinh đểgiải quyết các vấn đềsinh học. Sắp hàng đa chuỗilà một 
vấn đềquan trọng trong lĩnh vực tin sinh học. Trong những năm gần đây, chất lượng 
của các chương trình sắp hàng đa chuỗi đã được cải thiện rất nhiều bởi rất nhiều thuật 
toán mới. Mặc dù vậy, lĩnh vực vẫn là một nhiệm vụkhó khăn cho các nhà khoa học. 
Mỗi một thuật toán, một chương trình sắp hàng đa chuỗi đều có những ưu điểm và 
nhược điểm riêng của mình. Vì thếcần tìm cách tối ưu từng ưu điểm của từng phương 
pháp, và hạn chếnhược điểm của chúng. 
Khóa luận sẽtrình bày vềcác phương pháp sắp hàng đa chuỗi được ứng dụng 
rộng rãi hiện nay đồng thời phân tích và đưa ra một giải pháp nhằm phát huy tối đa ưu 
điểm cũng nhưhạn chếtối thiểu nhược điểm của từng phương pháp.
                
              
                                            
                                
            
                       
            
                
43 trang | 
Chia sẻ: nhungnt | Lượt xem: 2091 | Lượt tải: 1
              
            Bạn đang xem trước 20 trang tài liệu Đề tài Các phương pháp sắp hàng đa chuỗi nhanh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI 
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ 
Nguyễn Hoàng Dũng 
CÁC PHƯƠNG PHÁP SẮP HÀNG ĐA CHUỖI 
NHANH 
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY 
Ngành: Công Nghệ Thông Tin 
Cán bộ hướng dẫn: Tiến sĩ. Lê Sỹ Vinh 
HÀ NỘI - 2010 
LỜI CẢM ƠN 
Đầu tiên, tôi xin gửi lời cảm ơn tới gia đình, nơi đã động viên và tạo mọi điều 
kiện giúp tôi học hành tốt nhất trong suốt những năm qua. 
Tôi xin chân thành cảm ơn các thầy cô giáo trong trường Đại học Công nghệ - 
Đại học Quốc gia Hà Nội đã tận tình giúp đỡ và truyền đạt kiến thức cho tôi trong suốt 
4 năm học qua để tôi có đủ kiến thức hoàn thành khóa luận này. 
Đặc biệt, tôi xin gửi lời cảm ơn sâu sắc tới thầy Lê Sỹ Vinh – người đã nhiệt tình 
giúp đỡ, định hướng cũng như động viên tôi trong quá trình nghiên cứu và hoàn thành 
khóa luận. 
Tôi xin gửi lời cảm ơn chân thành tới thầy Từ Minh Phương trường đại học Bưu 
Chính Viễn Thông, người đã truyền dạy cho tôi những kiến thức quan trọng liên quan 
trực tiếp đến đề tài của khóa luận. 
Tôi cũng xin cảm ơn các bạn trong nhóm Tin sinh. Các bạn đã giúp đỡ tôi rất 
nhiều trong việc hoàn thành khóa luận. 
Mặc dù đã rất cố gắng hoàn thành khóa luận này, xong khóa luận sẽ khó tránh 
khỏi những thiếu sót, kính mong quý thầy cô tận tình chỉ bảo giúp tôi. Một lần nữa tôi 
xin cảm ơn tất cả mọi người. 
Hà Nội, tháng 5 năm 2010 
 Sinh viên 
 Nguyễn Hoàng Dũng 
Tóm tắt 
Tin Sinh học (bioinformatics) là một lĩnh vực khoa học sử dụng các công nghệ 
của các ngành tin học, toán học ứng dụng, thống kê, khoa học máy tính, trí tuệ nhân 
tạo, hóa học và hóa sinh để giải quyết các vấn đề sinh học. Sắp hàng đa chuỗi là một 
vấn đề quan trọng trong lĩnh vực tin sinh học. Trong những năm gần đây, chất lượng 
của các chương trình sắp hàng đa chuỗi đã được cải thiện rất nhiều bởi rất nhiều thuật 
toán mới. Mặc dù vậy, lĩnh vực vẫn là một nhiệm vụ khó khăn cho các nhà khoa học. 
Mỗi một thuật toán, một chương trình sắp hàng đa chuỗi đều có những ưu điểm và 
nhược điểm riêng của mình. Vì thế cần tìm cách tối ưu từng ưu điểm của từng phương 
pháp, và hạn chế nhược điểm của chúng. 
Khóa luận sẽ trình bày về các phương pháp sắp hàng đa chuỗi được ứng dụng 
rộng rãi hiện nay đồng thời phân tích và đưa ra một giải pháp nhằm phát huy tối đa ưu 
điểm cũng như hạn chế tối thiểu nhược điểm của từng phương pháp. 
Mục Lục: 
Chương 1. Giới thiệu .......................................................................................................1 
1.1 Multiple alignment .................................................................................................1 
1.2 Các chương trình sắp hàng đa chuỗi (multiple sequences alignment ) thông dụng 
hiện nay ........................................................................................................................3 
Chương 2. Các phương pháp bắt cặp đa chuỗi ................................................................5 
2.1 CLUSTALW ..........................................................................................................5 
2.1.1 Tính toán ma trận khoảng cách giữa mọi cặp chuỗi ........................................5 
2.1.2 Tạo cây hướng dẫn (guide tree) .......................................................................5 
2.1.3 Progressive alignment ......................................................................................6 
2.2. MUSCLE...............................................................................................................7 
2.2.1 Các loại khoảng cách và các cách xây dựng cây hướng dẫn ...........................7 
2.2.2 Profile alignment..............................................................................................8 
2.2.3 Thuật toán ........................................................................................................8 
2.3 MAFFT.................................................................................................................10 
2.3.1 Bắt cặp nhóm sử dụng FFT............................................................................10 
2.3.2 Hệ thống tính điểm.........................................................................................13 
2.4 PROBCONS.........................................................................................................15 
Chương 3. Cây quyết định .............................................................................................17 
3.1 Cách giải quyết của Chuong B. Do và Kazutaka Katoh ......................................17 
3.2 Vấn đề tốc độ........................................................................................................18 
3.2.1 Dữ liệu với số lượng chuỗi lớn ( > 200 chuỗi) ..............................................18 
3.2.2 Dữ liệu với số lượng sequence nhỏ, tổng số amino axit nhỏ .........................19 
3.2.3 Dữ liệu với độ dài của chuỗi quá lớn ( > 2000 amino acids).........................20 
3.3 Vấn đề điểm chuẩn (benchmark)..........................................................................21 
3.3.1 Với các chuỗi có độ tương đồng cao .............................................................21 
3.3.2 Với các chuỗi có độ tương đồng thấp ............................................................21 
3.4 Cây quyết định......................................................................................................22 
3.4.1 Cây quyết định cho yêu cầu tốc độ xử lý cao ................................................23 
3.4.2 Cây quyết định cho yêu cầu tốc điểm chuẩn cao...........................................24 
Chương 4: Kết quả thực nghiệm và bình luận...............................................................26 
4.1 Giới thiệu về BAliBASE......................................................................................26 
4.1.1 BAliBASE 2...................................................................................................26 
4.1.2 BAliBASE 3...................................................................................................26 
4.1.3 Cách đánh giá của BAliBASE .......................................................................27 
4.2 Kết quả thực nghiệm ............................................................................................28 
Chương 5: Kết Luận ......................................................................................................34 
Tài Liệu Tham Khảo......................................................................................................35 
Mục Lục Bảng: 
Bảng 1: Bắt cặp đa chuỗi ADN của Người, Mèo, Khỉ, Chó, Ngựa, Gà và Vịt với các 
phép thay thế ở vị trí số 2, 3, 11, 13 và phép chén/xóa ở vị trí số 7 và số 10..................2 
Bảng 2: Các chương trình bắt cặp đa chuỗi phổ biến nhất hiện nay.............................3 
Bảng 3: Kiểm tra các MUSCLE, FFT-NS2, FFT-NS1 với các test có số lượng chuỗi từ 
200 đến 500 chuỗi..........................................................................................................18 
Bảng 4: Kiểm tra FFT-NS2 với các dữ liệu có số lượng chuỗi lớn hơn 400 ................19 
Bảng 5: Thời gian chạy của PROBCONS theo tống số amino acid..............................20 
Bảng 6: Tính toán SP(mi) ..............................................................................................27 
Bảng 7: Kết quả các phương pháp với BAliBASE 2......................................................29 
Bảng 8: Kết quả các phương pháp với BAliBASE 3 – homologous ..............................30 
Bảng 9: Kết quả các phương pháp với BAliBASE 3 – ful llength .................................31 
Mục Lục Hình: 
Hình 1: Ví dụ về k-mer [6] ..............................................................................................7 
Hình 2: Các bước thực hiện của MUSCLE [6] ...............................................................9 
Hình 3: Ví dụ về độ trễ [4] ............................................................................................12 
Hình 4: Ví dụ về việc tạo ma trận tương đồng [4] ........................................................13 
Hình 5: Ví dụ về global homology [4] ...........................................................................21 
Hình 6: Ví dụ về local homology [4] .............................................................................22 
Hình 7: Ví dụ về các đoạn gap nội khối [4] ..................................................................22 
Hình 8: Cây quyết định với yêu cầu xử lý tốc độ cao....................................................23 
Hình 9: Cây quyết định với yêu cầu xử lý với điểm chuẩn cao .....................................24 
 1 
Chương 1. Giới thiệu 
1.1 Multiple alignment 
Trình bày tổng quan dưới đây được tham khảo từ luận văn tiến sỹ của thầy Lê Sỹ 
Vinh[1] và cuốn Inferring Phylogenies[2] của giáo sư Felsenstein. 
Với sự phát triển như vũ bão của khoa học kỹ thuật, trong vài thập kỷ qua, sinh 
học phân tử đã có nhiều bước tiến mạnh mẽ. Kèm theo đó là sự ra đời của hàng loạt 
loại công cụ phục vụ cho sinh học, qua đó góp phần thúc đẩy mạnh mẽ quá trình giải 
mã một số lượng lớn trình tự gen ở nhiều loài sinh vật. Cho đến nay, nhiều bộ gen của 
nhiều loài vi khuẩn và sinh vật bậc cao đã được giải mã gần như hoàn toàn. Trong đó, 
một khám phá đặc biệt là việc giải mã bộ gen người. Dự án Bản đồ gen người là một 
dự án nghiên cứu khoa học mang tầm quốc tế. Dự án khởi đầu vào năm 1990 với 
người đứng đầu là tiến sĩ James D. Watson. Bản phác thảo đầu tiên của bộ gen đã được 
cho ra đời vào năm 2000 và hoàn thiện vào năm 2003. Một dự án song song cũng được 
thực hiện bởi một công ty tư nhân tên là Celera Genomics. Tuy nhiên, hầu hết trình tự 
chuỗi được xác định là tại các trường đại học và các viện nghiên cứu từ các nước Mỹ 
Cannada và Anh. Việc xác định toàn bộ bộ gen người là một bước tiến quan trọng 
trong việc phát triển thuốc và các khía cạnh chăm sóc sức khỏe khác. Qua những phát 
kiến này, lượng thông tin sinh học ngày càng phong phú và đa dạng. Để có thể xử lý 
và ứng dụng khối lượng thông tin đồ sộ như vậy, ngành Tin Sinh học (Bioinformatics) 
ra đời, đó là sự kết hợp giữa công nghệ thông tin và sinh học nhằm phục vụ nhiều mục 
đích khác nhau. Trong số đó, việc nghiên cứu phân tích trình tự (chuỗi AND và 
protein) đóng một vai trò vô cùng quan trọng. Để đơn giản cho việc nghiên cứu, các 
trình tự DNA, protein được tuần tự hóa và nghiên cứu dưới dạng chuỗi các kí tự. Khi 
một gen mới được phát hiện, một trong những yêu cầu quan trọng là làm sao tìm được 
chức năng, tác dụng của gen này, yêu cầu tương tự cũng được đặt ra với các amino 
acid mới. Một phương pháp đơn giản để xử lý yêu cầu này là so sánh, đánh giá sự 
giống nhau (tương đồng) của các chuỗi mới tìm ra với các chuỗi đã biết, từ đó ta có thể 
đưa ra dự đoán về các chức năng của những chuỗi mới phát hiện này. Do đó, sắp hàng 
đa chuỗi (multiple sequence alignment) các đoạn ADN / protein là một trong những 
bài toán phổ biến và quan trọng nhất trong sinh học phân tử và các lĩnh vực liên quan. 
Sắp hàng đa chuỗi giúp chúng ta giải quyết một số vấn đề sau: 
- Tìm kiếm và chẩn đoán chức năng cho các chuỗi ADN / protein mới giải mã 
2 
- Tìm kiếm và chẩn đoán cấu trúc bậc cao cho chuỗi ADN / protein mới giải mã 
- Phân tích phép biến đổi để xây dựng quá trình tiến hóa giữa các loài sinh vật. 
- Xác định các vị trí biến đổi dẫn đến các bệnh liên quan đến di truyền, để từ đó 
tìm ra phương pháp phát hiện và cứu chữa. 
Trong quá trình tiến hóa, có 3 phép biến đổi phổ biến trên một trình tự: (1) thay 
thế, (2) chèn, (3) xóa. Các phép biến đổi này làm cho các chuỗi tương đồng bị biến đổi 
cả về nội dung cũng như kích thước. Sắp hàng đa chuỗi là quá trình chèn thêm các dấu 
cách (biểu diễn cho nhưng amino acid bị xóa khỏi chuỗi trong quá trình tiến hóa) vào 
các chuỗi sao cho tất cả các amino acid ở cùng một ví trí thì tương đồng. Sau khi sắp 
hàng, tất cả các chuỗi đều có độ dài bằng nhau. Kết quả, ta sẽ thu được một tập các 
chuỗi gọi là một ‘đa chuỗi thẳng hàng’ ( sequences alignment ). 
 Ví dụ dưới đây thể hiện một đa chuỗi thẳng hàng của 7 đoạn ADN của 7 loài 
sinh vật là Người, Mèo, Khỉ, Chó, Ngựa, Gà và Vịt. Phân tích cho thấy ở vị trí thứ 2 
tồn tại phép biến đổi giữa ‘C’ của nhóm động vật ( Người, Mèo, Khỉ, Chó ) và ‘G’ của 
nhóm động vật ( Ngựa, Gà, Vịt ). Tương tự như vậy ta thấy tồn tại các phép biến đổi ở 
các vị trí 3, 4, 11 và 13. Ở vị trí 7 và số 10, ta quan sát thấy phép biến đổi chèn / xóa 
‘G’ và ‘C’ tương ứng. 
Bảng 1: Bắt cặp đa chuỗi ADN của Người, Mèo, Khỉ, Chó, Ngựa, Gà và Vịt với các 
phép thay thế ở vị trí số 2, 3, 11, 13 và phép chén / xóa ở vị trí số 7 và số 10. 
 1 2 3 4 5 6 7 8 9 10 11 12 13 14 
Người A C A A C T G G T C C G T T 
Mèo A C G A C T G G T C C G T T 
Khỉ A C G G C T G G T C C G T T 
Chó A C G G C T G - T C C G G T 
Ngựa A G G A C T G G T - C G G T 
Gà A G T G C T - G T C G G G T 
Vịt A G T A C T - G T - G G G T 
Dễ dàng nhận thấy, chúng ta có thể sử dụng nhiều cách chèn dấu cách vào các vị 
trí khác nhau để tạo ra các phương án bắt cặp đa chuỗi khác nhau. Trước đây, các nhà 
sinh vật học có thể tiến hành bắt cặp đa chuỗi bằng mắt và kinh nghiệm. Không cần 
phải nói cũng có thể hiểu được đó là một công việc vô cùng vất vả và khô khan. Mà 
kết quả đạt được là rất hạn chế về chất lượng. Qua đó ta có thể thấy được tầm quan 
3 
trọng của sắp hàng đa chuỗi. Để nâng cao độ chính xác, các phép biến đổi có thể được 
gắn các trọng số khác nhau sao cho các phép biến đổi ít khi xảy ra có trọng số lớn hơn 
các phép biến đổi thường xuyên xảy ra. Đối với dữ liệu protein, người ta thường sử 
dụng ma trận thay thế axit amin làm trọng số cho các phép thay thế giữa các cặp axit 
amin ( ma trận thay thế axit amin phản ánh tốc độ thay thế giữa các axit amin ). 
1.2 Các chương trình sắp hàng đa chuỗi (multiple sequences 
alignment ) thông dụng hiện nay 
Bài toán sắp hàng đa chuỗi là một trong những bài toán được quan tâm và nghiên 
cứu nhiều nhất trong hai thập kỉ qua. Một trong các phương pháp nổi bật và thông 
dụng trước đây là phương pháp CLUSTALW[3] được phát triển bởi Thompson và 
đồng nghiệp từ những năm 1994. Phương pháp CLUSTALW[3] tiến hành sắp hàng 
các chuỗi sao cho tổng số điểm phạt (điểm phạt cho phép thay thế, điểm phạt cho phép 
chèn / xóa…) là nhỏ nhất. Để làm được việc đó, CLUSTALW[3] từng bước tiến hành 
sắp hàng hai chuỗi (hay hai nhóm chuỗi đã được sắp hàng) để cuối cùng thu được một 
đa chuỗi thẳng hàng hoàn chỉnh. Tiếp theo CLUSTALW[3], nhiều phương pháp khác 
đã được đề xuất. Những phương pháp cho kết quả tốt nhất hiện nay là:MAFFT[4], 
PROBCONS[5], và MUSCLE[6]. Trong đó MAFFT[4] là phương pháp mới được 
phát triển bao gồm khá nhiều chương trình con cho các yêu cầu khác nhau. 
Bảng 2: Các chương trình bắt cặp đa chuỗi phổ biến nhất hiện nay. 
Chương trình Ưu điểm Nhược điểm 
CLUSTALW[3] 
Tiết kiệm bộ nhớ, có khả 
năng chạy các test có chuỗi 
có độ dài lớn. 
Kém hơn về độ chính xác và tốc 
độ so với một số chương trình 
mới 
MUSCLE[6] 
Đạt độ chính xác khá cao và 
tốc độ nhanh với kích thước 
dữ liệu vừa phải. 
Đối với những tập dữ liệu lớn 
(>1000 chuỗi), nên chạy với cấu 
hình tiết kiệm thời gian và bộ 
nhớ 
PROBCONS[5] 
Cho độ chính xác cao khi 
kiểm tra với một vài bộ dữ 
liệu chuẩn. 
Hạn chế về tốc độ và bộ nhớ, 
không có khả năng thực hiện với 
những bộ dữ liệu lớn (>100 
4 
chuỗi) 
MAFFT[4] 
Phát triển với nhiều tùy 
chọn, cho phép thực hiện 
nhiều yêu cầu từ tốc độ 
nhanh đến độ chính xác rất 
cao 
Hạn chế về tốc độ với những 
yêu cầu chạy chính xác, và cũng 
không phải là phương pháp cho 
kết quả cao nhất trên tất cả các 
bộ dữ liệu chuẩn 
Mặc dù việc sắp hàng đa chuỗi và tìm kiếm thành phần lặp có một lịch sử nghiên 
cứu và phát triển khá lâu, nhưng nó vẫn là một bài toán quan trọng cần phải tiếp tục 
tập trung nghiên cứu và phát triển để giải quyết các đòi hỏi ngày một cao của lĩnh vực 
sinh học. 
Hàng chục phương pháp sắp hàng đa chuỗi mới được đề xuất hàng năm. Mỗi 
phương pháp đưa ra đều có ưu điểm và nhược điểm về độ chính xác và thời gian thực 
hiện. Quan trọng hơn chúng thường chỉ phù hợp cho một số kiểu dữ liệu, và dẫn đến 
khó khăn lớn cho người dùng trong việc lựa chọn phương pháp phù hợp nhất cho một 
bộ dữ liệu cụ thể đang nghiên cứu. Ví dụ, đối với các bộ dữ liệu có chứa thành phần 
lặp, chúng ta phải sử dụng phương pháp tiên tiến nhất cho phép bắt cặp đa chuỗi kết 
hợp với tìm thành phần lặp. Vì vậy khóa luận sẽ tập trung giải quyết vấn đề trên bằng 
cách xây dựng một chương trình sắp hàng đa chuỗi kết hợp các phương pháp tốt nhất 
hiện nay thông qua việc sử dụng cây quyết định. 
5 
Chương 2. Các phương pháp bắt cặp đa chuỗi 
2.1 CLUSTALW 
CLUSTALW[3] là một chương trình được biết đến và sử dụng nhiều nhất trong 
các chương trình giải quyết bài toán MSA (Multiple sequences alignment). Nó được 
phát triển bởi Julie D. Thompson, Desmond G. Higgins và Toby J. Gibson. 
CLUSTALW[3] được thực hiện thông qua 3 bước chính: 
- Tính toán ma trận khoảng cách giữa mọi cặp chuỗi. 
- Tạo cây hướng dẫn (guide tree). 
- Progressive alignment. 
2.1.1 Tính toán ma trận khoảng cách giữa mọi cặp chuỗi 
Tại bước này, mọi cặp chuỗi được bắt cặp với nhau, sau đó tính khoảng cách giữa 
từng cặp chuỗi. Việc này được thực hiện bằng cách sử dụng phương pháp tính toán 
xấp xỉ nhanh[7]. Phương pháp này cho phép một số lượng lớn các chuỗi được sắp 
hàng. Còn điểm khoách cách được tính bằng cách: tính số lượng k-tuple khớp với nhau 
(các đoạn giống hệt nhau, thường có độ dài 1 hoặc 2 cho protein và 2 hoặc 4 cho chuỗi 
nucleotide) trong kết quả tốt nhất của 2 chuỗi sắp hàng và trừ đi điểm phạt cho việc 
chèn gap. 
2.1.2 Tạo cây hướng dẫn (guide tree) 
Từ bước 1, ta có ma trận khoảng cách giữa mọi cặp chuỗi. Cây hướng dẫn (guide 
tree) cho bước tiếp theo được tạo ra nhờ phương pháp Neighbour-Joining[8]. Đây là 
một thuật toán lặp. Mỗi lần lặp thuật toán chạy qua các bước sau: 
- Căn cứ vào ma trận khoảng cách hiện tại (ở đây là ma trận có ở bước 1) ta tính 
toán ma trận khoảng cách Q (được định nghĩa dưới đây). 
- Tìm các cặp phần tử mà có giá trị khoảng cách Q nhỏ nhất. Tạo nên một nút 
trên cây và kết hợp 2 phần tử này thành một nút. 2 phần tử này được gọi là “hàng 
xóm”. 
- Tính toán khoảng cách của 2 “hàng xóm” với nút mới. 
6 
- Tính toán khoảng cách của các nút bên ngoài với nút mới này. 
- Quay lại bước 1 với ma trận khoảng cách được tính từ bước trước. 
Thuật toán dừng lại khi chỉ còn lại một nút duy nhất, và nút này trở thành gốc của 
cây hướng dẫn (guide tree). 
Ở đây, ta định nghĩa: 
Ma trận khoảng cách ban đầu có r phần tử. d(i, j) là khoảng cách giữa i và j trong 
ma trận đó. 
Khi đó khoảng cách Q giữa i và j được tính: 
1 1
( , ) ( 2) ( , ) ( , ) ( , )
r r
k k
Q i j r d i j d i k d j k
= =
= − − −∑ ∑ 
Với mỗi “hàng xóm” khi được nối tạo thành một nút mới, chúng ta sử dụng công 
thức sau để tính khoảng cách giữa từng “hàng xóm” với nút mới. Ở đây: f, g là 2 hàng 
xóm và u là nút mới được tạo thành: 
1 1
1 1( , ) ( , ) [ ( , ) ( , )]
2 2( 2)
r r
k k
d f u d f g d f k d g k
r = =
= + −− ∑ ∑ 
Khi một nút mới được tạo thành ta dùng công thức sau để tính khoảng cách của 
nó với các nút cũ: 
1 1( , ) [ ( , ) ( , )] [ ( , ) ( , )]
2 2
d u k d f k d f u d g k d g u= − + − 
Ở đây, u là nút mới, k là nút cũ, f và g là 2 phần tử tạo nên nút mới u. 
2.1.3 Progressive alignment 
Dựa vào cây hướng dẫn (guide tree) được tạo ra từ bước 2, chúng ta sử dụng sắp 
hàng các chuỗi từ nút lá cho đến gốc của cây. Mỗi bước sẽ là quá trình sắp hàng 2 
nhóm chuỗi đã được sắp hàng trước đó sử dụng thuật toán quy hoạch động [9] [10]. 
Gap ở những nhóm chuỗi này được giữ nguyên trong kết quả tạo thành. Việc này lặp 
đi lặp lại cho đến khi gặp gốc của cây hướng dẫn. Đó là kết quả cuối cùng.