100
Đại Hc Quc Gia Thành PhHChí Minh Trường Đại Hc Bách Khoa PHM MNH HÙNG CÁC KTHUT TOÁN HC CHO BÀI TOÁN SO SÁNH ĐA TRÌNH TChuyên ngành: Khoa hc Máy tính LUN VĂN THC SĨ TP. HCHÍ MINH, tháng 11 năm 2007

Luanvan caohoc pmh

Embed Size (px)

Citation preview

Page 1: Luanvan caohoc pmh

Đại Học Quốc Gia Thành Phố Hồ Chí Minh Trường Đại Học Bách Khoa

PHẠM MẠNH HÙNG

CÁC KỸ THUẬT TOÁN HỌC CHO BÀI

TOÁN SO SÁNH ĐA TRÌNH TỰ

Chuyên ngành: Khoa học Máy tính

LUẬN VĂN THẠC SĨ

TP. HỒ CHÍ MINH, tháng 11 năm 2007

Page 2: Luanvan caohoc pmh

ĐẠI HỌC QUỐC GIA TP. HCM CỘNG HOÀ XÃ HỘI CHỦ NGHIÃ VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc Lập - Tự Do - Hạnh Phúc ---------------- ---oOo--- Tp. HCM, ngày . .05. . tháng . .11. . năm .2007.

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ và tên học viên : Phạm Mạnh Hùng..............................Giới tính : Nam / Nữ

Ngày, tháng, năm sinh : 26/2/1982....................................Nơi sinh : Phú Yên ...................

Chuyên ngành : Khoa học Máy tính......................................................................................

Khoá : 2005 .........................................................................................................................

1- TÊN ĐỀ TÀI : ................................................................................................................

CÁC KỸ THUẬT TOÁN HỌC CHO BÀI TOÁN SO SÁNH ĐA TRÌNH TỰ

...........................................................................................................................................

...........................................................................................................................................

2- NHIỆM VỤ LUẬN VĂN : ..............................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

3- NGÀY GIAO NHIỆM VỤ : ...........................................................................................

4- NGÀY HOÀN THÀNH NHIỆM VỤ : ..........................................................................

5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN : TS. Nguyễn Văn Minh Mẫn ..........................

Nội dung và đề cương Luận văn thạc sĩ đã được Hội Đồng Chuyên Ngành thông qua.

CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM BỘ MÔN

(Họ tên và chữ ký) QUẢN LÝ CHUYÊN NGÀNH

(Họ tên và chữ ký)

TS. Nguyễn Văn Minh Mẫn TS. Đinh Đức Anh Vũ

Page 3: Luanvan caohoc pmh

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

Cán bộ hướng dẫn khoa học : TS. Nguyễn Văn Minh Mẫn ........................................

Cán bộ chấm nhận xét 1 : ............................................................................................ Cán bộ chấm nhận xét 2 : ............................................................................................

Luận văn thạc sĩ được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày . . . . tháng . . . . năm . 2007 .

Page 4: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang i

LỜI CAM ĐOAN Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác như đã ghi rõ trong luận văn, các công việc trình bày trong luận văn này là do chính tôi thực hiện và chưa có phần nội dung nào của luận văn này được nộp để lấy một bằng cấp ở trường này hoặc trường khác. Ngày 05 tháng 11 năm 2007 Phạm Mạnh Hùng

Page 5: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang ii

LỜI CẢM ƠN Tôi xin gởi lời cảm ơn chân thành nhất đến TS. Nguyễn Văn Minh Mẫn, người đã tận tình hướng dẫn, giúp đỡ tôi trong suốt quá trình thực hiện luận văn và tạo điều kiện để tôi có thể hoàn thành luận văn này. Xin cảm ơn gia đình và những người bạn đã dành cho tôi tình thương yêu và sự hỗ trợ tốt nhất.

Page 6: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang iii

TÓM TẮT LUẬN VĂN

So sánh đa trình tự(Multiple Sequence Alignment-MSA) là một trong 10 bài toán lớn của Sinh tin học(Bioinformatics). MSA đóng vai trò quan trọng trong Sinh tin học nói chung và lĩnh vực tìm kiếm gene (Gene Finding) nói riêng. MSA là một bài toán NP, và hoàn toàn chưa có giải pháp trọn vẹn để tìm lời giải tối ưu của bài toán. Nhiều phương pháp sử dụng heuristic đã được đưa ra để giải quyết bài toán khi tập dữ liệu đầu vào lớn, các phương pháp này hướng tới việc tìm 1 lời giải cận tối ưu với thời gian tính toán và bộ nhớ sử dụng chấp nhận được. Progress Algorithm là một phương pháp tốt tiếp cận theo phương thức này.

Đề tài này trình bày một giải thuật mới dựa trên Progressive Algorithm. Sử dụng lời giải của bài toán TSP để mô tả quá trình so sánh(align) các sequence. Để cung cấp một Progressive Algorithm có chất lượng, giải thuật đã tối ưu bài toán Pairwise Sequence Alignment(PSA) về độ chính xác và bộ nhớ sử dụng thông qua giải thuật ”chia để trị” kết hợp với việc sử dụng 3 ma trận đánh giá BLOSUM. Thông qua quá trình so sánh với CLUSTALW(một chương trình hiện thực Progressive Algorithm được đánh giá là cho kết quả tốt nhất), dựa trên kết quả kiểm thử với tập dữ liệu BAliBASE benchmark và một số nguồn dữ liệu từ NCBI(National Center for Biotechnology Information), chương trình hiện thực giải thuật đã cung cấp một lời giải có độ chính xác khá cao, tiết kiệm bộ nhớ và có thời gian tính toán chấp nhận được.

Từ khoá: Algorithm, Sequence Alignment, Multiple Sequence Alignment, MSA, Pairwise Sequence Alignment, PSA, Progressive Algorithm, Dynamic Programming, Traveling Salesman Problem, TSP, CLUSTALW, BLOSUM, BAliBASE.

Page 7: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang iv

MỤC LỤC LỜI CAM ĐOAN ...........................................................................................................i LỜI CẢM ƠN ............................................................................................................... ii TÓM TẮT LUẬN VĂN .............................................................................................. iii DANH MỤC HÌNH ..................................................................................................... vi DANH MỤC BẢNG .................................................................................................. viii Chương 1. GIỚI THIỆU...............................................................................................1

1.1. Giới thiệu ..............................................................................................................1 1.2. Kết cấu của luận văn ...........................................................................................4

Chương 2. TỔNG QUAN VỀ KHÁI NIỆM SO SÁNH TRÌNH TỰ (SEQUENCE ALIGNMENT) ...........................................................................................6

2.1. So sánh trình tự....................................................................................................6 2.1.1. Định nghĩa So sánh trình tự(Sequence Alignment) ....................................................6 2.1.2. Phân loại .....................................................................................................................7 2.1.3. So sánh 2 trình tự (Pairwise Sequence Alignment-PSA)............................................8 2.1.4. So sánh nhiều trình tự (Multiple Sequence Alignment-MSA)....................................9

2.2. Các khái niệm khác ...........................................................................................10 2.2.1. Ma trận đánh giá(Scoring Matrix) ............................................................................12 2.2.2. Gap............................................................................................................................14 2.2.3. Phương pháp đánh giá(Scoring Method) ..................................................................15

2.3. Các phương pháp giải quyết bài toán so sánh trình tự ..................................18 2.3.1. Phương pháp Quy hoạch động(Dynamic Programming)..........................................19 2.3.2. Sử dụng các thiết bị phần cứng.................................................................................20 2.3.3. Phương pháp tìm kiếm cục bộ(Local Search)...........................................................21 2.3.4. Sử dụng giải thuật Di truyền(Genetic Algorithm) ....................................................21 2.3.5. Sử dụng Mô hình Markov ẩn(Hidden Markov Model-HMM). ................................21

Chương 3. CƠ SỞ LÝ THUYẾT VÀ PHƯƠNG PHÁP THỰC HIỆN .................24 3.1. Giới thiệu về Dynamic Programming ..............................................................24 3.2. Bài toán PSA và cách giải quyết bằng kỹ thuật quy hoạch động ..................24

3.2.1. Giải thuật quy hoạch động cho bài toán PSA ...........................................................25 3.2.2. Giải thuật Gotoh........................................................................................................28 3.2.3. Giải thuật cải tiến không gian nhớ ...........................................................................29

3.3. Giải thuật tính toán phép Alignment tối ưu cho bài toán Multiple Alignment sử dụng kỹ thuật dynamic programming .........................................................................32

3.3.1. Giải thuật Center Star Alignment Algorithm............................................................33 3.3.2. Phương pháp Progressive Algorithm giải quyết bài toán MSA................................37 3.3.3. Feng-Doolittle Algorithm .........................................................................................38

Chương 4. THIẾT KẾ GIẢI THUẬT VÀ HIỆN THỰC PHƯƠNG PHÁP GIẢI QUYẾT BÀI TOÁN MSA .......................................................................42

4.1. Giải thuật sử dụng cho bài toán PSA...............................................................42

Page 8: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang v

4.1.1. Giải thuật tính toán dựa theo kỹ thuật chia để trị......................................................43 4.2. Giải thuật hiện thực cho bài toán MSA ...........................................................49

4.2.1. Bài toán TSP(Travelling Salesman Problem-Bài toán người bán hàng). .................50 4.2.2. Giải thuật 1A.............................................................................................................51 4.2.3. Giải thuật 1B(Giải thuật cải tiến gom nhóm nhỏ nhất).............................................55

4.3. Giải thuật di truyền và bài toán TSP. ..............................................................57 4.3.1. Đặc điểm giải thuật di truyền....................................................................................57 4.3.2. Cấu trúc thuật giải di truyền tổng quát......................................................................59

4.4. Phần hiện thực giải thuật và chương trình: ....................................................60

Chương 5. KẾT QUẢ NHẬN XÉT............................................................................66 5.1. Một số kết quả chạy chương trình. ..................................................................66 5.2. BAliBASE (Benchmark Alignment Database)................................................68 5.3. So sánh kết quả ..................................................................................................69

5.3.1. Giới thiệu về các chương trình được sử dụng...........................................................70 5.3.2. So sánh độ chính xác của kết quả .............................................................................70 5.3.3. So sánh về mặt thời gian chạy, bộ nhớ .....................................................................77

Chương 6. KẾT LUẬN ...............................................................................................78

TÀI LIỆU THAM KHẢO...........................................................................................80

Phụ lục 1. Bảng đối chiếu Thuật ngữ Anh - Việt......................................................83

Phụ lục 2. Từ viết tắt ...................................................................................................87

Tham khảo Chỉ mục....................................................................................................88

Page 9: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang vi

DANH MỤC HÌNH Hình 2.1 Ví dụ về PSA............................................................................................................................7 Hình 2.2 Ví dụ về so sánh trình tự theo hướng toàn cục..........................................................................8 Hình 2.3 Ví dụ về so sánh trình tự theo hướng cục bộ.............................................................................8 Hình 2.4 Cấu trúc 1 PSA..........................................................................................................................8 Hình 2.5 Giới thiệu 1 MSA......................................................................................................................9 Hình 2.6 Giới thiệu các khái niệm của MSA .........................................................................................10 Hình 2.7 Quá trình biến đổi của 2 sequence...........................................................................................10 Hình 2.8 Ví dụ về các phép thay thế gap ..............................................................................................11 Hình 2.9 Ví dụ về Gap. ..........................................................................................................................15 Hình 2.10 Mối tương quan giữa các chương trình hiện thực cho các phương pháp. .............................19 Hình 2.11 Phương pháp tính toán chính xác bằng dynamic programming ............................................20 Hình 2.12 Mô hình Markov cho bài toán MSA. ....................................................................................22 Hình 3.1 Phương pháp quy hoạch động cho bài toán PSA ....................................................................25 Hình 3.2 Các ma trận S, D, I cho 2 chuỗi AGTAC and AAG. .............................................................31 Hình 3.3 Minh hoạ quá trình tìm 1 MSA tối ưu.....................................................................................33 Hình 3.4 Mô hình tiến hoá hình sao .......................................................................................................34 Hình 3.5 Minh họa Center Star Algorithm.............................................................................................35 Hình 3.6 Hình minh hoạ cho Progressive Algorithm. ............................................................................37 Hình 3.7 Minh họa Feng-Doolittle Algorithm .......................................................................................39 Hình 3.8 Ví dụ thực thi Feng-Doolittle Algorithm ................................................................................39 Hình 4.1 Mô hình quá trình thực hiện giải thuật PSA............................................................................43 Hình 4.2 Quá trình xây dựng ma trận của thuật giải cho bài toán PSA .................................................48 Hình 4.3 Quá trình align của Center Star Algorithm và phiên bản cải tiến ...........................................50 Hình 4.4 Bài toán TSP. ..........................................................................................................................50 Hình 4.5 Kết quả bài toán TSP...............................................................................................................51 Hình 4.6 Lưu đồ thuật giải 1A ...............................................................................................................52 Hình 4.7 Lưu đồ thuật giải 1B................................................................................................................55 Hình 4.8 Cấu trúc chương trình hiện thực..............................................................................................61 Hình 4.9 Module PSA ............................................................................................................................61 Hình 4.10 Sơ đồ các khối chức năng của Module MSA. .......................................................................62 Hình 4.11 Sơ đồ các khối chức năng của module TSP. .........................................................................63 Hình 5.1 Đồ thị tương quan về độ chính xác của MSAPR, CLUSTALW và MULTAL ......................72 Hình 5.2 Đồ thị tương quan về độ chính xác của MSAPR, CLUSTALW và HMMT...........................74 Hình 5.3 Đồ thị tương quan về độ chính xác của MSAPR, CLUSTALW và HMMT...........................75 Hình 5.4 Đồ thị tương quan về độ chính xác của MSAPR, CLUSTALW, SAGA................................75

Page 10: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang vii

Hình 5.5 Đồ thị tương quan về độ chính xác của MSAPR, CLUSTALW, SAGA................................76 Hình 5.6 So sánh thời gian thực thi của MSAPR và CLUSTALW .......................................................77

Page 11: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang viii

DANH MỤC BẢNG Bảng 2.1Ma trận BLOSUM62 lưu trữ hàm đánh giá độ tương đồng của tập 23 amino acid.................12 Bảng 2.2 Một phần ma trận Identity ......................................................................................................13 Bảng 3.1 Bảng kết quả giải thuật quy hoạch động cho bài toán PSA ....................................................26 Bảng 4.1 Định dạng của file dữ liệu đầu vào .........................................................................................63 Bảng 4.2 Định dạng của file dữ liệu đầu ra............................................................................................64 Bảng 4.3 Định dạng file dữ liệu đầu ra theo chuẩn MSF.......................................................................64 Bảng 4.4 Bảng tóm tắt các lớp của chương trình. ..................................................................................65 Bảng 5.1 TAT Protein HIV1..................................................................................................................66 Bảng 5.2 Kết quả Alignment của MSAPR và CLUSTALW với TAT HIV1 ........................................67 Bảng 5.3 Kết quả chạy chương trình với Nhóm 1 có chiều dài nhỏ ......................................................71 Bảng 5.4 Kết quả chạy chương trình với Nhóm 1 có chiều dài trung bình............................................71 Bảng 5.5 Kết quả chạy chương trình với Nhóm 1 có chiều dài lớn .......................................................72 Bảng 5.6 Kết quả chạy của các chương trình với các sequence của nhóm 2. ........................................73 Bảng 5.7 Kết quả chạy của các chương trình với các sequence của nhóm 3. ........................................74 Bảng 5.8 Kết quả chạy của các chương trình với các sequence của nhóm 4 .........................................75 Bảng 5.9 Kết quả chạy của các chương trình với các sequence của nhóm 5 .........................................76

Page 12: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 1

Chương 1. GIỚI THIỆU

1.1. Giới thiệu Cùng với sự phát triển mang tính đột phá 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 phát triển mạnh mẽ, một loạt các công cụ

ứng dụng sinh học ra đời góp phần thúc đẩy quá trình giải mã một số lượng lớn trình

tự bộ gen ở nhiều loài sinh vật. Cho đến nay, nhiều bộ gen vi khuẩn và các sinh vật

bậc cao đã được giải mã gần như hoàn toàn. Dự án về bộ gen người được thành lập

(1997), và quá trình giải trình tự tất cả 24 cặp nhiễm sắc thể của bộ gen người cũng đã

hoàn thành từ cuối năm 2000, cũng như đã giải được khoảng 90% bộ gen người(2001).

Lượng thông tin sinh học ngày càng trở nên 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 Sinh tin học(hay Bioinformatics)

ra đời, đó là sự kết hợp giữa công nghệ thông tin và sinh học, một cách đơn giản sinh

tin học giải quyết các vấn đề của sinh học bằng cách sử dụng các kỹ thuật của khoa

học máy tính. Các lĩnh vực lớn đang được Sinh tin học giải quyết hiện nay:

Genomic: nghiên cứu cấu trúc và chức năng của gene.

Proteinomics: Phân tích một tỉ lệ lớn các protein của một sinh vật

Pharmacogenomics: phát triển các loại thuốc mới nhắm đến một căn bệnh

xác định

MicroArray: nghiên cứu về DNA chip, protein chip.

Mục tiêu hàng đầu của sinh tin học gắn liền với quá trình phân tích các thông tin

sinh học. Điều này được thể hiện qua các nghiên cứu về:

Tìm kiếm các gene trên các trình tự DNA ở các sinh vật khác nhau.

Phát triển các phương pháp nhằm dự đoán các trình tự RNA, cấu trúc và

chức năng của các protein mới được phát hiện.

Tập hợp các trình tự có sự tương đồng cao để đưa ra mô hình protein.

So sánh các trình tự protein tương đồng và thành lập cây phả hệ mô tả mối

quan hệ tiến hóa

Page 13: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 2

Trong lĩnh vực nghiên cứu phân tích cấu trúc và chức năng của gene và protein,

phân tích trình tự(chuỗi DNA, protein) đóng vai trò quan trọng. Để đơn giản cho việc

nghiên cứu, trình tự DNA, protein sẽ được tuần tự hóa và nghiên cứu dưới dạng chuỗi

các ký tự. Thông thường khi một gene được phát hiện, một trong những yêu cầu quan

trọng là làm thế nào xác định được chức năng của gene này, yêu cầu tương tự cũng

được đặt ra khi phát hiện ra protein mới. Một phương pháp tiếp cận phổ biến đó là

chúng ta sẽ so sánh, đánh giá sự giống nhau(tương đồng) của chuỗi DNA, protein này

với những chuỗi DNA, protein đã biết, từ đó có thể đưa ra dự đoán về chức năng cũng

như cấu trúc của những gene mới phát hiện(Sequence Alignment). Quá trình tiến hóa

của loài người là một quá trình biến đổi đa dạng, từ một gene(chuỗi DNA) tổ tiên dưới

tác động của quá trình tiến hóa đã biến đổi tạo nên những khác biệt so với gene gốc

ban đầu. Do đó việc nhận định sự giống nhau của các đoạn gene, trình tự là một vấn đề

lớn của sinh tin học. Vấn đề được đặt ra (trong phân tích trình tự) đó là làm thế nào để

có được phép so sánh tốt cho các trình tự DNA, khi mà số lượng tế bào trong cơ thể là

khoảng 1014 và mỗi tế bào mang khoảng 3.109 ký tự trong đoạn DNA của chúng. Bài

toán so sánh 2 trình tự(Pairwise Sequence Alignment-PSA) đã được giải quyết trọn

vẹn bằng nhiều phương pháp khác nhau, đồng thời với việc giải quyết bài toán này,

xuất hiện nhu cầu về việc so sánh nhiều trình tự, để so sánh nhiều đoạn gene hoặc tìm

ra một phần tử đại diện cho một tập các gene nhằm đáp ứng nhu cầu ngày càng lớn của

việc tìm kiếm dự đoán cấu trúc của các gene, protein, khi kho dữ liệu sinh học được

tập hợp ngày càng lớn. Bài toán so sánh nhiều trình tự được đặt ra như vấn đề tất yếu.

Không như bài toán so sánh 2 trình tự, bài toán so sánh nhiều trình tự(Multiple

Sequence Alignment-MSA) là một bài toán NP mở, cho đến hiện tại (2007) vẫn chưa

có một giải pháp nào có thể cung cấp một lời giải trọn vẹn cho bài toán, các lời giải

thường tập trung vào việc tìm ra phép so sánh “gần” tốt nhất, và mỗi phương pháp tiếp

cận sẽ chỉ cho những lời giải thực sự tốt tùy từng yêu cầu tiếp cận và bài toán cụ thể.

Progressive Algorithm là một hướng giải quyết tốt cho bài toán so sánh nhiều trình tự.

Đây là phương pháp kết hợp Qui hoạch động(Dynamic Programming) với heuristic.

Phương pháp này sẽ tăng tốc độ tính toán, giảm độ phức tạp của giải thuật, có thể áp

dụng cho các cơ sở dữ liệu gene lớn, phục vụ cho các dự án giải mã gene của các sinh

vật bậc cao.

Page 14: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 3

Từ khi được giới thiệu cho đến hiện nay, bài toán MSA đã và vẫn đang là một

thách thức cho các nhà khoa học. Nghiên cứu và tìm ra một giải pháp cho bài toán vẫn

là động lực thúc đẩy nhiều công trình khoa học về bài toán này.

Xuất phát từ những đặc điểm của bài toán MSA đề tài này cố gắng tập trung vào

giải quyết một số vấn đề sau:

Khảo sát tổng quát các đặc điểm của bài toán MSA, các phương pháp giải

quyết bài toán.

Nghiên cứu về phương pháp dynamic programming, dynamic

programming kết hợp với heuristic, Progressive Algorithm.

Đề xuất một phương pháp giải quyết bài toán dựa trên Progressive

Algorithm.

Xây dựng chương trình hiện thực giải thuật được đề xuất và kiểm thử trên

tập dữ liệu thực tế được lấy từ tổ chức NCBI(National Center for

Biotechnology Information), và BAliBASE benchmark.

Với những mục tiêu này đề tài đã thu được một số kết quả:

Cung cấp cái nhìn tổng quan nhất về so sánh trình tự nói chung và bài toán

MSA nói riêng.

Phân loại các phương pháp giải quyết bài toán MSA, phân tích các ưu

điểm và nhược điểm của từng phương pháp.

Xây dựng giải thuật giải quyết bài toán MSA dựa trên việc cải thiện, tối

ưu hoá bài toán PSA về độ chính xác cũng như bộ nhớ sử dụng, thông

qua việc sử dụng 3 ma trận đánh giá BLOSUM, từ kết quả này của bài

toán PSA sử dụng Progressive Algorithm kết hợp với lời giải của bài toán

TSP để thực hiện quá trình so sánh nhiều trình tự, tìm ra lời giải cận tối

ưu.

Xây dựng thành công chương trình hiện thực giải thuật, cho phép tìm lời

giải cho bài toán MSA với độ chính xác khá cao dựa trên kết quả kiểm thử

trên các mẫu dữ liệu thực tế BAliBase benchmark và NCBI. Chương trình

Page 15: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 4

cho phép tiết kiệm bộ nhớ sử dụng, cũng như thời gian tính toán chấp

nhận được.

1.2. Kết cấu của luận văn Luận văn bao gồm 6 chương.

Chuơng 1. GIỚI THIỆU

Chương này trình bày về bối cảnh, mục tiêu cũng như kết quả thu được của luận

văn.

Chương 2. TỔNG QUAN VỀ KHÁI NIỆM SO SÁNH TRÌNH TỰ

Chương này trình bày tổng quát về khái niệm so sánh trình tự, bài toán PSA,

MSA, các phương pháp đánh giá chất lượng của MSA, các phương pháp giải quyết bài

toán MSA.

Chương 3. CƠ SỞ LÝ THUYẾT VÀ PHƯƠNG PHÁP THỰC HIỆN

Chương này giới thiệu chung về phương pháp quy hoạch động(dynamic

programming). Giới thiệu về phương pháp quy hoạch động giải quyết bài toán PSA,

giải thuật tính giá trị PSA cải tiến về mặt bộ nhớ sử dụng. Phần tiếp theo của chương

này trình bày về cách tiếp cận bài toán MSA hướng đến bài toán chính xác hoàn toàn

bằng quy hoạch động thuần tuý, những khó khăn khi tiếp cận theo phương pháp này,

giới thiệu một cách giải quyết bài toán MSA theo hướng gần đúng dựa trên kỹ thuật

quy hoạch động kết hợp heuristic: Center Star Algorithm . Phần cuối chương này trình

bày về 3 điểm chính, bao gồm giới thiệu Progressive Algorithm tổng quát, Progressive

Algorithm phổ biến nhất, giải thuật Feng-Doolittle(Feng-Doolittle Algorithm) và một

số chương trình hiện thực Progressive Algorithm trong thực tế.

Chương 4. THIẾT KẾ GIẢI THUẬT VÀ HIỆN THỰC PHƯƠNG PHÁP

GIẢI QUYẾT BÀI TOÁN MSA

Đây là chương dài nhất và cũng là chương giới thiệu những giải pháp mới của đề

tài. Chương này trình bày về cách tiếp cận của luận văn để xây dựng giải thuật giải

quyết bài toán MSA. Đầu chương giới thiệu về giải thuật tối ưu hoá tìm lời giải bài

toán PSA dựa trên việc sử dụng kết hợp giải thuật tính giá trị PSA trình bày ở chương

Page 16: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 5

3 và kỹ thuật chia để trị để tìm lời giải cho bài toán PSA. Phần này giới thiệu thêm

việc sử dụng song song 3 ma trận BLOSUM làm hàm đánh giá để cải tiến độ chính

xác, phù hợp với thực tế lời giải của bài toán PSA. Tiếp theo chương này đưa ra một

giải pháp mới giải quyết bài toán MSA bằng cách kết hợp sử dụng giải thuật cho bài

toán PSA vừa thu được, và giải thuật Feng-Doolittle để mô tả cách thức align các

nhóm chuỗi trình tự(sequence) với nhau. Sử dụng kết quả bài toán TSP để tìm ra thứ

tự align các nhóm sequence , lựa chọn điểm bắt đầu thực hiện quá trình align các

sequence thông qua cách thức chọn điểm trung tâm của Center Star Algorithm. Sau

nữa, chương này sẽ trình bày 1 cải tiến của giải thuật mới vừa nêu, nhằm nâng cao

chất lượng của MSA bằng kỹ thuật gom nhóm theo khoảng cách ngắn nhất dựa trên

thứ tự align thu được từ bài toán TSP. Gần cuối chương sẽ giới thiệu về phương pháp

giải quyết bài toán TSP bằng giải thuật di truyền(Genetic Algorithm-GA), và cuối

cùng sẽ giới thiệu về các module của chương trình hiện thực giải thuật vừa nêu.

Chương 5. KẾT QUẢ, NHẬN XÉT

Chương này giới thiệu về kết quả của chương trình hiện thực. Đánh giá kết quả

này, so sánh với một số chương trình giải quyết bài toán MSA.

Chương 6.KẾT LUẬN

Chương này đề cập lại những việc đã thực hiện được của đề tài. Nêu lên hướng

mở rộng và phát triển tiếp theo cho đề tài.

Page 17: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 6

Chương 2. TỔNG QUAN VỀ KHÁI NIỆM SO SÁNH TRÌNH TỰ (SEQUENCE ALIGNMENT)

2.1. So sánh trình tự Như đã giới thiệu Gene Finding Problem là một hướng phát triển quan trọng

của sinh tin học, Gene Finding dựa vào quá trình phân tích trình tự để có thể đưa ra

được những kết quả. Một số các mục tiêu của quá trình phân tích trình tự:

Xác định gene.

Xác định chức năng của từng gene. Chúng ta giả thiết rằng các trình tự có

cấu trúc tương tự nhau thì sẽ có chức năng tương tự nhau, do đó ta có thể

tìm kiếm chức năng của một gene thông qua việc so sánh mức độ giống

nhau của nó với một gene khác có chức năng đã được xác định.

Xác định sự lặp lại của các trình tự

Xác định protein dựa trên quy tắc sắp đặt của các biểu thức gene.

Xác định các vùng chức năng khác nhau của DNA…

Trong quá trình phân tích trình tự thì khái niệm so sánh trình tự đóng vai trò quan

trọng. Đây là nền tảng cơ bản cho việc phân tích. So sánh trình tự sẽ giúp cho quá trình

dự báo sự giống nhau về chức năng của các trình tự, dự báo cấu trúc bậc 3 của DNA,

protein. Trong việc tìm hiểu một gene mới, chúng ta thường quan tâm đến việc xác

định những đặc điểm để phân biệt gene đồng thời đưa ra những giả thuyết về chức

năng của gene. Việc đưa ra những giả thuyết về chức năng của gene thường dựa vào

những giải thuật đánh giá sự giống nhau, tương đồng giữa các trình tự.

2.1.1. Định nghĩa So sánh trình tự(Sequence Alignment) So sánh trình tự(một số tài liệu gọi là phép gióng hàng, gióng cột) là quá trình

nghiên cứu sự giống nhau giữa các chuỗi trình tự(sequence), đo lường sự giống nhau

giữa các trình tự. Là cách thức so sánh giữa 2 hay nhiều trình tự dựa trên việc so sánh

một chuỗi các thành phần(ký tự) của trình tự để tìm ra những điểm tương đồng, giống

nhau giữa các trình tự.

Các trình tự được đề cập trong phần nghiên cứu này là các các chuỗi trình tự

DNA, RNA hoặc các trình tự amino acid( protein).

Page 18: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 7

Xét 2 chuỗi: A C G C T G và C A T G T. Chúng ta sẽ đo lường sự giống nhau

giữa 2 chuỗi này. Bên dưới là một ví dụ về một trong những khả năng alignment của 2

chuỗi trên. Tiêu chí để đánh giá sự giống nhau sẽ dựa trên một hàm đánh giá (scoring

function).

Hình 2.1 Ví dụ về PSA

Ký tự “–“ được gọi là 1 gap, gap thể hiện cho ý nghĩa trong sinh học đó là một

phần của trình tự đã bị mất đi do, các hành vi của quá trình tiến hóa sinh vật như: đột

biến, sự mất đi một thành phần trong chuỗi trình tự. Giá trị hàm đánh giá càng cao thì

chúng ta có một kết quả alignment càng tốt. Xét một hàm đánh giá đơn giản như sau,

nếu 2 thành phần trong chuỗi là giống nhau thì hàm đánh giá sẽ có kết quả +2, nếu 2

thành phần trong chuỗi khác nhau thì hàm đánh giá tại vị trí này sẽ có kết quả -1, như

vậy kết quả so sánh ở trên sẽ có giá trị hàm đánh giá là:

3*(2)+(-1)*5=1

Ý nghĩa: Trên quan điểm sinh học, phép so sánh trình tự thể hiện quá trình biến

đổi chọn lọc tự nhiên của các chuỗi trình tự, từ đó cho phép các nhà sinh học đưa ra

kết luận về nguồn gốc của các đoạn gene, DNA, RNA, hay protein.

2.1.2. Phân loại Dựa trên phương pháp so sánh người ta chia ra làm 2 loại alignment:

Phép alignment trình tự theo hướng toàn cục(Global Sequence

Alignment): Phép toán alignment được áp dụng trên toàn bộ chuỗi trình tự.

Thường được sử dụng khi các trình tự so sánh có kích thước gần tương

đương và các trình tự này có độ tương đồng, giống nhau cao.

Phép alignment trình tự theo hướng cục bộ(Local Sequence Alignment):

Phép toán alignment được sử dụng trên một phần của chuỗi trình tự. Thường

được sử dụng khi các trình tự có chiều dài lớn, độ tương đồng giống nhau

không cao, chỉ có một số ít các gene giống nhau trên 2 trình tự, hoặc khi 2

trình tự có kích thước khác biệt lớn.

A C – – G C T G

– C A T G – T –

Page 19: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 8

Ví dụ về so sánh trình tự theo hướng toàn cục:

Hình 2.2 Ví dụ về so sánh trình tự theo hướng toàn cục

Toàn bộ 2 chuỗi trình tự L G P S S K Q T G K G S − S R I W D N và

L N − I T K S A G K G A I M R L G D A được so sánh

Ví dụ về so sánh trình tự theo hướng cục bộ:

Hình 2.3 Ví dụ về so sánh trình tự theo hướng cục bộ

Chỉ một phần của 2 chuỗi được so sánh: TGKG và AGKG

Tùy thuộc vào số lượng trình tự, bài toán so sánh trình tự được chia làm 2 mức

độ:

So sánh 2 trình tự

So sánh nhiều trình tự.

2.1.3. So sánh 2 trình tự (Pairwise Sequence Alignment-PSA). Định nghĩa 2.1: Gọi S1 và S2 là 2 chuỗi, một sự alignment A giữa S1 và S2 sẽ tạo ra 2 chuỗi S’1 và

S’2 bằng cách thêm vào các ký tự “-“ vào S1, S2, trong đó:

|S’1|=|S’2|

Nếu loại bỏ các ký tự “-“ khỏi S’1 và S’2 ta sẽ có S1 và S2

Với |S1|, |S2| lần lượt là chiều dài của S1 và S2.

Hình 2.4 Cấu trúc 1 PSA

L G P S S K Q T G K G S − S R I W D N L N − I T K S A G K G A I M R L G D A

− − − − − − − T G K G − − − − − − − − − − − − − − − A G K G − − − − − − − −

A C G C T G C A T G T

A C – – G C T G – C A T G – T –

(S1) (S2)

(S’1) (S’2)

Page 20: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 9

2.1.4. So sánh nhiều trình tự (Multiple Sequence Alignment-MSA) Trong mục này ta sẽ xem xét nguồn gốc sinh học của quá trình thực hiện Multiple

Squence Alignment. Nguyên nhân chính cho sự ra đời của quá trình so sánh nhiều

trình tự là việc so sánh sự tương đồng về trình tự của các protein với một tập protein

đã có sẵn trong Cơ Sở Dữ Liệu (CSDL). Thông thường các protein lưu trong CSDL

thường được tổ chức thành các nhóm chung(protein family), có sự tương đồng về cấu

trúc, chức năng, và cấu trúc bậc 3. Khi cần khảo sát một protein mới, chúng ta hy

vọng có thể đưa ra các giả thuyết về cấu trúc, chức năng và quá trình tiến hóa của

protein này thông qua phép toán alignment. Tuy nhiên, chúng ta không thể thực hiện

việc alignment chuỗi trình tự của protein này với từng trình tự của mỗi protein trong

CSDL, điều này là không thể về mặt thời gian xử lý. Do đó cách tiếp cận tốt hơn là

chúng ta sẽ so sánh trình tự của protein này với mỗi tập hợp protein trong CSDL,

thông qua việc so sánh trình tự của protein này với một trình tự đại diện cho mỗi tập

hợp protein. Vấn đề đặt ra là làm cách nào để tìm ra trình tự đại diện cho một tập hợp

protein, câu trả lời sẽ được cung cấp thông qua việc thực hiện phép toán multiple

alignment của tập hợp protein này, để tìm ra phần tử tương đồng nhất đại diện cho tập

hợp protein.

Định nghĩa 2.2:

Cho k chuỗi S1, S2,…,Sk một phép toán Multiple Sequence Alignment(MSA) của

k chuỗi này sẽ tạo ra k chuỗi mới S’1, S’2,…, S’k bằng cách thêm các ký tự “-” vào các

chuỗi S1, S2,…,Sk trong đó:

|S’1|=|S’2|=…=|S’k|=n

Nếu bỏ đi các ký tự “-” khỏi S’i ta sẽ được lại chuỗi ban đầu Si (1≤i≤k)

Hình 2.5 Giới thiệu 1 MSA

k được gọi là số sequence của MSA

n: là chiều dài của MSA. MSA có n cột, mỗi cột chứa các ký tự đại diện cho các

sequence của MSA, các ký tự này có thể là các amino acid(nucleotide) hoặc phần tử

‘-‘.

A G T − G T G A G T A G T G − G T C G T G − − T A G T G

A G T G T G A G T A G T G G T C G T G T A G T G

(S1) (S2) (S3) (S4)

(S’1) (S’2) (S’3) (S’4)

Page 21: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 10

Hình 2.6 Giới thiệu các khái niệm của MSA

2.2. Các khái niệm khác Trong quá trình tiến hóa của mình trên một đoạn gene, DNA, protein có thể xuất

hiện các hành vi: đột biến(mutation), mất(delete), thêm hoặc giữ lại trạng thái di truyền của các nucleotide(DNA) hoặc amino acid với protein.

Hình 2.7 Quá trình biến đổi của 2 sequence

Như vậy kết quả của phép so sánh giữa ACTCGATT và AGCTAATC:

Chúng ta xét 2 chuỗi A=a1a2…am , B=b1b2…bn. Việc biến đổi từ chuỗi trình tự A

sang B là sự kết hợp của các quá trình: quá trình thay thế, sự xuất hiện các gap.

Một sự thay thế trong quá trình biến đổi từ A sang B là sự thay thế của 1 phần tử

của A bằng 1 phần tử của B. Sự thay thế có thể là 1 trong 2 quá 1 trình: quá trình đột

biến hoặc quá trình giữ lại trạng thái di truyền.

A G T − G T G A G T A G T G − G T C G T G − − T A G T G

Cột 7 của MSA k=4 sequence

Chiều dài của MSA n=7

ACTCGATT

ACTCGATT

ACGATT

Mất TC tại vị trí thứ 3, 4 AGCATC

ACTCGATT

Đột biến thay C bằng G tại vị trí 2

Đột biến thay G bằng C tại vị trí 3

Đột biến thay T bằng C tại vị trí 6 AGCTAATC

Thêm TA vào vị trí 4

A C T C G - - A T T A G - - C T A A T C

Page 22: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 11

Một gap bao gồm các phần tử của 1 chuỗi mà mỗi phần tử này tương ứng với các

phần tử có ký hiệu là “-“ của chuỗi còn lại. Gap gồm có 2 loại: deletion gap và

insertion gap, tương ứng với quá trình thêm vào hoặc mất đi các phần tử di truyền

Hình 2.8 Ví dụ về các phép thay thế gap

Như vậy thông qua kết quả alignment của 2 chuỗi có thể biết được quá trình biến

đổi, tiến hóa từ chuỗi này sang chuỗi khác. Chúng ta có thể quan sát một ví dụ thực tế

sau: GCGCTCCGGGACGCCTTCCGCCGTCGGGAGCCCTACAACTACCTGCAGAGGGCCTATTAC -------------------------||||||| ||||||||||||||||||||||| ||| GGGAGCCTTACAACTACCTGCAGAGGGCCTACTAC CAGGTGGGGAGCGGGCCGGGCAG TAG |||||| ||---||||||| |||------------------------------------- CAGGTGCGG GGGCCGGCCAGGGTGCTACCCCAAGCCTACTGACTGTCTTACTGG CCTTCCCCAGAGCCCCCTAGCCGCAGGCACCAGAGGGTCCAAGACAAGACTGGAAGGGCA -----------------------|| || ||| | ||||| || || |||| | | | CAAGCTTCAGCGAGTCCAGGAGAAAGCTGGGAAGCCC CCTCGGGTTCGG GAGGAGCTGTGAGTGGCT | ||||| |||------||||| |||||| |||||------------------------ CGCCGGGTCCGGGTCCGAGAGGAACTGTGAATGGCTGAGCCTGCTTCTCGAGGATCAGGC Mỗi một alignment có một giá trị thông qua việc đánh giá các phần tử tạo thành

nó. Giá trị này phản ánh quá trình biến đổi chuỗi A thành chuỗi B và ngược lại. Định

nghĩa giá trị này một cách tối ưu sẽ cho phép ta tìm được một quá trình biến đổi tối ưu

từ A thành B(và ngược lại), điều này cũng đồng nghĩa với việc tìm phép alignment tối

ưu của A và B.

Việc tính toán giá trị cho một alignment phụ thuộc vào:

Ma trận đánh giá

Giá trị của Gap

Phương pháp đánh giá

A C T C G - - A T T A G - - C T A AT C

Sự thay thế

Deletion gap

Insertion gap

Page 23: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 12

2.2.1. Ma trận đánh giá(Scoring Matrix) Kết quả của việc tính giá trị cho mỗi alignment phụ thuộc nhiều vào kết quả của

hàm đánh giá sự tương đồng của mỗi cặp amino acid(nucleotide) ( , )a bσ . Trong phần

ví dụ về alignment ta có đưa ra một ví dụ đơn giản cho ( , )a bσ tuy nhiên trong thực tế

sinh học khả năng xuất hiện của mỗi cặp amino acid(cũng như nucleotide) là khác

nhau, xác suất xuất hiện cùng lúc của cặp amino acid này có thể cao trong khi xác suất

xuất hiện của cặp amino acid kia có thể thấp. Vì thế độ tương đồng của các cặp amino

acid thường được lưu trữ dưới dạng một ma trận 2 chiều gọi là ma trận đánh giá.

Một ví dụ:

Bảng 2.1Ma trận BLOSUM62 lưu trữ hàm đánh giá độ tương đồng của tập 23 amino acid

Xét trên phương diện toán, ma trận đánh giá là 1 ánh xạ được định nghĩa như sau: 2: ( ')σ ∑ → trong đó ' {' '}∑ = ∑ ∪ − và ∑ là tập các amino acid hoặc nucleotide

Có nhiều hình thức ma trận đánh giá khác nhau dựa trên quá trình nghiên cứu,

thống kê thực tế sinh học. Hiện tại có 4 hình thức ma trận đánh giá: identity matrix,

genetic code matrix, chemical similarity matrix và substitution matrix.

A R N D C Q E G H I L K M F P S T W Y V B Z X * A 6 -2 -2 -3 -1 -1 -1 0 -2 -2 -2 -1 -1 -3 -1 2 0 -4 -3 0 -2 -1 -1 -6 R -2 8 -1 -2 -5 1 0 -3 0 -4 -3 3 -2 -4 -3 -1 -2 -4 -3 -4 -2 0 -2 -6 N -2 -1 8 2 -4 0 0 -1 1 -5 -5 0 -3 -4 -3 1 0 -6 -3 -4 5 0 -2 -6 D -3 -2 2 9 -5 0 2 -2 -2 -5 -5 -1 -5 -5 -2 0 -2 -6 -5 -5 6 1 -2 -6 C -1 -5 -4 -5 13 -4 -5 -4 -4 -2 -2 -5 -2 -4 -4 -1 -1 -3 -4 -1 -5 -5 -3 -6 Q -1 1 0 0 -4 8 3 -3 1 -4 -3 2 -1 -5 -2 0 -1 -3 -2 -3 0 5 -1 -6 E -1 0 0 2 -5 3 7 -3 0 -5 -4 1 -3 -5 -2 0 -1 -4 -3 -4 1 6 -1 -6 G 0 -3 -1 -2 -4 -3 -3 8 -3 -6 -5 -2 -4 -5 -3 0 -2 -4 -5 -5 -1 -3 -2 -6 H -2 0 1 -2 -4 1 0 -3 11 -5 -4 -1 -2 -2 -3 -1 -3 -4 3 -5 -1 0 -2 -6 I -2 -4 -5 -5 -2 -4 -5 -6 -5 6 2 -4 2 0 -4 -4 -1 -4 -2 4 -5 -5 -2 -6 L -2 -3 -5 -5 -2 -3 -4 -5 -4 2 6 -4 3 1 -4 -4 -2 -2 -2 1 -5 -4 -2 -6 K -1 3 0 -1 -5 2 1 -2 -1 -4 -4 7 -2 -5 -2 0 -1 -4 -3 -3 -1 1 -1 -6 M -1 -2 -3 -5 -2 -1 -3 -4 -2 2 3 -2 8 0 -4 -2 -1 -2 -1 1 -4 -2 -1 -6 F -3 -4 -4 -5 -4 -5 -5 -5 -2 0 1 -5 0 9 -5 -4 -3 1 4 -1 -5 -5 -2 -6 P -1 -3 -3 -2 -4 -2 -2 -3 -3 -4 -4 -2 -4 -5 11 -1 -2 -5 -4 -4 -3 -2 -2 -6 S 2 -1 1 0 -1 0 0 0 -1 -4 -4 0 -2 -4 -1 6 2 -4 -3 -2 0 0 -1 -6 T 0 -2 0 -2 -1 -1 -1 -2 -3 -1 -2 -1 -1 -3 -2 2 7 -4 -2 0 -1 -1 -1 -6 W -4 -4 -6 -6 -3 -3 -4 -4 -4 -4 -2 -4 -2 1 -5 -4 -4 16 3 -4 -6 -4 -3 -6 Y -3 -3 -3 -5 -4 -2 -3 -5 3 -2 -2 -3 -1 4 -4 -3 -2 3 10 -2 -4 -3 -2 -6 V 0 -4 -4 -5 -1 -3 -4 -5 -5 4 1 -3 1 -1 -4 -2 0 -4 -2 6 -5 -4 -1 -6 B -2 -2 5 6 -5 0 1 -1 -1 -5 -5 -1 -4 -5 -3 0 -1 -6 -4 -5 5 0 -2 -6 Z -1 0 0 1 -5 5 6 -3 0 -5 -4 1 -2 -5 -2 0 -1 -4 -3 -4 0 5 -1 -6 X -1 -2 -2 -2 -3 -1 -1 -2 -2 -2 -2 -1 -1 -2 -2 -1 -1 -3 -2 -1 -2 -1 -2 -6 * -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 1

Page 24: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 13

Identity matrix: đây là cơ chế đánh giá độ tương đồng đơn giản nhất, trong ma

trận này các cặp amino acid giống nhau sẽ có giá trị của phần tử tương ứng trong ma

trận là 1, các cặp amino acid còn lại sẽ nhận giá trị 0.

Ví dụ

Bảng 2.2 Một phần ma trận Identity

Ma trận mã di truyền(Genetic code matrix): trong ma trận này hàm đánh giá

của mỗi cặp amino acid dựa trên độ tương đồng về mã di truyền. Ngày nay ma trận

này hiếm khi được sử dụng trong việc alignment các chuỗi amino acid.

Ma trận tương đồng hóa học(chemical similarity matrix): trong ma trận này,

các amino acid có cấu trúc tương đồng về cấu trúc vật lý cũng như thuộc tính hóa học

như kích thước, hình dạng, khả năng phân cực,… thì phần tử tương ứng trong ma trận

sẽ nhận giá trị lớn hơn so với các cặp còn lại.

Ma trận thay thế(substitution matrix): Ma trận này được tính toán và xây dựng

dựa trên các quan sát thống kê về tần số thay đổi của các amino acid trong việc

alignment các chuỗi trình tự. Ma trận thay thế được đánh giá là tốt hơn so với 3 hình

thức ma trận trên và hiện nay cũng được sử dụng phổ biến nhất.

Trong phần này, xin giới thiệu 1 hình thức ma trận thay thế hay được sử dụng

trong các công trình nghiên cứu cũng như trong các công cụ phục vụ cho việc tính toán

sinh học: ma trận BLOSUM.

Ma trận BLOSUM(Block Subtitutation Matrix):

Khái niệm ma trận BLOSUM được xây dựng dựa trên 1 MSA của tập các protein

có sự khác biệt về quá trình tiến hóa. Hàm đánh giá của các cặp amino acid trong ma

trận được tính dựa vào tần số quan sát sự thay đổi trong các khối(block) của các local

alignment của các họ protein trong cơ sở dữ liệu BLOCK(Henikoff và Henikoff

1992)[14]. Cơ sở dữ liệu này gồm 3000 block của các protein đặc trưng, đại diện cho

vài trăm nhóm protein. Các ma trận BLOSUM được thiết kế nhằm giải quyết cho các

A R N D C Q A 1 0 0 0 0 0 R 0 1 0 0 0 0 N 0 0 1 0 0 0 D 0 0 0 1 0 0 C 0 0 0 0 1 0 Q 0 0 0 0 0 1

Page 25: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 14

trường hợp align các sequence có sự biến đổi, tiến hóa về mặt di truyền trong một

khoảng thời gian dài.

Ma trận BLOSUM bao gồm nhiều cấp độ, ký hiệu BLOSUMn.

Ma trận BLOSUMn(1 100n≤ ≤ ) cho biết độ tương đồng của các chuỗi được dùng

để tính ra chúng. Ví dụ, chúng ta xét ma trận BLOSUM62, giá trị của các phần tử

trong ma trận được tính từ tập các protein có độ tương đồng không lớn hơn 62%.

Trong tập các ma trận BLOSUMn, các ma trận có chỉ số n nhỏ thường được sử dụng

trong việc align các sequence có độ khác biệt cao(độ tương đồng thấp), và các ma trận

có chỉ số n lớn thường được sử dụng cho các sequence có độ tương đồng cao.

Ví dụ: ma trận BLOSUM62 thường được sử dụng nhất cho việc align các

sequence khi chưa xác định độ tương đồng của chúng, ma trận BLOSUM45 thường

được sử dụng cho các sequence có sự khác biệt cao, ma trận BLOSUM100 thường

được sử dụng cho các ma trận đó độ tương đồng cao.

Việc tính toán tập các ma trận BLOSUM dựa trên công thức xác suất biến đổi:

( , ) ( , ) log( )O

E

Pscore a b a b kP

σ= =

trong đó OP là xác suất chuyển đổi từ amino acid a sang amino acid b trong tập quan

sát

EP : là xác suất xuất hiện của amino acid b trong tập quan sát.

k là hệ số làm tròn. Thông thường k=10, và giá trị hàm đánh giá được làm tròn

thành số nguyên.

( , ) 0score a b > : cho biết sự thay thế giữa amino acid a và b có khả năng xảy ra cao

hơn so với sự thay đổi một cách ngẫu nhiên

( , ) 0score a b < : cho biết sự thay thế giữa amino acid a và b có khả năng xảy ra

thấp hơn so với sự thay đổi một cách ngẫu nhiên.

( , ) 0score a b = : cho biết sự thay thế giữa amino acid a và b tương đương với việc

thay thế 2 amino acid một cách ngẫu nhiên.

2.2.2. Gap Việc tính giá trị của mỗi gap phụ thuộc vào bản chất tự nhiên của các chuỗi trình

tự, có thể tính giá trị của gap theo các hàm tuyến tính hoặc đa thức. Trong thực tế, để

Page 26: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 15

đơn giản hầu hết các phương pháp đề xuất tính giá trị của gap dựa trên một hàm tuyến

tính theo chiều dài của gap.

Chúng ta sẽ xem xét “Phương pháp tính giá trị của gap dựa trên hàm tuyến tính”.

Thông thường khả năng xuất hiện phần tử đầu tiên của gap(khả năng mở gap) thường

khác với khả năng xuất hiện của các phần tử theo sau, gọi q(q>0) là giá trị xác định

khả năng mở một gap, và khả năng xuất hiện của mỗi phần tử trong gap(khả năng mở

rộng của gap) là r(r>0). Gọi )(kγ là hàm giá trị của gap ta định nghĩa:

( ) ( * )γ = − +k q r k Ví dụ :

CAGGTGGGGAGCGGGCCGGGCAG |||||| ||---||||||| ||| CAGGTGCGG GGGCCGGCCAG

Hình 2.9 Ví dụ về Gap.

Trong ví dụ trên: Khả năng xuất hiện của cặp đầu tiên A

− là q+r . Khả năng xuất

hiện của các phần tử tiếp theo trong gap lần lượt là r. Giá trị của gap: (3) ( *3)γ = − +q r .

2.2.3. Phương pháp đánh giá(Scoring Method) Phương pháp đánh giá cho phép đánh giá sự giống nhau, tương đồng giữa các

trình tự dựa trên một số tiêu chí nào đó.

Việc so sánh giữa 2 hay nhiều chuỗi trình tự sẽ cho ra nhiều kết quả so sánh khác

nhau từ một tập chuỗi trình tự ban đầu. Cơ sở để đánh giá sự giống nhau, tương đồng

giữa các trình tự sau phép alignment thường căn cứ vào một hàm đánh giá cụ thể. Việc

xây dựng hàm đánh giá tốt sẽ cho phép xác định được kết quả nào của phép so sánh là

tối ưu. Hàm đánh giá chính là cốt lõi của một phương pháp đánh giá.

Đối với PSA, phương pháp đánh giá phổ biến nhất là dựa vào tổng giá trị của các

cặp ký tự đại diện không phải là gap, và giá trị của các gap trong PSA. Gọi K1 là tập

các phần tử không phải là gap của PSA, K2 là tập các gap trong PSA. Hàm đánh giá

PSA của 2 chuỗi S1, S2 với kết quả S’1, S’2 có dạng:

1 2( , )Score S S = Score(K1)+Score( K2)

1

1 1 2( ) ( ' [ ], ' [ ])σ∈

= ∑i K

Score K S i S i , với S’1[i], S’2[i] là các phần tử thuộc K1.

2

2( ) ( )ii K

Score K kγ∈

= ∑ với γ(ki) là các hàm tính cho các gap thuộc K2.

Page 27: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 16

Đối với một MSA do bản chất phức tạp của dữ liệu sinh học nên tất cả các

phương thức đánh giá đều có những hạn chế, và không có một tiêu chuẩn tổng quát

nào trong việc đo lường chất lượng của nó.

Trong phần này xin được giới thiệu một số phương pháp xây dựng hàm đánh giá

phổ biến cho một MSA [1].

Sum-of-Pair(SP):

Đây là phương pháp được sử dụng phổ biến nhất. Nội dung của phương pháp này

là đánh giá MSA của k sequence dựa trên tổng kết quả alignment của tất cả ( k2 ) cặp

sequence có trong MSA. Theo phương pháp này giá trị của mỗi cột của MSA sẽ được

tính bằng tổng tất cả các hàm đánh giá độ tương đồng của các cặp phần tử trong cột

này. Gọi ci,j là ký tự tại dòng i, cột j trong MSA và ( , )a bσ là hàm đánh giá sự tương

đồng của cặp amino acid a, b. Ta sẽ có giá trị hàm đánh giá độ tương đồng SP của cột i

như sau:

, ,( ) ( , ) 1 , ,1x i y ix y

SP i c c x y k i nσ<

= ≤ ≤ ≤ ≤∑

Trong đó n là chiều dài của MSA.

Gọi 1( ,..., )kSPScore S S là hàm đánh giá độ tương đồng của MSA theo SP.

1( ,..., )kSPScore S S sẽ bằng tổng tất cả các hàm đánh giá độ tương đồng của các cột

trong MSA:

1 11

( ,..., ) ( ,..., ) ( )k

k ki

Score S S SPScore S S SP i=

= = ∑

MSA tối ưu là MSA có SP tối ưu.

Công thức này cũng có thể được viết lại dưới dạng sau:

1 11 1

( ,..., ) ( ,..., ) ( , )k k

k k i ji j i

Score S S SPScore S S SPScore S S= = +

= = ∑ ∑

trong đó ( , )i jSPScore S S là hàm đánh giá theo SP của 2 chuỗi Si và Sj

Ví dụ: Xét một MSA của 3 sequence: ACCTG , CCTGT, AGCTAT (S1) A C - C T G - (S2) - C - C T G T (S3) A - G C T A T

Nếu chúng ta định nghĩa ( , )a bσ như sau:

0( , )

1a b

a ba b

σ≠⎧

= ⎨ =⎩

Khi đó SP(2)= ( , ) ( , ) ( , )C C C Cσ σ σ+ − + − =1+0+0=1

Page 28: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 17

SP=SP(1)+SP(2)+SP(3)+SP(4)+SP(5)+SP(6)+SP(7)=1+1+1+3+3+1+1=11

Kết quả đánh giá độ tương đồng của 3 chuỗi này cũng có thể được biểu diễn:

SP(S1,S2,S3)=SP(S1,S2)+SP(S2,S3)+SP(S3,S1)=5+3+3=11

Phương pháp #LOG#:

Phương pháp này đánh giá độ tương đồng của MSA dựa trên các công thức sau:

Hàm đánh giá độ tương đồng của MSA tại cột thứ i:

# ( ) # ( ) log ( )i ia

LOG i c a c a∈∑

= ∑

Công thức đánh giá độ tương đồng của toàn bộ MSA:

1 11

( ,..., ) # ( ,..., ) # ( ) log ( )n

k k i ii a

Score S S LOG S S c a c a= ∈∑

= = ∑∑

Trong đó a ∈ ∑ với ∑ là tập các amino acid hoặc nucleotide

( )ic a là số lần xuất hiện của a tại cột thứ i.

Phương pháp Trung bình thông tin(Average Information Content):

Trong phương pháp này hàm đánh giá độ tương đồng của MSA tại cột thứ i được

xây dựng dựa trên công thức sau:

( )1( ) ( ) log( )

ii

a

f aIC i f an p a∈∑

= ∑

fi(a) là tần số xuất hiện của a trong cột thứ i của MSA. ( ( )( ) ii

c af ak

= )

p(a) là tần số xuất hiện của a trong toàn bộ MSA.

Khi đó công thức tính độ tương đồng của MSA:

1 11

( )1( ,..., ) ( ,..., ) ( ) log( )= ∈Σ

= = ∑∑n

ik k i

i a

f aScore S S IC S S f an p a

Phương pháp Entropy:

Phương pháp này đánh giá độ tương đồng của MSA dựa trên lý thuyết về Entropy

Hàm đánh giá độ tương đồng của cột thứ i trong MSA:

( ) ( ) log ( )i ia

entropy i c a f a∈∑

= −∑

Hàm đánh giá độ tương đồng của toàn bộ MSA:

11 1

( ,..., ) ( ) ( ) log ( )n n

k i ii i a

score S S entropy i c a f a= = ∈∑

= =∑ ∑∑

Page 29: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 18

Trong phạm vi của luận văn này phương pháp được sử dụng để đánh giá là

phương pháp Sum-of-Pair.

2.3. Các phương pháp giải quyết bài toán so sánh trình tự Hiện nay đã có nhiều cách tiếp cận khác nhau của các nhà nghiên cứu về vấn đề

này, Pairwise Sequence Alignment-PSA đã được giải quyết khá triệt để, tuy nhiên bài

toán Multiple Sequence Alignment-MSA dựa trên phương pháp đánh giá Sum-of-Pair

vẫn còn là một vấn đề để ngỏ.

Wang và Jiang [32] đã chứng minh rằng việc tìm kiếm phép Alignment tối

ưu cho bài toán Multiple Alignment là bài toán NP.

Đã có nhiều mô hình, thuật giải được áp dụng để giải quyết bài toán này: Kỹ

thuật quy hoạch động(Dynamic Programming), sử dụng mô hình Markov ẩn (Hidden

Markov Model), các kỹ thuật tìm kiếm cục bộ(Local Search)…. Hầu hết các phương

pháp giải quyết rất tốt bài toán PSA. Tuy nhiên vì MSA là bài toán NP nên các kỹ

thuật đưa ra đều không thể đánh giá chính xác về mức độ tốt xấu của từng giải thuật,

mỗi giải thuật sẽ có ưu điểm trong từng trường hợp cụ thể [6], [28], [35].

Việc giải quyết bài toán được chia thành 2 hướng:

Phương pháp tính toán chính xác, tìm ra MSA tối ưu

Phương pháp tính toán gần đúng tìm ra MSA cận tối ưu.

Phương pháp tính toán chính xác: bao gồm phương pháp quy hoạch động tổng

quát(Needleman-Wuns)[22], và một số giải pháp phần cứng.

Phương pháp tính toán cận tối ưu: Phương pháp này sử dụng các tiếp cận

heuristic để giải quyết bài toán trên tập dữ liệu lớn theo hướng tìm ra các lời giải cận

tối ưu, có thể chấp nhận được về độ chính xác cũng như thời gian và không gian bộ

nhớ sử dụng. Phương pháp này chia thành 2 nhóm:

Progressive Algorithm

Iterative Algorithm

Progressive Algorithm: về cơ bản phương pháp này vẫn dựa trên nền tảng của

dynamic programming. Ý tưởng của Progressive Algorithm là tìm MSA gần tối ưu

thông qua việc align các sequence với nhau, dựa trên việc áp dụng bài toán PSA lặp đi

lặp lại nhiều lần. Ưu điểm của phương pháp này giúp tìm lời giải nhanh hơn. Chi tiết

về phương pháp này sẽ đề cập trong chương 3. Một số chương trình hiện thực theo

Page 30: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 19

phương pháp này: CLUSTALW, MULTALIGN, PILEUP, BLAST, FASTA.

MULTAL, DIALIGN.

Iterative Algorithm:Ý tưởng của các giải thuật theo phương pháp này là : đầu tiên

sẽ xây dựng một MSA mà không quan tâm đến độ tốt xấu, sau đó sẽ cải thiện chất

lượng của MSA này theo thời gian thông qua các bước lặp.

Một số các giải thuật theo phương pháp này: Giải thuật di truyền, Mô hình Markov

ẩn.

So sánh Progressive Algorithm và Iterative Algorithm: Cả 2 phương pháp đều

có ưu điểm và khuyết điểm, tùy theo điều kiện cũng như yêu cầu cụ thể mà chúng ta

có thể lựa chọn phương pháp hợp lý nhất.

Iterative Algorithm thông thường cho lời giải có độ chính xác cao hơn tuy nhiên

trong một số trường hợp, phương pháp này có thể cho ra các lời giải không tốt.

Iterative Algorithm đòi hỏi thời gian tính toán cao, một số trường hợp giải thuật có thể

cho thời gian tính toán cao hơn so với cách tiếp cận theo phương pháp tính toán chính

xác của Needlman-Wuns(Nicholas, 2002)[23]. Đây là một trong những nhược điểm

lớn của phương pháp này.

Hình 2.10 Mối tương quan giữa các chương trình hiện thực cho các phương pháp.

2.3.1. Phương pháp Quy hoạch động(Dynamic Programming)

Đây là phương pháp phổ biến và cơ bản nhất để tiếp cận bài toán so sánh trình tự.

Kỹ thuật dynamic programming giải quyết bài toán dựa trên lý thuyết về Edit distance

được đưa ra bởi Vladimir Levenshtein, khoảng cách này định nghĩa số các thao tác

nhỏ nhất để có thể chuyển đổi một chuỗi trình tự này thành một chuỗi trình tự khác.

Edit distance có thể biểu diễn cho quá trình tiến hóa của một đoạn gene, DNA, protein

UPGMA Multalign,

Pileup

NJ ClustalW

GA Saga

HMM Hmmt

Iterative Progressive

Mutal

Dialign

Page 31: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 20

theo thời gian. Điều này hoàn toàn hữu dụng cho lý thuyết về so sánh trình tự. Kỹ

thuật dynamic programming có thể tính được edit distance. Bằng việc xây dựng các

ma trận đánh giá k chiều với mỗi chiều của ma trận tương ứng với một trong k trình tự

của bài toán, phương pháp dynamic programming có thể tìm ra được giá trị hàm đánh

giá tối ưu cho ma trận này, từ đó sử dụng kỹ thuật lưu vết để tìm ra được phép so sánh

nhiều trình tự tối ưu nhất.

Needleman-Wuns đã xây dựng phương pháp tìm MSA tối ưu của k sequence dựa

trên việc tổng quát hóa giải thuật quy hoạch động cho 2 sequence. Trong giải thuật này

các tác giả đã thay thế việc tính toán điền các giá trị cho ma trận 2 chiều bằng ma trận

n chiều. Giải thuật phụ thuộc vào số sequence, chiều dài cũng như sự khác biệt của các

sequence. Giải thuật này đòi hỏi độ phức tạp là hàm số mũ theo chiều dài và số trình tự

( )knθ . Trong thực tế việc hiện thực giải thuật này đòi hỏi chi phí tiêu tốn rất cao về

mặt thời gian cũng như bộ nhớ sử dụng. Khi n và k đủ lớn việc thực thi giải thuật là

không thực tế. Một mini-supercomputer với 4GB bộ nhớ có thể align 20 sequence

thuộc nhóm phospholipase A2, mỗi sequence có khoảng 130 amino acid[23]. Đã có

một số phương pháp cải thiện giải thuật của Needleman-Wuns, bằng cách áp dụng

heuristic vào giải thuật này, tuy nhiên vẫn có hạn chế về giá trị của n, k.

0

0

0

0

0

0000000

0

0

0

0

0

0000000G A A T T C

GGATC

22

54310-1

13532-1

-3-11340

-2-2-2-112

-1-1-1-10

54310-1

13532-1

-3-11340

-2-2-2-112

-1-1-1-10

Hình 2.11 Phương pháp tính toán chính xác bằng dynamic programming

2.3.2. Sử dụng các thiết bị phần cứng Phương pháp sử dụng thiết bị phần cứng để hiện thực hóa kỹ thuật dynamic

programming, hoặc sử dụng các thiết bị phần cứng để song song hóa, chia nhỏ bài

toán. Các phương pháp này sẽ giúp thực thi bài toán nhanh hơn tuy nhiên cả hai

phương pháp này đều đòi hỏi chi phí quá cao.

Page 32: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 21

2.3.3. Phương pháp tìm kiếm cục bộ(Local Search) Các kỹ thuật tìm kiếm cục bộ sử dụng các kỹ thuật lặp với các tham số đầu vào xác

định, giải quyết bài toán so sánh nhiều trình tự theo hướng tìm ra lời giải gần tối ưu

nhất dựa trên các bước di chuyển tốt của của mỗi trạng thái của lời giải so với các

trạng thái xung quanh nó trong mỗi vòng lặp xác định. Chủ yếu được sử dụng cho việc

giải quyết bài toán so sánh theo hướng toàn cục. Phương pháp này có ưu điểm thừa kế

được các ưu điểm của các giải thuật tìm kiếm cục bộ: giảm không gian tìm kiếm của

lời giải, tốc độ tìm kiếm nhanh…, tuy nhiên do phương pháp tìm kiếm cục bộ chỉ đảm

bảo tính đúng(sound) chứ không đảm bảo tính đầy đủ(complete), và do việc lựa chọn

các bước đi để thoát khỏi tình trạng tối ưu cục bộ là ngẫu nhiên nên có thể thuật toán

sẽ không tìm ra được lời giải tốt trong một số lần chạy(phụ thuộc vào việc ấn định các

tham số đầu vào). Một số giải thuật : Tabu Search, Simulated Annealing(giải thuật

luyện kim).

2.3.4. Sử dụng giải thuật Di truyền(Genetic Algorithm) Phương pháp sử dụng thuật giải di truyền cho bài toán so sánh nhiều trình tự là

một phương pháp phù hợp với bản chất sinh học [34]. Ý tưởng tạo ra một quần thể các

alignment sau đó chọn ra các lời giải tốt nhất có thể. Phương pháp này tạo dựng một

quần thể các phép so sánh trình tự từ các phép toán cơ bản của sinh học, lai tạo, đột

biến và cố gắng cải thiện hàm thích nghi của quần thể các phép so sánh trình tự.

Phương pháp này cho kết quả tốt, tuy nhiên hạn chế của phương pháp này là thời gian

tính toán lớn(đặc điểm chung của giải thuật di truyền). Một số phần mềm:

SAGA(Notredame và Higgins, 1996)[24].

2.3.5. Sử dụng Mô hình Markov ẩn(Hidden Markov Model-HMM). Áp dụng mô hình Markov ẩn để mô hình hóa bài toán so sánh nhiều trình tự. Ý

tưởng của phương pháp này là sử dụng mô hình Markov ẩn để biểu diễn MSA(được

giới thiệu bởi Eddy(1995) [8]), sau đó tối ưu khả năng mà một mô hình HMM có thể

biểu diễn cho các sequence đã được align. Trong mô hình này các

nucleotide(A,C,T,G) hoặc 23 amino acid sẽ là tập các ký tự. Các trạng thái của mô

hình sẽ thuộc 3 loại trạng thái: match, insert, delete. Mỗi ký tự sẽ có 1 xác suất xuất

hiện nhất định tại mỗi trạng thái. Giữa các trạng thái sẽ có xác suất chuyển đổi từ trạng

thái này sang trạng thái khác. Dựa trên mô hình này mỗi chuỗi trình tự bất kỳ trong

Page 33: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 22

sinh học sẽ được sinh ra bằng một con đường tập các trạng thái. Tập hợp các trạng thái

của các chuỗi trình tự trong mô hình HMM sẽ là 1 kết quả của bài toán so sánh nhiều

trình tự. Và như vậy bài toán so sánh nhiều trình tự sẽ trở thành bài toán tìm xác suất

điều kiện cực đại của các chuỗi trình tự khi biết mô hình.

Hình 2.12 Mô hình Markov cho bài toán MSA.

Hình trên minh họa quá trình sinh ra một kết quả của phép so sánh giữa 2 trình tự

từ mô hình Markov. Trạng thái match được biểu diễn bằng các hình chữ nhật, trạng

thái insert được biểu diễn bởi các hình thoi, trạng thái delete được biểu diễn bởi các

hình tròn.

Bài toán tìm xác suất cực đại của các chuỗi trình tự trong mô hình có thể được

giải quyết bằng nhiều kỹ thuật: giải thuật Viterbi, Forward-Backward Algorithm,

Baum-Welch Algorithm…

Khác với các phương pháp ở trên phụ thuộc vào cơ chế đánh giá(hàm đánh giá).

Mô hình HMM sẽ xây dựng bài toán so sánh nhiều trình tự dựa trên chính bản thân

thông tin của các trình tự, sự biến đổi của các thông số đánh giá sẽ do chính bản thân

các trình tự quyết định. Phần mềm hiện thực theo phương pháp này: HMMT.

Ngoài các phương pháp được trình bày ở trên, vẫn còn một số phương pháp tiếp

cận khác để giải quyết bài toán như mạng Neuron …

Tựu trung lại các phương pháp đều có điểm mạnh và điểm khuyết của chúng

trong việc giải bài toán so sánh nhiều trình tự. Tuy nhiên như tôi đã trình bày không

một phương pháp nào có thể gọi là hoàn hảo và chiếm ưu thế tuyệt đối, tất cả các

phương pháp đều hướng đến việc tìm ra một lời giải gần tốt nhất với khoảng thời gian

A1 A2 A3 − A4 − A5 − − B1 B2 B3 B4 B5

Page 34: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 23

hợp lý, thay vì hướng đến việc tìm ra lời giải tốt nhất với một khoảng thời gian của

một bài toán NP. Trong các phương pháp trên phương pháp dynamic programming là

phương pháp ra đời sớm nhất, rất hiệu quả với bài toán so sánh 2 trình tự(PSA), tuy

nhiên lại không thật sự tốt với bài toán MSA có dữ liệu lớn, điều này có thể được khắc

phục nếu tiếp cận thuật giải theo hướng Progressive Algorithm, xây dựng một sự cải

tiến bằng cách kết hợp các kỹ thuật heuristic trong quá trình xử lý, giảm thiểu không

gian tìm kiếm, loại bỏ cách tiếp cận dynamic programming truyền thống(xây dựng ma

trận đánh giá k chiều), đưa về bài toán xử lý dựa trên việc đánh giá tất cả các bài toán

so sánh 2 trình tự được sinh ra từ các trình tự của bài toán MSA. Phương pháp dựa trên

Progressive Algorithm này sẽ cho phép giảm độ phức tạp của giải thuật, tăng tốc độ

tính toán, giúp tìm kiếm lời giải trong khoảng thời gian ngắn, mà vẫn đáp ứng được lời

giải gần tốt nhất trong hầu hết các trường hợp. Trong phạm vi nghiên cứu của mình tôi

xin đề xuất phương pháp thực hiện này cho việc giải quyết bài toán MSA. Giải pháp

được đưa ra chỉ giới hạn giải quyết bài toán MSA dưới hình thức global alignment.

Page 35: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 24

Chương 3. CƠ SỞ LÝ THUYẾT VÀ PHƯƠNG PHÁP THỰC HIỆN

Chương này xin được giới thiệu về phương pháp quy hoạch động, phương pháp

Progressive Algorithm sử dụng heuristic dựa trên quy hoạch động để giải bài toán.

3.1. Giới thiệu về Dynamic Programming Dynamic Programming [7] là phương pháp giải bài toán bằng cách kết hợp các

lời giải của các bài toán con. Đặc điểm của giải thuật dynamic programming:

Các bài toán con không độc lập với nhau: chúng có chung các bài toán con

nhỏ hơn.

Giải mỗi bài toán con chỉ một lần, và ghi nhớ lời giải đó trong một bảng

để truy cập khi cần đến.

Một giải thuật dynamic programming được xây dựng qua bốn bước:

1. Xác định cấu trúc của một lời giải tối ưu.

2. Định nghĩa đệ quy cho giá trị của một lời giải tối ưu.

3. Tính giá trị của một lời giải tối ưu từ dưới lên (“bottom-up”).

4. Xây dựng lời giải tối ưu từ các thông tin đã tính.

Trong phần này, xin được trình bày tổng quan cách tiếp cận bằng kỹ thuật

dynamic programming cho vấn đề so sánh trình tự, từ bài toán so sánh 2 trình tự PSA

đến bài toán so sánh nhiều trình tự MSA [25], [27], [30]. Phần trình bày này chỉ xét

đối với phép toán Global Alignment.

Vì bài toán PSA chính là nền tảng cho kỹ thuật dynamic programming giúp giải

quyết bài toán MSA, nên trong phần đầu tôi sẽ trình bày về bài toán cơ bản PSA.

3.2. Bài toán PSA và cách giải quyết bằng kỹ thuật quy hoạch động

Phần 2.1.3 đã giới thiệu về bài toán PSA. Phần này sẽ giới thiệu hướng giải

quyết bài toán này bằng quy hoạch động.

Kỹ thuật này sẽ cho phép chúng ta xây dựng một phép alignment tối ưu.

Xét 2 chuỗi trình tự S1 và S2, |S1|=n, |S2|=m, mục đích của chúng ta là tìm kiếm

một phép alignment tối ưu cho S1 và S2.

Page 36: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 25

3.2.1. Giải thuật quy hoạch động cho bài toán PSA Định nghĩa 3.1: Xét định nghĩa về 1 cơ chế đánh giá như sau

Nếu a và b là 2 ký tự đại diện cho các amino acid(nucleotide) trong 2 trình

tự. Gọi ( , )a bσ là hàm đánh giá của cặp a, b trong trong ma trận đánh giá

Hàm giá trị của gap phụ thuộc vào hằng số r>0 và chiều dài k ( ( ) *γ = −k r k ).

T là một chuỗi, ta định nghĩa |T| là chiều dài của chuỗi T.

Giá trị của phép alignment A của 2 chuỗi S1, S2 với kết quả S’1, S’2:

1

1 2 2( '[ ], '[ ]) *σ∈

−∑i K

S i S i l r

với K1 là tập các phần tử không là gap, |K1|=l1, l2 là tổng chiều dài của

gap, ' '1 2 1 2| | | |l l l S S+ = = =

Phép alignment tối ưu là phép alignment có giá trị lớn nhất có thể có của 2

chuỗi.

Định nghĩa 3.2: Gọi S(i,j) là giá trị của một phép alignment tối ưu của chuỗi

S1i(S1[1],.., S1[i]) và S2j (S2[1],..,S2[j])( 1 ≤ ≤i n ,1 ≤ ≤j m ) như vậy S(n,m) sẽ là giá trị

của một phép alignment tối ưu của S1 và S2. S(i, j) được định nghĩa như sau:

S(0, 0)=0

S(i,0)=S(i-1,0) -r, i>0

S(0,j)=S(0,j-1) -r, j>0

Từ định nghĩa của S(i, j) ta sẽ có công thức tính S(i, j) như sau:

S(i,j)= max { S(i-1, j-1) + 1 2( [ ], [ ])S i S jσ , S(i-1, j) - r ,

S(i, j-1) - r } i>0, j>0

Trong đó S(i-1, j-1) chính là giá trị của một phép alignment tối ưu của 2 chuỗi

S1i(S1[1],.., S1[i-1]) và S2j(S2[1],…,S2[j-1])

Hình 3.1 Phương pháp quy hoạch động cho bài toán PSA

Page 37: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 26

Công thức S(i,j) ở trên cho phép ta dễ dàng vận dụng kỹ thuật quy hoạch động. Ví dụ: Xét 2 chuỗi “ACBCDB” và “CADBD”

Hàm đánh giá : 2

( , )1

a ba b

a bσ

=⎧= ⎨− ≠⎩

Cho r=1

Ta thu được ma trận giá trị S(i,j) của 2 chuỗi trình tự như hình dưới

j 0 1 2 3 4 5

i C A D B D

0 0 -1 -2 -3 -4 -5

1 A -1 -1 1 0 -1 -2

2 C -2 1 0 0 -1 -2

3 B -3 0 0 -1 2 1

4 C -4 -1 -1 -1 1 1

5 D -5 -2 -2 1 0 3

6 B -6 -3 -3 0 3 2

Từ ma trận kết quả này ta có S(6,5)=2. Như vậy giá trị của phép alignment tối ưu

của 2 chuỗi trên là 2. Từ kết quả này ta sẽ đi tìm các phép alignment tối ưu mà cho

S(6,5)=2. Sử dụng kỹ thuật lưu vết ta sẽ có được 3 trong số các kết quả, như hình dưới.

j 0 1 2 3 4 5

i C A D B D

0 0 -1 -2 -3 -4 -5

1 A -1 -1 1 0 -1 -2

2 C -2 1 0 0 -1 -2

3 B -3 0 0 -1 2 1

4 C -4 -1 -1 -1 1 1

5 D -5 -2 -2 1 0 3

6 B -6 -3 -3 0 3 2

Bảng 3.1 Bảng kết quả giải thuật quy hoạch động cho bài toán PSA

Page 38: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 27

Dựa vào các con đường được sinh ra do kỹ thuật lưu vết từ S(m,n) đến S(0,0), các

alignment sẽ được sinh ra dựa trên nguyên tắc:

Nếu con đường đi theo hướng đường chéo từ S(i,j) đến S(i-1,j-1) thì 2 ký

tự đại diện cho S1[i] và S2[j] sẽ được ghi vào kết quả(đã được align)

Nếu con đường đi theo hướng từ S(i,j) đến S(i-1,j) thì ký tự đại diện cho

S1[i] và ‘-‘ sẽ được ghi vào kết quả(1 insertion gap được sinh ra)

Nếu con đường đi theo hướng từ S(i, j) đến S(i, j-1) thì ký tự đại diện cho

S2[j] và ‘-‘ sẽ được ghi vào kết quả(1 deletion gap được sinh ra)

Theo nguyên tắc này, trong ví dụ trên ta thu được 3 kết quả tương ứng với 3 con

đường truy hồi:

Như vậy cách tiếp cận quy hoạch động gồm 3 bước:

Khởi tạo ma trận từ 2 chuỗi sequence.

Tính toán, điền giá trị cho ma trận.

Sử dụng kỹ thuật lưu vết để tìm ra kết quả.

Giải thuật tính S(m,n) và lưu vết

S(0,0)=0;

for i=1 to n do

S(i,0)= S(i-1,0) - r;

for j=1 to m do

S( j,0)= S(0, j-1) - r;

for i=1 to |S1| do

for j=1 to |S2| do

{

S(i, j)= max ( S(i-1, j-1) + 1 2( [ ], [ ])S i S jσ ,

S(i-1, j) - r ,

S(i, j-1) - r );(1)

BackPTR(S(i, j))=(imax, jmax);//lưu trữ vết vào mảng BackPTR.

}

– A C B C D B C A D B – D –

A C B C D B – – C A – D B D

A C B C D B – – C – A D B D

Page 39: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 28

Với imax, jmax là giá trị tương ứng của i, j trong biểu thức (1). Xây dựng phương

thức tìm alignment theo nguyên tắc nêu ở trên, dựa vào mảng lưu trữ vết BackPTR, ta

sẽ thu được kết quả.

Giải thuật tìm S(m,n) và lưu vết có độ phức tạp (( 1) ( 1))n mΟ + + + , quá trình tìm

alignment từ tập vết BackPTR có độ phức tạp (( 1) ( 1))n mΟ + + + , vì thế độ phức tạp của

giải thuật quy hoạch động cho bài toán là: (( 1)( 1))n mΟ + + + (( 1) ( 1))n mΟ + + + = ( )nmΟ .

3.2.2. Giải thuật Gotoh Trong giải thuật trên, chúng ta xét trường hợp gap đơn giản, bỏ qua các tham số

khả năng mở gap và khả năng xuất hiện phần tử tiếp theo trong gap . Khi giá trị của

gap phụ thuộc vào các tham số này, công thức tính S(i,j) ( i>0, j>0) sẽ có dạng:

1 2( , ) max{ ( 1, 1) ( [ ], [ ]),max{ ( , 1) ( 1)},max{ ( 1, ), ( 1)}} 2 , 2

S i j S i j S i S jS i x j xS i j y y x i y j

σγ

γ

= − − +− − + −− − − ≤ ≤ ≤ ≤

Gotoh[13] đưa ra 1 giải thuật cho phép tính khi gap là 1 hàm tuyến tính dạng :

( ) ( * )k q r kγ = − +

Để tính toán S chúng ta đưa vào thêm các định nghĩa sau:

Gọi D(i, j) là giá trị lớn nhất của alignment giữa S1i và S2j mà được kết thúc bằng

một deletion gap.

I(i, j) là giá trị lớn nhất của một alignment giữa S1i và S2j mà được kết thúc bằng

một insertion gap.

Chúng ta sẽ có công thức tính cho S(i, j), D(i, j), I(i, j)

S(0, 0) = 0,

S(i, 0) = max{D(i, 0) } for i > 0,

S(0, j ) = max{I (0, j ) } for j > 0,

S(i, j ) = max{S(i − 1, j − 1) + σ(S1[i] , S2[j] ),D(i, j ), I (i, j) } for i > 0, j > 0.

D(0, j ) = S(0, j ) − q for j ≥ 0,

D(i, 0) = D(i − 1, 0) − r for i > 0,

D(i, j ) = max{D(i − 1, j ) − r, S(i − 1, j ) − q − r }for i > 0, j > 0.

I (i, 0) = S(i, 0) − q for i ≥ 0,

I (0, j ) = I (0, j − 1) − r for j > 0,

I (i, j ) = max{I (i, j − 1) − r, S(i, j − 1) − q − r }for i > 0, j > 0.

Page 40: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 29

Phần tiếp theo xin đề cập về cách tính giá trị của phép chuyển đổi từ chuỗi S1

sang S2 theo các khái niệm được giới thiệu ở trên. Chúng ta sẽ sử dụng 3 mảng 2

chiều để lưu trữ kết quả cho S, D,I.

Gotoh’s algorithm arrays S[0..m, 0..n] , D[0..m, 0..n] , I[0..m, 0..n] S(0, 0)← 0 for j ← 1 to n do {

S(0, j) ← −( q+r*j) D(0, j) ← S(0,j) - q

} for i ← 1 to m do {

S(i, 0) ← −(q + r*i) I(i, 0) ← S(i,0)−q for j ← 1 to n do {

I(i, j) ← max {I(i, j - 1) , S(i, j - 1) −q} - r D(i, j) ← max {D(i - 1, j) , S(i - 1, j) - q} - r S(i, j) ← max {D(i, j) , I(i, j) , S(i − 1, j − 1) + 1 2( [ ], [ ])S i S jσ }

} } write "cost is" S(m, n)

3.2.3. Giải thuật cải tiến không gian nhớ Từ giải thuật Gotoh ta có nhận xét sau:

Các giá trị của các phần tử trong dòng thứ i của ma trận S và D chỉ phụ

thuộc vào giá trị của các phần tử trong dòng thứ i-1 và dòng thứ i.

Giá trị của các phần tử của dòng thứ i của ma trận I chỉ phụ thuộc vào các

phần tử trước đó cũng của dòng này.

Từ 2 nhận xét trên ta thấy rằng để tính giá trị S(m,n) chúng ta không cần phải lưu

trữ toàn bộ 3 ma trận như giải thuật Gotoh. Ta có thể giảm không gian lưu trữ khi thực

thi giải thuật xuống còn (n)θ thông qua, kỹ thuật đổi chỗ(swap). Bằng kỹ thuật này ta

chỉ cần một không gian nhớ n phần tử, lưu trữ giá trị các phần tử của dòng thứ i-1 khi

bắt đầu tính giá trị các phần tử của dòng thứ i. Giá trị tính được của dòng thứ i sẽ lại

được ghi đè lên không gian nhớ này. Như vậy lúc nào ta cũng chỉ cần (n)θ không gian

Page 41: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 30

nhớ. Tuy nhiên giải thuật chỉ tính giá trị của S(m,n), không lưu vết và tìm kết quả.

Việc tìm kết quả alignment dựa trên giải thuật này sẽ được trình bày trong chương 4.

Gọi SS và DD là 2 mảng có chiều dài n sẽ dùng để lưu trữ giá trị của các phần tử

thuộc dòng thứ i của các ma trận S và D, e là giá trị của I . Sau vòng lặp thứ i, vector

SS sẽ lưu trữ giá trị của hàng thứ i của ma trận S. Tương tự như vậy sau vòng lặp thứ i

của giải thuật, DD sẽ lưu trữ giá trị của hàng thứ i của ma trận D. Giải thuật: vectors SS[0..n] , DD[0..n] Linear(S1,S2,SS,DD,-q) Procedure Linear(S1,S2,SS,DD,p) Var e, c, s, t SS(0) ← 0 for j ← 1 to n do/*Khởi tạo*/ {

SS( j) ← −(q + r*j) DD( j) ← SS(j) − q

} t←p for i ← 1 to m do/*Tính SS, DD*/ {

s ← SS(0) SS(0) ← c ← t← t−r /∗ −(q + r*i)*/ e← SS(0) − q for j← 1 to n do {

e← max {e, c −q} − r DD( j) ← max {DD( j) , SS( j) − q} − r c← max {DD( j) , e, s + 1 2( [ ], [ ])S i S jσ } s ← SS( j) SS( j) ← c

} } write "cost is" SS(n)

Như vậy sau khi kết thúc giải thuật SS sẽ lưu trữ giá trị của hàng thứ i của ma trận

S. Khi đó SS(n)=S(m,n).

Tại mỗi thời điểm ứng với giá trị của i>0, j>0 giá trị của các thông số SS(k),

DD(k), s, c, e (k>0)sẽ được hiểu như sau:

SS(k) =⎪⎩

⎪⎨⎧ <

≥−

jkkiS

jkkiS

),(

),1(

Page 42: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 31

DD(k) =⎪⎩

⎪⎨⎧ <

≥−

jkkiD

jkkiD

),(

),1(

e = I(i, j −1)

c = S(i, j − 1)

s = S(i − 1, j − 1)

Ví dụ: Cho ),( baσ = -1 nếu a ≠ b, ),( aaσ = 0, and kk 5.02)( −−=γ . Hai chuỗi S1, S2

lần lượt là AGTAC và AAG. Quá trình chuyển đổi từ chuỗi S1 sang S2 bao gồm các

bước delete GT, thay thế C bằng G, và giá trị của phép chuyển này là -4.

Áp dụng giải thuật Gotoh ta sẽ có các bảng như sau.‘*’ là các giá trị không xác

định.

Hình 3.2 Các ma trận S, D, I cho 2 chuỗi AGTAC and AAG.

Với giải thuật cải tiến, ta chỉ cần sử dụng 2 vector có 4 phần tử S và D và các giá

trị e,c, s tương ứng với I(i, j − 1), S(i, j − 1), và S(i − 1, j − 1). Hình trên biểu diễn giá

trị của SS, DD, e, c, s khi i= 5 và j = 2, giá trị của SS và DD được biểu diễn trong ô

chữ nhật, giá trị của e, c, và s được biểu diễn trong các ô hình elip.

A G T A C A − − Α G

Page 43: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 32

3.3. Giải thuật tính toán phép Alignment tối ưu cho bài toán Multiple Alignment sử dụng kỹ thuật dynamic programming

Phương pháp dynamic programming truyền thống tiếp cận bài toán MSA bằng

cách xây dựng hàm đánh giá theo phương pháp Sum-of-Pair(sử dụng tổng các kết quả

của phép alignment từng cặp trình tự(pairwise alignment)). Với phương pháp này thay

vì sử dụng hàm σ ta sẽ định nghĩa một hàm δ (x,y) để đo lường khoảng cách giữa 2

ký tự x, y. Sự khác nhau càng nhiều giữa 2 chuỗi trình tự thì δ càng lớn. Như vậy với

từng cặp trình tự S, T mục tiêu của phương pháp này là sẽ tìm giá trị nhỏ nhất của biểu

thức:

d*(S,T)=min d(S,T)=min(∑=

l

i

iTiS1

])['],['(δ ) với l=|S’|=|T’|

Định nghĩa 3.3: Giá trị của một MSA của k chuỗi S1, S2,…,Sk theo cách tiếp cận

sử dụng tổng kết quả của các phép alignment từng cặp trình tự(Sum of pair-SP) là tổng

của tất cả ( k2 ) phép alignment từng cặp trình tự từ k chuỗi này.

Ví dụ: Xét một MSA của 3 chuỗi trình tự: (S1) A C - C D B - (S2) - C - A D B D (S3) A - B C D A D

Nếu chúng ta định nghĩa ),( yxδ như sau:

0,

( , )1,

x yx y

x yδ

=⎧= ⎨ ≠⎩

Giá trị của MSA trên sẽ là d(S1,S2)+d(S1,S3)+d(S2,S3)=3+4+5=12 Định nghĩa 3.4:

Alignment tối ưu của k chuỗi S1, S2,…,Sk theo phương pháp sử dụng tổng kết quả

của các phép alignment từng cặp trình tự, là một alignment có giá trị của tổng kết quả

của các phép alignment từng cặp trình tự, mà giá trị này là nhỏ nhất. (minimize biểu

thức *

1 1( ) ( , )

= = +

= ∑ ∑k k

i ji j i

f M d S S )

Xét bài toán MSA với k chuỗi trình tự S1,S2,…,Sk có chiều dài |S1|,|S2|,…,|Sk|.

Gọi min 1min{| |,...,| |)kn S S= , max 1max{| |,...,| |)kn S S=

Rõ ràng theo cách tiếp cận sử dụng cho bài toán với 2 chuỗi trình tự thì ta sẽ cần

một ma trận k chiều: 1 2(| |)(| |)...(| |)k

k

S S S . Ma trận này có 1 2(| |)(| |)...(| |)k

k

S S S phần tử.

Page 44: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 33

Và mỗi phần tử sẽ phụ thuộc vào 2k -1 phần tử xung quanh nó. Như vậy quá trình tìm

phép alignment tối ưu như đã tiếp cận với bài toán PSA sẽ cho độ phức tạp của giải

thuật là 1 2 min min((| |)(| |)...(| |)) (2 ) ( ). (2 ) ((2 ) )k k k kkS S S n nΟ Ο ≥ Ο Ο = Ο . Rõ ràng với nmin lớn

khoảng vài trăm phần tử và k≥ 3 thì giải thuật là không hiệu quả về mặt thời gian.

Hình 3.3 Minh hoạ quá trình tìm 1 MSA tối ưu

Để cải thiện thời gian tính toán (cũng là giảm độ phức tạp của giải thuật ), ta có

thể thay đổi cách tiếp cận, thay vì tìm lời giải tối ưu ta có thể chỉ cần tìm lời giải gần

tối ưu nhưng có độ phức tạp nhỏ hơn nhiều. Điều này tương đương với việc tìm ra một

phép alignment có giá trị ∑ ∑k k

i ji=1 j=i+1

d (S ,S ) xấp xỉ với giá trị của phép alignment tối ưu

∑ ∑k k

*i j

i=1 j=i+1

d (S ,S ) , và quá trình tìm ra phép alignment có độ phức tạp chấp nhận được.

Một trong những giải pháp được đưa ra đó là sử dụng heuristic dựa trên phương

pháp quy hoạch động truyền thống. Phần tiếp theo xin được giới thiệu về giải thuật

Center Star Alignment, một giải thuật heuristic kinh điển hiện thực theo hướng này.

3.3.1. Giải thuật Center Star Alignment Algorithm [30] Giải thuật được xây dựng dựa trên ý tưởng về sự tiến hóa trong tự nhiên của các

chuỗi trình tự đại diện cho các loài. Quá trình tiến hóa trong tự nhiên của các loài có

thể được mô tả theo một đồ thị. Giải thuật Center Star Alignment dựa trên một trong

những hình thức của đồ thị để mô tả quá trình alignment. Hình thức đồ thị ở đây là đồ

thị có kiến trúc hình sao.

Page 45: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 34

Hình 3.4 Mô hình tiến hoá hình sao

Nội dung cơ bản của giải thuật là chọn ra một phần tử trung tâm và thực hiện quá

trình align các phần tử còn lại với phần tử này để tìm ra một kết quả MSA.

Giải thuật có độ phức tạp nhỏ hơn 2 2max( )n kΟ . Ta đưa ra một số giả thuyết

(assumption) về hàm đánh giá khoảng cách như sau(làm bổ đề cho quá trình đánh giá

sai số):

1. 0),( =xxδ

2.Bất đẳng thức tam giác: ),(),(),( zyyxzx δδδ +≤

Định nghĩa 3.5: Xét 2 chuỗi S và T. Gọi D(S,T) là giá trị hàm đánh giá khoảng

cách của phép alignment giữa S và T(theo hướng toàn cục) mà hàm đánh giá khoảng

cách của nó là nhỏ nhất.

Định nghĩa 3.6: K là tập lưu các thể hiện của các trình tự sau mỗi bước của phép

multiple alignment. Sau mỗi bước của quá trình alignment, K sẽ chứa các thể hiện mới

của các chuỗi trình tự ban đầu.

Giải thuật:

Xét tập I gồm k chuỗi trình tự. Tìm chuỗi SC là một chuỗi trong Ι sao cho:

∑−∈ }{

),(CSIS

C SSD đạt giá trị nhỏ nhất(Điều này có thể thực hiện dựa trên việc áp

dụng giải thuật giải quyết bài toán PSA cho )(2k cặp trình tự của I)

Đưa SC vào K: K }{ CS←

Xét k-1 trình tự còn lại S1, …, SC-1, SC+1,…, Sk, lần lượt thêm vào trong tập K,

thông qua phương thức Add(Si,K) .

………………….

………………….

………………….

………………….

………………….

………………….

Page 46: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 35

Giải thuật kết thúc khi tất cả các sequence được đưa vào K.

Ta sẽ định nghĩa phương thức Add(Si,K).

Add(Si,K) có thể được giải thích như sau:

Giả sử trong K có chứa các chuỗi trình tự S’C, S’1,..,S’i-1 là các thể hiện của SC,

S1,..,Si-1,. Phương thức Add(Si, K) sẽ thực hiện tìm kết quả alignment của S’C và Si. Kết

quả thu về sẽ là 2 chuỗi trình tự S’’C và S’i. Thay thế S’C bằng S’’C, thêm S’i vào K.

Điều chỉnh lại các trình tự S’1,…S’i-1 theo sự thay đổi của S’C → S’’C : Nếu cột nào của

S’’C xuất hiện gap so với S’C, thì cột tương ứng của S’1,…,S’i-1 cũng sẽ được thêm gap

(ký tự ‘-‘).

Giải thuật sẽ cho kết quả gần đúng so với lời giải tối ưu có thể có của phép toán

multiple alignment.

Độ phức tạp của giải thuật: Ta có thể chứng minh giải thuật có độ phức tạp nhỏ

hơn 2 2max( )n kΟ . Thật vậy giải thuật cho mỗi bài toán PSA có độ phức tạp tối đa là

2max( )nΟ , do có )(2

k cặp trình tự từ I nên việc tìm SC đòi hỏi độ phức tạp nhỏ hơn 2max 2( ( ))knΟ = 2 2

max( )n kΟ . Mỗi thao tác thêm Si vào K sẽ tạo ra một thể hiện mới S’’C của

SC trong K, chuỗi S’’C có chiều dài tối đa là ' 'max| | *CS n i≤ . Mỗi lần thêm một phần tử

mới Si+1 sẽ đòi hỏi phải thực hiện một lần giải thuật cho bài toán PSA với chuỗi Si+1

( 1 max| |iS n+ ≤ ), S’’C( ' 'max| | *CS n i≤ ). Do đó độ phức tạp cho giải thuật Add(Si,K) là

''

1(| |* | |)

k

C iii C

S S=≠

Ο∑ thỏa: 1

'' 2 2max max max

1 1(| |* | |) ( * * ) ( )

k k

C ii ii C

S S i n n n k−

= =≠

Ο ≤ Ο = Ο∑ ∑

Vậy độ phức tạp của giải thuật sẽ là 2 2 2 2 2 2max max max( ) ( ) ( )T n k n k n k≤ Ο + Ο = Ο

Hình 3.5 Minh họa Center Star Algorithm

s2

s1 s3

s4

s1: MPE s2: MKE s3: MSKE s4: SKE

MPE| |MKE

MSKE - || MKE

SKE || MKE

MPE MKE

-MPE -MKE MSKE

-MPE -MKE MSKE -SKE

Page 47: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 36

Đánh giá: Gọi MC là một kết quả của giải thuật. Gọi f(MC) là giá trị hàm đánh giá của phép alignment này. Và M* là một phép alignment tối ưu của k chuỗi. f(M*) là giá trị hàm đánh giá của phép alignmnet tối ưu. Ta có:

( ) 2( 1) 2( *)

Cf M kf M k

−≤ < .

Thật vậy ta chứng minh điều này như sau.

Gọi V(MC)= ∑ ∑=

≠=

k

i

k

jij

ji SSd1 1

),( và V(M*)= ∑ ∑=

≠=

k

i

k

jij

ji SSd1 1

),(*

Rõ ràng V(MC)=2f(MC) , V(M*)=2f(M*)

Ta có

V(MC)= ∑ ∑=

≠=

k

i

k

jij

ji SSd1 1

),( ≤ ∑ ∑=

≠=

+k

i

k

jij

jCCi SSdSSd1 1

)],(),([

1 1

[ ( , ) ( , )]k k

i C C ji j

i

D S S D S S

j= =

≤ +∑∑

(do MC là 1 lời giải của thuật toán nên d(Si, SC)=D(Si,SC), d(SC,Sj)=D(SC,Sj))

Dễ thấy ∑ ∑=

≠=

+k

i

k

jij

jCCi SSDSSD1 1

)],(),([ = ∑≠=

−k

Cjj

Cj SSDk1

),()1(2

Suy ra V(MC)≤ ∑≠=

−k

Cjj

Cj SSDk1

),()1(2 (1)

V(M*)= ∑ ∑=

≠=

k

i

k

jij

ji SSd1 1

),(* ≥ ∑ ∑=

≠=

k

i

k

jij

ji SSD1 1

),( = ∑≠=

k

Cjj

Cj SSDk1

),( (2)

(1)(2) suy ra 2)1(2*)(

)(*)(

)(<

−≤=

kk

MVMV

MfMf cc

Như vậy với tỉ lệ giữa kết quả hàm đánh giá của giải thuật với hàm đánh giá của

phép alignment tối ưu lúc nào cũng thuộc [1,2).

Giải thuật sẽ cho độ chính xác cao khi chuỗi trình tự đưa vào có quá trình tiến

hoá trong tự nhiên tuân theo mô hình đồ thị hình sao.

Page 48: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 37

Center Star Alignment là một trường hợp đặc biệt của phương pháp Progressive

Algorithm được trình bày trong chương 2. Trong phần tiếp theo ta sẽ đề cập chi tiết về

phương pháp đã được giới thiệu này.

3.3.2. Phương pháp Progressive Algorithm giải quyết bài toán MSA.

Ý tưởng của Progressive Algorithm là align các sequence dựa trên việc áp dụng

bài toán PSA lặp đi lặp lại nhiều lần. Progressive Algorithm có nhiều phiên bản hiện

thực khác nhau, tuy nhiên về cơ bản một Progressive Alogrithm gồm có 3 bước:

1. Chọn ra 2 sequence từ tập các sequence, align 2 sequence này với nhau.

2. Chọn một sequence khác và align với nhóm sequence đang align.

3. Lặp lại bước 2 cho đến khi tất cả các sequence đã được align.

Hình 3.6 Hình minh hoạ cho Progressive Algorithm.

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,

Page 49: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 38

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 toá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 toá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 toá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 jx y

S i j a bk k

σ= =

= ∑∑

Trong đó 11 i n≤ ≤ là cột thứ i của nhóm sequence A 21 j n≤ ≤ là cột thứ j của nhóm sequence B.

,x ia : ký tự đại diện cho amino acid tại dòng x, cột i của nhóm A.

,y jb : 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σ σ σ σ σ σ= + + + + +

Quá 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

Page 50: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 39

Hình 3.7 Minh họa Feng-Doolittle Algorithm

Hình 3.8 Ví dụ thực thi Feng-Doolittle Algorithm

Quá trình align các nhóm sequence đã được phân hoạch theo một trình tự nào đó,

sẽ tạo nên một cây nhị phân. MSA tối ưu sẽ tương ứng với 1 cây tối ưu. Việc tìm kiếm

MSA tối ưu của Progressive Algorithm sẽ tương đương với việc tìm ra cây tối ưu.

Khoảng cách giữa các sequence: Trong phần nói về Center Star Algorithm

chúng ta có đề cập đến khái niệm khoảng cách giữa 2 sequence, ở mục này sẽ trình

bày chi tiết hơn về khái niệm này, và cũng giải thích lý do khái niệm này thường được

sử dụng trong phương pháp Progressive Algorithm. Giải thuật quy hoạch động đề cập

đến MSA tối ưu là MSA có giá trị hàm đánh giá lớn nhất(dựa trên các ma trận hàm

đánh giá), giá trị hàm đánh giá càng lớn nghĩa là các sequence tham gia có độ tương

đồng càng cao, đồng nghĩa với việc là về mặt tiến hóa khoảng cách di truyền giữa các

sequence là ngắn. Trong thực tế sinh học, người ta thường sử dụng khái niệm khoảng

cách giữa các sequence để mô tả quá trình tiến hóa của các sequence, cũng như biểu

hiện khả năng tương đồng của chúng. Vì phù hợp với bản chất phát triển tự nhiên của

Thêm gap

A B

Align 2 nhóm A ,B

DGMREA DGMKGA DNMGGS

EAMSGVS ENMI GXC

DGMR E - A DGMK G - A DNMG G - S EAMS G V S ENMI G X C

Thêm gap vào vị trí thứ 6 của nhóm

A

Nhóm A

Nhóm B

Page 51: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 40

sinh học, cách tiếp cận hàm đánh giá theo phương pháp khoảng cách di truyền được sử

dụng nhiều trong các bài toán sinh học.

Định nghĩa 3.7

Khoảng cách giữa 2 sequence(Pairwise Distance), được tính bằng phương pháp

Sum-of-Pair, là một hàm theo giá trị hàm đánh giá SPScore của 2 chuỗi này.

( , ) ( ( , ))i j i jDist S S f SPScore S S= với :f →

Trong phần này chúng ta sẽ xem xét các giải thuật heuristic dựa trên Progressive

Algorithm: CLUSTALW, MULTIALIGN,... Các thuật giải heuristic hầu hết đều phát

triển dựa trên nền tảng của Feng-Doolittle Algorithm, trong đó phần lớn tập trung vào

việc xây dựng cách thức phân hoạch các nhóm sequence, cũng như mô tả trình tự align

của các nhóm này. Các thuật giải này về cơ bản đều gồm những bước chính sau:

1. Tính toán khoảng cách giữa các cặp sequence(có 2kC khoảng cách) thông qua kỹ

thuật quy hoạch động

2. Xây dựng cây nhị phân mô tả trật tự align của các sequence dựa trên các cặp

khoảng cách giữa các sequence, sao cho cây này là tối ưu

3. Align các sequence dựa trên cây mô tả.

Một số chương trình trong thực tế xây dựng cây mô tả để thực hiện quá trình

align

MULTALIGN(Barton và Sternberg,1987) và PILEUP(Genetic Computer Group)

sử dụng giải thuật UPGMA-Unweighted Pair-Group Medthod using arithmetic

Averages(Sneath và Sokakk, 1973) để xây dựng cây mô tả. Chương trình sẽ chọn ra 2

sequence có khoảng cách ngắn nhất trong tất cả các cặp sequence, align chúng với

nhau tạo thành một nhóm sequence. Tính lại tập khoảng cách của n-2 phần tử còn lại

và nhóm sequence vừa được tạo. Tiếp tục tìm ra 1 cặp phần tử có độ tương đồng cao

nhất và align chúng với nhau. Chương trình kết thúc khi tất cả các phần tử đã được

align. Việc tính toán khoảng cách giữa nhóm sequence và 1 sequence giống như quá

trình tính toán khoảng cách giữa 2 nhóm sequence của Feng-Doolittle Algorithm,

trong đó một nhóm được rút gọn thành 1 sequence.

CLUSTALW(Thompson 1994)[9]: Sử dụng giải thuật Neighbor-Joinning(Saitou

và Nei,1987) để xây dựng cây mô tả. Đầu tiên các cây không gốc sẽ được tạo thông

qua việc tính toán dựa vào khoảng cách của các cặp sequence, mỗi nút lá đại diện cho

Page 52: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 41

một sequence. Từ các cây không gốc tính toán để xây dựng một nút gốc nối liền các

cây này. Các nhánh cây có trọng số khác nhau, các trọng số này được tính toán và dẫn

xuất từ khoảng cách của các cặp sequence ban đầu.

CLUSTALW 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. Đây cũng là chương trình mà kết quả cho độ

chính xác tốt nhất so với các chương trình được hiện thực theo phương pháp

Progressive Algorithm.

Page 53: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 42

Chương 4. THIẾT KẾ GIẢI THUẬT VÀ HIỆN THỰC PHƯƠNG PHÁP GIẢI QUYẾT BÀI TOÁN MSA

Trên cơ sở lý thuyết đã trình bày về các phương pháp giải quyết bài toán MSA

tại thời điểm hiện tại. Trong phần này xin được trình bày giải pháp tiếp cận cũng như

việc hiện thực chương trình để giải quyết bài toán MSA. Nội dung bao gồm:

Thiết kế giải thuật giải quyết bài toán PSA.

Thiết kế phương pháp phân hoạch, giải pháp gom nhóm cũng như trình tự

align các sequence.

Xây dựng giải thuật mới gọi là giải thuật 1A giải quyết bài toán MSA, và

giải thuật cải tiến của 1A, giải thuật 1B.

Phương pháp hiện thực các giải thuật.

4.1. Giải thuật sử dụng cho bài toán PSA Như đã trình bày trong phần cơ sở lý thuyết, bài toán PSA có thể được hiện thực

một cách dễ dàng bằng phương pháp quy hoạch động, tuy nhiên phương pháp này có

một số hạn chế :

Việc xây dựng ma trận để phục vụ cho việc tính toán đòi hỏi vấn đề cấp

phát bộ nhớ cũng như khối lượng tính toán lớn. Khi chiều dài của các

sequence tham gia đủ lớn(n>1000), đây sẽ là một vấn đề trong việc hiện

thực.

Vấn đề tìm lại con đường thông qua các vết được lưu.

Độ chính xác của phép alignment phụ thuộc rất nhiều vào ma trận đánh

giá, tùy vào tính tương đồng mà mỗi cặp sequence sẽ phù hợp nhất với

một ma trận đánh giá. Giải thuật quy hoạch động thuần túy chỉ sử dụng

một ma trận đánh giá, do đó không cho phép thay đổi ma trận đánh giá

phù hợp với cặp sequence đang xét, điều này hạn chế khả năng linh động

của giải thuật.

Trong phạm vi của luận văn này tôi xin trình bày một giải pháp mới để giải quyết

bài toán PSA có thể hạn chế được những khuyết điểm của phương pháp quy hoạch

Page 54: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 43

động thuần túy, cho phép tối ưu hóa vấn đề không gian nhớ sử dụng, thay đổi linh hoạt

các ma trận đánh giá, nâng cao độ chính xác của giải thuật.

Giải thuật quy hoạch động có độ phức tạp ( )nmΟ và đòi hỏi không gian bộ nhớ

( )Ο nm . Giải thuật được xây dựng chỉ đòi hỏi không gian bộ nhớ ( lg )Ο + +n m m và thời

gian chạy vẫn là ( )nmΟ .

4.1.1. Giải thuật tính toán dựa theo kỹ thuật chia để trị Trong chương 2 chúng ta đã đề cập đến phương pháp cải tiến giải thuật Gotoh

cho phép tính toán S(m,n) với độ phức tạp ( )nmΟ và không gian nhớ sử dụng là

( )Ο +m n . Trong phần này chúng ta sẽ phát triển giải thuật cho phép tìm ra kết quả

alignment dựa trên giải thuật Gotoh đã cải tiến.

Thuật giải để tìm kiếm phép alignment được xây dựng dựa trên ý tưởng của

Hirschberg khi giải quyết bài toán tìm chuỗi con lớn nhất của 2 chuỗi. Hirschberg

(1975)[15] đã giới thiệu một kỹ thuật chia để trị nhằm giải quyết bài toán tìm chuỗi

con dài nhất của 2 chuỗi với độ phức tạp ( )nmΟ và cần ( lg )Ο +n m không gian nhớ.

Nội dung chính của giải thuật được xây dựng trong phần này sẽ là tìm kiếm điểm giữa

(midpoint) của một alignment tối ưu, sau đó xem điểm vừa tìm được là điểm biên sử

dụng kỹ thuật đệ quy để tiếp tục tìm phép alignment tối ưu của phần trước và sau của

nó. Ý tưởng này được minh họa như hình dưới đây.

Hình 4.1 Mô hình quá trình thực hiện giải thuật PSA

Xét 2 chuỗi A, B có chiều dài m, n(1 ,1m n≤ ≤ ) A(a1a2…am ),B(b1b2…bn).

Ta đưa ra một số qui ước sau:

i*

j*

Điểm giữa

Page 55: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 44

Ai là chuỗi con của A bắt đầu từ phần tử đầu tiên đến phần tử thứ i, Ai(a1 a2…ai).

TiA : là phần sau của chuỗi A từ vị trí thứ i+1. T

iA (ai+1…am)

rev(A)m: chuỗi ngược của chuỗi A( amam-1…a1).

rev(A)m-i: chuỗi ngược của chuỗi ai+1ai+2…am. Chúng ta gọi PSA là tối ưu nếu giá trị hàm đánh giá của nó là lớn nhất.

Giải thuật sẽ tìm kiếm điểm M*(i*,j*) ( *, * [0, ]i j n∈ ) trên ma trận sao cho M*

nằm trên con đường sinh ra PSA tối ưu(đồng nghĩa với M* chia ma trận thành 2 vùng

mà cách chia của nó là tối ưu), với M* ta có thể thực hiện quá trình chia nhỏ phục vụ

cho quá trình gọi đệ quy. M* có thể thuộc 1 trong 2 hình thức:

M* là điểm kết thúc của một alignment của Ai* với Bj* và là điểm bắt đầu

của 1 alignment của TiA *

với *TjB (1).

M* là điểm kết thúc của một alignment của Ai* với Bj* kết thúc bằng gap,

và là điểm bắt đầu của 1 alignment của TiA *

với *TjB , bắt đầu với 1 gap (2).

Định lý 4.1 Gọi SP là giá trị của phép alignment bất kỳ của A và B. M(i,j)

( , [0, ]i j n∈ )là một điểm nằm trên con đường sinh ra alignment này. Khi đó, SP bằng

tổng giá trị alignment tối ưu của Ai với Bj và giá trị alignment tối ưu của TiA với T

jB :

( , ) ( , )T Ti j i jSP score A B score A B= + (3)

Chứng minh: Thật vậy ta có ( , ) ( , )= = T Ti i j jSP score A B score A A B B (1’)

Do M(i,j) thuộc con đường sinh ra phép alignment tối ưu nên ta có thể tách thành

2 bài toán con hay ( , ) ( , ) ( , )= +T T T Ti i j j i j i jscore A A B B score A B score A B (2’)

Từ (1’), (2’) ta có điều phải chứng minh

Để tìm M*, phương pháp được sử dụng là cố định i* và tìm j*.

Ta chọn i* = [m/2]. Chúng ta sẽ tìm * [0, ]j n∈ thỏa mãn yêu cầu đặt ra.

Xét 1 giá trị j bất kỳ [0, ]j n∈ .

Gọi SS(j) là giá trị của phép alignment tối ưu của Ai* và Bj , DD(j) là giá trị của

phép alignment tối ưu của Ai* với Bj mà kết thúc bằng một gap.

Gọi RR(j) là giá trị của phép alignment tối ưu của rev(A)m-i* với rev(B)j, và CC(j)

là giá trị của phép alignment tối ưu của rev(A)m-i* với rev(B)j kết thúc bằng một gap.

Page 56: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 45

SS, DD, RR, CC là các vector gồm n phần tử.

Định lý 4.2 Giá trị j* cần tìm sẽ thỏa đẳng thức sau:

j*=max j∈[0,n] {max (SS( j) + RR(n − j) , DD( j) + CC(n − j) + q) }

Chứng minh:

Thật vậy: Do rev(rev(A)m-i* )= *TiA và rev(rev(B)n-j )=

TjB nên ta có:

RR(n-j) là giá trị của alignment tối ưu của *TiA với T

jB

CC(n-j) là giá trị của alignment tối ưu của *TiA với T

jB bắt đầu với một gap

Như vậy theo định l ý 4.1, ứng với mỗi giá trị j, giá trị của toàn bộ alignment

ứng với kiểu (1): SP=SS(j) +RR(n-j). Giá trị của toàn bộ alignment ứng với kiểu (2) là

SP=DD(j)+CC(n-j)+q.

Do đó việc tìm giá trị tối ưu của việc chuyển đổi từ A sang B sẽ là việc tìm j*

sao cho giá trị max (SS( j*) + RR(n − j*) , DD( j*) + CC(n − j*) + q) là lớn nhất:

j*=max j∈[0,n] {max (SS( j) + RR(n − j) , DD( j) + CC(n − j) + q) }

M*(i*, j*) chính là cặp điểm giữa tối ưu cần tìm, định lý được chứng minh. Để ý

rằng SS, DD có thể tính được bằng cách áp dụng giải thuật Gotoh cải tiến(xem 3.2.3)

cho Ai* và B; RR, CC có thể tính được bằng cách áp dụng giải thuật Gotoh cải tiến cho

rev(A)m-i* với rev(B). Như vậy quá trình tìm M*(i*, j*) được chia làm 2 phần:

Tìm SS(j), DD(j) bằng cách áp dụng giải thuật Gotoh cải tiến cho Ai*

với B.(hướng tới).

Tìm RR, CC bằng cách áp dụng giải thuật Gotoh cải tiến cho

rev(A)m-i* với rev(B)(hướng lui).

Giá trị tối ưu của phép alignment có thể tìm được bằng cách gọi đệ qui để tìm giá

trị tối ưu của Ai* với Bj* , đệ qui để tính giá trị tối ưu của TiA *

với TjB * và kết nối 2 phần

này lại. Bài toán sẽ chia thành các bài toán con nhỏ hơn(chia để trị) như hình

trên(đường nối các điểm giữa trên hình biểu diễn toàn bộ con đường tính giá trị tối

ưu).

Điều kiện dừng của giải thuật đệ quy là khi i* nhỏ hơn 1 giá trị iM. Khi đó chúng

ta sẽ thực hiện giải thuật quy hoạch động với ma trận M gồm iM dòng và jM cột(jM là

giá trị tương ứng của j khi i*=iM). Áp dụng kỹ thuật lưu vết trong quy hoạch động kết

Page 57: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 46

hợp với việc sử dụng một cấu trúc dữ liệu lưu trữ kết quả alignment từ các ma trận M,

ta sẽ dễ dàng tìm được kết quả alignment của 2 chuỗi A, B.

Giải thuật shared vectors SS[0..m] , DD[0..m] , RR[0..n] , CC[0..n] procedure DIFF(A, B, m, n) { diff(A, B, m, n) } recursive procedure diff(A, B, m, n){ if (n<=iM) {

Áp dụng kỹ thuật quy hoạch động cho A,B. Tìm vết của giải thuật quy hoạch động. Lưu trữ kết quả.

} else{

i* ← [m/ 2] Tính SS và DD theo hướng tới: Linear(Ai*,B,SS,DD). Tính RR và CC theo hướng lui: Linear(rev(A)m-i*,rev(B),RR,CC). Tìm j*∈[0, n] maximize giá trị max(SS( j) + RR(n − j) , DD( j) + CC(n − j) + q) Gọi đệ quy: diff(Ai* , Bj* , i*, j*) diff( T

iA * , T

jB * , m − i*, n − j*)

} } Ví dụ: Xét 2 chuỗi “AGTAC” và “AAG”, m = 5, n = 3, i* = 2, hàm tính gap:

( ) 2 0.5k q r k kγ = − + ∗ = − − , ),( baσ = -1 nếu a ≠ b, ),( aaσ = 0. Ta sẽ có:

SS: -3.0 -2.5 -1.0 -2.5 DD: -3.0 -2.5 -5.0 -5.5

RR: -3.5 -4.0 -3.5 -2.0 CC: -3.5 -4.0 -3.5 -6.0

Có 8 khả năng cho 2 loại midpoint theo giá trị của j∈[0, n].

j = 0 j = 1 j = 2 j = 3

Kiểu midpoint 1: -5.0 -6.0 -5.0 -6.0

Kiểu midpoint 2:-7.0 -4.0 -7.0 -7.0

Giá trị được chọn là ứng với kiểu 2: j* = 1. Điểm (i*,j*)=(2,1) là điểm kết hợp

của giá trị tối ưu của Ai* = “AG” với B1 =”A”, kết thúc bằng 1 gap(I) và giá trị tối ưu

của TiA *

= “TAC” và TjB *

= “AG”, bắt đầu bằng 1 gap(II).

Kết hợp giá trị của 2 phần (I) và (II) : DD( j) + CC(n − j) + q =DD(1) + CC(2)

+ 2 = (-2.5)+(-3.5)+2= -4.

Page 58: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 47

Bài toán lúc này trở thành tối ưu hóa việc chuyển đổi từ A1 = “AG” sang B1 =”A”,

và tối ưu hóa việc chuyển đổi từ 2TA = “TAC” sang TB1 = “AG”. Tiếp tục thực hiện

giải thuật cho 2 bài toán con này.

Giả sử điều kiện dừng của giải thuật là iM =2. Với lời giải cho A1 và B1 , m = 2,

n=1, khi đó áp dụng giải thuật quy hoạch động dễ có :A1, B1

Với bài toán chuyển từ “TAC” sang “AG” thuật giải sẽ tiếp tục chia bài toán

thành 2 bài toán con ta tính được i*=2, j*=1 khi đó ta sẽ có 2 kết quả

Kết hợp các kết quả ta được phép alignment tối ưu của A, B:

Chúng ta quan tâm đến độ phức tạp về thời gian và về không gian nhớ khi thực

hiện giải thuật.

Giải thuật cần Ο (n) không gian nhớ cho việc lưu trữ các vector SS, DD, RR, CC

và Ο (lgm) cho [lg m]+1 lần gọi đệ quy.

Mỗi khi gặp điều kiện dừng giải thuật cần:

( * )Ο M Mi j không gian nhớ cho việc cấp phát ma trận để thực hiện

giải thuật quy hoạch động, ta có ( * ) ( * ) ( )Ο ≤ Ο = ΟM M Mi j i m m .

( )Ο +M Mi j không gian nhớ để lưu trữ kết quả, ta có

( ) ( ) ( )Ο + ≤ Ο + = ΟM M Mi j i m m

Như vậy giải thuật sử dụng ( ) ( ) ( ) (lg ) ( lg )Ο + Ο + Ο + Ο = Ο + +n m m m n m m không

gian nhớ.

Xét độ phức tạp về thời gian : Cần tối đa ( )MC i n= Ο thao tác cho các trường hợp

đặc biệt và (1+1/2+1/4+…) ( )mnΟ ≤ 2 ( )mnΟ thao tác cho các lần gọi đệ qui, suy ra độ

phức tạp về thời gian ( )Mi nΟ +2 ( )mnΟ .

T A − Α

C G

A G A −

A G T A C A − − Α G

Page 59: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 48

Như đã đề cập ở phần trên, khi ma trận đánh giá được lựa chọn không phù hợp,

dẫn đến việc sử dụng 1 ma trận đánh giá sẽ làm hạn chế kết quả của phép alignment.

Giải thuật được thiết kế sử dụng cùng lúc 3 ma trận BLOSUM: BLOSUM45,

BLOSUM62 và BLOSUM100 phục vụ cho việc tính toán. Việc tính toán S(m, n) (theo

giải thuật cải tiến không gian nhớ) được tính toán song song cho cả 3 ma trận

BLOSUM. Gọi giá trị tính toán S(m,n) tương ứng với 3 ma trận BLOSUM lần lượt là

SP45, SP62 và SP100. Gọi 3 ma trận tính toán tương ứng với 3 ma trận BLOSUM lần

lượt là S45, S62 và S100.

Chúng ta sẽ chọn ma trận BLOSUM cho giá trị hàm đánh giá S(m,n) lớn nhất.

45 62 100 45 62 100{ { , , } | ( , ) max( , , )}S s S S S s m n SP SP SP= ∈ =

45 62 100( , ) max{ ( , ), ( , ), ( , )}S m n S m n S m n S m n=

Giải thuật quy hoạch động thiết kế ở trên sẽ sử dụng ma trận BLOSUM được

chọn cho suốt quá trình tính toán.

Hình 4.2 Quá trình xây dựng ma trận của thuật giải cho bài toán PSA

Việc sử dụng đồng thời 3 ma trận BLOSUM trong giải thuật sẽ làm tăng độ chính

xác về phương diện thực tế cho bài toán PSA, tuy nhiên điều này cũng đòi hỏi thời

gian tính toán của giải thuật phải tăng lên tương ứng 3 lần. Chúng ta chấp nhận điều

này nhằm hướng đến một lời giải tốt nhất cho bài toán PSA.

Chọn S(m,n)

Ma trận ứng với BLOSUM100

Ma trận ứng với BLOSUM62

Ma trận ứng với BLOSUM45

Ma trận tính toán của giải thuật

S62(m,n)

S100(m,n)

S45(m,n)

S (m,n)

Page 60: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 49

4.2. Giải thuật hiện thực cho bài toán MSA Để giải quyết bài toán MSA, luận văn tiếp cận theo phương pháp Progressive

Algorithm. Như đã trình bày trong phần cơ sở lý thuyết và phương pháp thực hiện,

Progressive Algorithm phụ thuộc rất nhiều vào việc phân hoạch tập các sequence

thành các nhóm cũng như trật tự align các nhóm này thành 1 nhóm duy nhất. Chúng ta

sẽ định nghĩa một số phương thức sử dụng trong việc xây dựng giải thuật:

Định nghĩa hàm khoảng cách của các cặp sequence(Pairwise Distance):

( , ) max ( , ) 1i j i jDist S S SP SP S S= − +

Trong đó SPmax là giá trị lớn nhất của tập 2kC kết quả phép alignment của các

cặp chuỗi (Si, Sj). Việc tìm SPmax được thực hiện bằng cách áp dụng bài toán PSA cho

tất cả các cặp chuỗi (Si, Sj).

Chúng ta sẽ xây dựng giải thuật giải quyết bài toán MSA bắt đầu từ việc cải tiến

thuật toán Center Star. Phân tích Center Star Algorithm chúng ta thấy:

1. Điểm cốt lõi của giải thuật là chọn ra phần tử trung tâm SC.

2. Giải thuật không phân biệt trình tự chọn các sequence để align.

3. Giải thuật Center Star chỉ align các sequence tiếp theo với thể hiện của SC

trong tập K.

Điểm chú ý thứ 3 có thể được giải thích là tất cả các thay đổi(việc xuất hiện gap)

của các thể hiện của SC trong K sẽ dẫn đến sự thay đổi của tất cả các phần tử trong K.

Điều này thật sự không tốt, nó phản ánh sự “thiên vị” của giải thuật với phần tử SC, kết

quả thu được chỉ phản ánh mối quan hệ của các phần tử với SC, không phản ánh được

mối quan hệ giữa các phần tử còn lại. Rõ ràng việc tìm ra phương pháp mà kết quả

cuối cùng phản ánh mối quan hệ tiến hoá giữa các phần tử trong MSA sẽ hợp lý hơn. Ý

tưởng được đưa ra ở đây là thay vì align các sequence tiếp theo với thể hiện của SC

trong tập K, chúng ta sẽ align phần tử này với toàn bộ tập K dựa trên giải thuật Feng-

Doolittle về align các nhóm sequence. Kết quả thu được của sự cải tiến này là phù hợp

hơn về mặt thực tế sinh học.

Page 61: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 50

Hình 4.3 Quá trình align của Center Star Algorithm và phiên bản cải tiến

Như đã đề cập trong phần lý thuyết về Progressive Algorithm, việc lựa chọn ra

trình tự các sequence chưa align để thực hiện align với K có ảnh hưởng rất lớn đến kết

quả cuối cùng của phép alignment. Từ điểm chú ý thứ 2 ta thấy cần thiết phải xây

dựng một trật tự các sequence sẽ align với K. Korostensky và Gonnet[17], [18] đưa ra

một phương pháp đánh giá MSA bằng kỹ thuật Circular Sum thay cho Sum-of-Pair.

Luận văn không tiếp cận theo phương pháp này tuy nhiên lấy ý tưởng về việc áp dụng

bài toán TSP vào bài toán MSA [36]. Ý tưởng được đưa ra là chúng ta sẽ sử dụng bài

toán TSP để mô tả thứ tự sẽ align các sequence.

4.2.1. Bài toán TSP(Travelling Salesman Problem-Bài toán người bán hàng).

Bài toán: Xét k đỉnh, từ mỗi đỉnh đều có con đường đến các đỉnh còn lại. Yêu cầu tìm con đường ngắn nhất đi qua k đỉnh(mỗi đỉnh một lần) và quay về đỉnh ban đầu [31].

Hình 4.4 Bài toán TSP.

Page 62: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 51

Về bản chất bài toán TSP là tìm ra 1 hoán vị của k phần tử sao cho tổng khoảng

cách của con đường đi qua chúng là ngắn nhất. Rõ ràng độ phức tạp của thuật toán là

( !)kΟ .

TSP cũng là bài toán NP. Tuy nhiên có nhiều phương pháp giải quyết tốt bài toán

khi k<1000.

Xem mỗi sequence là 1 đỉnh, và khoảng cách giữa các sequence chính là khoảng

cách giữa các đỉnh.

Lời giải của bài toán TSP sẽ cho ta một chu trình đi qua k đỉnh có chiều dài ngắn

nhất. Như vậy nếu chúng ta sử dụng thứ tự duyệt qua chu trình này với điểm bắt đầu là

SC ta sẽ có được thứ tự các phép align của các sequence.

Chúng ta đã có nhận xét: khoảng cách giữa 2 sequence càng ngắn thì độ tương

đồng giữa chúng càng cao. Rõ ràng đứng trên quan điểm này, việc sử dụng lời giải của

bài toán TSP làm trình tự align của các sequence cho ta một ước lượng về 1 chu trình

tiến hoá nhỏ nhất của các sequence. Kỳ vọng về các phần tử có chu trình tiến hoá

nhỏ nhất sẽ có nhiều điểm tương đồng, chính là lý do cho việc sử dụng bài toán

TSP để mô tả quá trình align giữa các sequence.

Hình 4.5 Kết quả bài toán TSP.

Phần tiếp theo xin được trình bày về một giải thuật mới, giải thuật 1A 4.2.2. Giải thuật 1A

Giải thuật gồm có 3 bước chính:

1. Tính ma trận khoảng cách D của các sequence dựa trên việc thực hiện 2kC

lần bài toán PSA cho tất cả các cặp sequence.

2. Áp dụng tìm lời giải CT của bài toán TSP cho k đỉnh với ma trận khoảng

cách D.

3. Thực hiện giải thuật Center Star với một số thay đổi như đã trình bày:

0

2

3

1

4

67

1538

24

1 start

Page 63: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 52

Bắt đầu từ SC lần lượt thực hiện phép aligment của K với các

sequence, dựa trên thứ tự duyệt của chu trình CT thu được từ bài

toán TSP.

Sử dụng giải thuật Feng-Doolittle cho phép alignment của K với

mỗi sequence.

Xuất phát từ SC có 2 hướng để duyệt theo chu trình CT. Chúng ta biết rằng thứ tự

align của các sequence ảnh hưởng rất lớn đến kết quả alignment. Một cột trong phép

alignment đã xuất hiện gap thì sau bất kỳ các biến đổi nào nó cũng vẫn là gap. Chính

vì thế việc hạn chế sự xuất hiện gap ở những bước đầu của Progressive Algorithm có

ý nghĩa rất quan trọng. Vì thế trong 2 lựa chọn của việc duyệt CT từ SC, chúng ta sẽ

chọn giải pháp duyệt theo hướng mà khoảng cách từ SC đến điểm kế cận của nó là nhỏ

hơn.

Hình 4.6 Lưu đồ thuật giải 1A

Ví dụ: Chúng ta xét một ví dụ để minh hoạ cho trình tự thực hiện của giải thuật.

Xét 5 sequence:

Tính toán ma trận khoảng cách

Tìm lời giải CT của bài toán TSP

Thực hiện align theo thứ tự của CT bắt đầutừ SC và duyệt theo hướng cạnh nhỏ hơn

Kết thúc

+

- CT Còn 1 đỉnh

Chọn đỉnh SC

Page 64: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 53

Thực hiện phép toán PSA cho tất cả 2

5 10C = cặp sequence ta được ma trận khoảng cách:

380462451

38

46

24

51

0155861

1501467

581401

616710

380462451

38

46

24

51

0155861

1501467

581401

6167100 1 2 3 4

01234

Xem mỗi sequence như 1 đỉnh. Giải bài toán TSP cho 5 đỉnh và ma trận khoảng

cách trên ta được lời giải CT:

Để chọn SC, từ bảng ma trận khoảng cách ta thấy tổng khoảng cách từ một đỉnh

đến các đỉnh còn lại là:

380462451

38

46

24

51

0155861

1501467

581401

616710

380462451

38

46

24

51

0155861

1501467

581401

6167100 1 2 3 4

01234

Đỉnh SC sẽ là đỉnh 1. Từ 1 có 2 hướng để duyệt hết chu trình 1 0 2 4 3→ → → →

và 1 3 4 2 0→ → → → . Do dist(1,0)=1 nhỏ hơn dist(1,3)=24. Do đó chúng ta sẽ chọn

0

2

3

1

4

67

15

38

24

1

>Sequence1 (1csp ) MLEGKVKWFNSEKGFGFIEVEGQDDVFVHFSAIQGEGFKTLEEGQAVSFEIVEGNRGPQAANVTKEA >Sequence2 (1mef ) MSGKMTGIVKWFNADKGFGFITPDDGSKDVFVHFSAIQNDGYKSLDEGQKVSFTIESGAKGPAAGNVTSL >Sequence3 (csp7_strcl ) MATGTVKWFNAEKGFGFIAQDGGGPDVFVHYSAINATGFRSLEENQVVNFDVTHGEGPQAENVSPA >Sequence4(grp2_nicsy ) KGTVKWFSDQKGFGFITPDDGGEDLFVHQSGIRSEGFRSLAEGETVEFEVESGGDGRTKAVDVTGP >Sequence5 (cbfx_mouse ) VLGTVKWFNVRNGYGFINRNDTKEDVFVHQTAIKKNNPRKYLRSVGDGETVEFDVVEGEKGAEAANVTGP

180 97 142 159 172

Page 65: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 54

hướng 1 0 2 4 3→ → → → . Như vậy trình tự đưa các sequence vào K để align lần lượt là 1,0,2,4,3

Chúng ta sẽ có cây mô tả tương ứng cho quá trình align theo giải thuật

Kết quả của giải thuật(chạy bằng chương trình được hiện thực ở chương sau):

Trên cơ sở giải thuật ở trên ta thấy rằng có thể có 1 bước cải tiến khác cho giải

thuật này. Thay vì sử dụng thứ tự align các sequence theo cách duyệt chu trình CT bắt

đầu từ đỉnh SC, ta có thể thực hiện việc gom nhóm trên chu trình và xây dựng thứ tự

align các sequence dựa trên khoảng cách giữa các sequence trong chu trình. Ý tưởng

cơ bản của giải thuật như sau:

Chúng ta sẽ phân hoạch các phần tử trong chu trình theo cách gom nhóm các

phần tử trên chu trình với phần tử kế cận của nó, sao cho khoảng cách của chúng là

ngắn nhất trong chu trình, và align với nhau. Quá trình gom nhóm và align sẽ kết

thúc khi chu trình chỉ còn 1 phần tử. Việc phân hoạch theo ý tưởng này xuất phát từ

nhận xét: trong quá trình align các sequence việc align các sequence có khoảng

cách gần hơn sẽ cho kết quả tốt hơn.

0

2

3

1

4

67

15

38

24

1

start

01 2 4 3

VL----GTVKWFNVRNGYGFINRNDTKEDVFVHQTAIKKNNPRKYLRSVGDGETVEFDVVEGEKGAEAANVT-GP -----KGTVKWFSDQKGFGFITPDDGGEDLFVHQSGIRSEG----FRSLAEGETVEFEVESGGDGRTKAVDVTGP MSGKMTGIVKWFNADKGFGFITPDDGSKDVFVHFSAIQNDG----YKSLDEGQKVSFTIESGAKGPAAGNVT-SL M---LEGKVKWFNSEKGFGFIEVE-GQDDVFVHFSAIQGEG----FKTLEEGQAVSFEIVEGNRGPQAANVTKEA MA---TGTVKWFNAEKGFGFIAQDGGGPDVFVHYSAINATG----FRSLEENQVVNFDVTHG-EGPQAENVSP-A

Page 66: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 55

4.2.3. Giải thuật 1B(Giải thuật cải tiến gom nhóm nhỏ nhất) Nội dung của giải thuật như sau:

Hình 4.7 Lưu đồ thuật giải 1B

Chúng ta xét lại ví dụ đã trình bày ở giải thuật 1A

Sau khi tìm được chu trình CT là lời giải của bài toán TSP, chúng ta sẽ thực hiện

việc gom nhóm và align các sequence trên chu trình CT. Chúng ta có 5 cặp phần tử

trên chu trình (1,0),(0,2),(2,4),(3,4),(1,3). Trong 5 cặp này cặp (1,0) có khoảng cách

nhỏ nhất. Thực hiện align 2 sequence: 1 với 0. Gom chúng thành 1 đỉnh trên chu trình,

xoá bỏ cạnh nối giữa 2 đỉnh 1 và 0, kết quả align giữa sequence 1, 0 sẽ đại diện cho

đỉnh này trên chu trình.

0

2

3

1

4

67

15

38

24

1

Tính toán ma trận khoảng cách

Tìm lời giải CT của bài toán TSP

Thực hiện align dựa vào gom nhóm trên C ưu tiên khoảng cách nhỏ nhất

Kết thúc

+

- CT Còn 1 đỉnh

Page 67: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 56

Lúc này trên chu trình còn 4 phần tử, tiếp tục thực hiện việc gom nhóm và align

với 2 đỉnh (2,4)

Gom nhóm và align 2 phần tử (3,(0,1)) trên chu trình

Gom nhóm và align 2 phần tử (0,1,3) với (2,4) đồng thời kết thúc giải thuật.

Cây mô tả quá trình align của giải thuật:

2

3

0,1

4

67

15

38

24

3

0,1

2, 4

67

38

24

0,1,3

2, 467

38

0,1,3,2,4

0 1 3 2 4

Page 68: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 57

Trong cả 2 giải thuật 1A và 1B quá trình align giữa các nhóm sequence đều sử

dụng giải thuật Feng-Doolittle để thực hiện phép align. Giải thuật Feng-Doolittle trong

chương trình được xây dựng dựa trên giải thuật tìm PSA được trình bày ở mục 4.1.

Giải thuật 1B thể hiện sự tự nhiên hơn so với giải thuật 1A. Xét trên quan điểm

ưu tiên align các nhóm sequence có khoảng cách nhỏ hơn, thì giải thuật 1B cho ta một

giải pháp tốt hơn 1A, giải thuật này sẽ hạn chế việc sớm sinh ra các gap hơn so với

giải thuật 1 A.

4.3. Giải thuật di truyền và bài toán TSP. Luận văn sử dụng giải thuật di truyền(Genetic Algorithm-GA) để tìm lời giải cho

bài toán TSP. Trong phần này xin được giới thiệu sơ lược lý thuyết về giải thuật di

truyền, cũng như áp dụng giải thuật di truyền để giải quyết bài toán TSP.

4.3.1. Đặc điểm giải thuật di truyền Trong thuật giải di truyền, các cá thể mới liên tục được sinh ra trong quá trình

tiến hoá nhờ sự lai ghép ở thế hệ cha-mẹ. Một cá thể mới có thể mang những tính trạng

của cha-mẹ (di truyền), cũng có thể mang những tính trạng hoàn toàn mới(đột biến).

Di truyền và đột biến là hai cơ chế có vai trò quan trọng như nhau trong tiến trình tiến

hoá, dù rằng đột biến xảy ra với xác xuất nhỏ hơn rất nhiều so với hiện tượng di

truyền. Các thuật toán tiến hoá, tuy có những điểm khác biệt, nhưng đều mô phỏng

bốn quá trình cơ bản: Lai ghép, đột biến, sinh sản và chọn lọc tự nhiên.

Như vậy, quá trình tiến hoá càng lâu thì càng có điều kiện cho các cá thể tốt được

sinh ra.

Quá trình lai ghép (phép lai)

Phép lai là quá trình hình thành nhiễm sắc thể(NST) mới trên cơ sở các nhiễm sắc

thể cha-mẹ, bằng cách ghép một hay nhiều đoạn gen của hai (hay nhiều) nhiễm sắc thể

cha-mẹ với nhau. Một phép lai với xác suất Pc có thể mô phỏng như sau:

Chọn ngẫu nhiên hai (hay nhiều) cá thể bất kì trong quần thể. Giả sử các nhiễm

sắc thể của cha-mẹ đều có k gen.

Tạo một số ngẫu nhiên trong khoảng từ 1 đến k - 1 (ta gọi là điểm lai hoặc điểm

cắt). Điểm cắt chia mỗi chuỗi cha-mẹ gồm k gene thành hai chuỗi con có m1 và m2

Page 69: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 58

phần tử, m1+m2=k. Gọi 2 chuỗi con của cha là m11, m12 và của mẹ là m21 m22. Hai chuỗi

nhiễm sắc thể con mới sẽ là m11 + m22 và m21 + m12.

Đưa hai cá thể mới này vào quần thể để tham gia các quá trình tiến hoá tiếp theo.

Quá trình đột biến (phép đột biến )

Đột biến là hiện tượng cá thể con mang một (số) tính trạng không có trong mã di

truyền của cha-mẹ. Phép đột biến xảy ra với xác suất Pm nhỏ hơn rất nhiều so với xác

suất lai PC. Một phép đột biến có thể mô phỏng như sau:

Chọn ngẫu nhiên một cá thể cha-mẹ bất kì trong quần thể.

Tạo một số ngẫu nhiên r trong khoảng từ 1 đến k(1 r k≤ ≤ ).

Thay đổi gen thứ r và trả cá thể này về quần thể để tham gia quá trình tiến hoá

tiếp theo.

Quá trình sinh sản và chọn lọc (phép tái sinh và phép chọn)

Phép tái sinh là quá trình trong đó các cá thể được sao chép trên cơ sở độ thích

nghi của nó. Còn phép chọn là quá trình loại bỏ các cá thể xấu trong quần thể chỉ giữ

lại trong quần thể các cá thể tốt. Phép chọn có thể được mô phỏng như sau:

Sắp xếp quần thể theo thứ tự độ tốt giảm dần.

Loại bỏ các cá thể cuối dãy để chỉ giữ lại p cá thể tốt nhất, ở đây ta giả sử quần

thể có kích thước cố định p.

Một thuật giải di truyền gồm các thành phần sau:

Một cấu trúc dữ liệu I biểu diễn không gian lời giải của bài toán.

Phương pháp khởi tạo quần thể ban đầu P(0).

Hàm định nghĩa độ thích nghi (fitness function) đóng vai trò môi trường.

Các phép toán di truyền như đã mô phỏng ở trên.

Và các tham số thuật giải di truyền sử dụng (kích thước quần thể, xác suất lai, đột

biến v.v...)

parent 1 : 1 1 0 | 0 0 1 parent 2 : 0 1 0 | 1 1 1 offspring 1 : 1 1 0 1 1 1 offspring 2 : 0 1 0 0 0 1

Page 70: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 59

4.3.2. Cấu trúc thuật giải di truyền tổng quát Bắt đầu t=0; Khởi tạo quần thể P(t); Tính độ thích nghi cho các cá thể thuộc P(t); while (điều kiện dừng chưa thoả) {

t = t+1; Tái sinh P’(t) từ P(t-1); Lai Q(t) từ P’(t); Đột biến R(t) từ P’(t); Chọn lọc P(t) từ ( 1) ( ) ( ) ( )− ∪ ∪ ∪P t Q t R t P' t ;

} Kết thúc.

Ý tưởng của việc sử dụng giải thuật GA cho bài toán TSP:

Chúng ta xây dựng một quần thể các lời giải của bài toán TSP. Quần thể có m cá

thể với m là tham số do người dùng điều chỉnh. Mỗi nhiễm sắc thể sẽ có k gene, mỗi

gene đại diện cho 1 đỉnh. Hàm fitness chính là chiều dài của quãng đường ứng với

nhiễm sắc thể. Quãng đường ứng với nhiễm sắc thể càng ngắn hàm thích nghi càng tốt.

Chúng ta sẽ xây dựng các hàm lai ghép, đột biến, và chọn lọc cho giải thuật.

Ví dụ:

Phép lai ghép sử dụng phép lai ghép theo giải thuật PMX(Partially-Mapped

Crossover). Nội dung phép lai ghép này như sau: Sử dụng 2 điểm cắt trên nhiễm sắc

thể của cả cha-mẹ. Để tạo một nhiễm sắc thể mới(con), phần chuỗi nằm giữa 2 điểm

cắt của nhiễm sắc thể thứ nhất cha(mẹ) sẽ được thay thế cho phần chuỗi nằm giữa 2

điểm cắt của nhiễm sắc thể còn lại. So sánh sự thay đổi gene trong phần giữa 2 điểm

cắt của nhiễm sắc thể thứ hai với nhiễm sắc thể mới tạo, thực hiện sự thay đổi các

phần tử bên ngoài vùng giữa 2 điểm cắt của nhiễm sắc thể con, dựa trên sự thay đổi

này. Điều này đảm bảo cho không có sự lặp lại của các gene trong nhiễm sắc thể mới.

Tương tự đổi vai trò của nhiễm sắc thể cha mẹ với nhau ta sẽ tạo được thêm 1 con

mới.

Xét ví dụ 2 nhiễm sắc thể cha 1 2 5 6 4 3 8 7 và mẹ 1 4 2 3 6 5 7 8 . Xét 2 điểm

cắt tại vị trí 3,6. Quá trình tạo ra 1 nhiễm sắc thể mới(con) như sau. Thay thế chuỗi

nằm giữa 2 điểm cắt của mẹ là 2 3 6 bằng chuỗi nằm giữa 2 điểm cắt của cha 5 6 4 lúc

Nhiễm sắc thể cho bài toán TSP 9 đỉnh

[9 3 4 0 1 2 5 7 6 8]

Page 71: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 60

này nhiễm sắc thể con là 1 4 5 6 4 5 7 8. Như vậy 5, 4 xuất hiện 2 lần trong nhiễm sắc

thể con. So sánh phần nằm giữa 2 điểm cắt của nhiễm sắc thể con và nhiễm sắc thể mẹ

ta thấy gene 5 được thay bằng 2, gene 4 được thay bằng 6, nhưng vì 6 có trong phần

giữa 2 điểm cắt nên 4 được thay bằng 3. Thực hiện sự thay đổi này với phần nằm

ngoài 2 điểm cắt ta được nhiễm sắc thể con mới: 1 3 5 6 4 2 7 8 . Chúng ta có một ví

dụ minh họa cho phép Crossover của giải thuật.

Phép đột biến: phép đột biến được thực hiện bằng cách đổi chỗ một cách ngẫu

nhiên 2 gene bất kỳ trong 1 nhiễm sắc thể, sao cho nhiễm sắc thể mới thu được có

chiều dài của con đường tương ứng ngắn hơn so với nhiễm sắc thể ban đầu.

Ví dụ minh họa cho phép đột biến của giải thuật:

Phép chọn lọc: Chọn lọc các cá thể có hàm thích nghi tốt nhất.

4.4. Phần hiện thực giải thuật và chương trình: Chương trình tính MSA(MSAPR) được viết bằng VC++8(2005) trên nền IDE

Visual Studio 2005. Chương trình chạy trên nền hệ điều hành Microsoft Windows XP,

cung cấp giao diện đồ hoạ cho phép người dùng tương tác một cách dễ dàng.

Chương trình tính MSA hiện thực cả 2 giải thuật 1A, 1B. Người sử dụng có thể

lựa chọn 1 trong 2 giải thuật này.

Dựa trên các ý tưởng đã được phân tích trong phần giải thuật. Cấu trúc chương

trình chương trình hiện thực bài toán MSA gồm có 3 phần:

Module giải quyết bài toán PSA

Module giải quyết bài toán TSP

Trước [0 1 2 3 4 5 6]

Sau phép đột biến [0 1 3 2 4 5 6]

parent 1 : 1 2 | 5 6 4 | 3 8 7 parent 2 : 1 4 | 2 3 6 | 5 7 8 ________________________________ offspring (step 1) : 1 4 5 6 4 5 7 8 (step 2) : 1 3 5 6 4 2 7 8

Page 72: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 61

Module hiện thực giải thuật 1B.

Hình 4.8 Cấu trúc chương trình hiện thực

PSA Module: hiện thực giải thuật “Chia để trị” kết hợp với việc sử dụng 3 ma

trận BLOSUM để giải quyết bài toán PSA.

Hình 4.9 Module PSA

MSA Module :Hiện thực giải thuật tính MSA. Bao gồm các khối chức năng:

Khối chức năng tính toán ma trận khoảng cách dựa trên việc sử dụng

module PSA.

Khối chức năng tìm thứ tự align các sequence dựa trên ma trận khoảng

cách và Module TSP.

Khối chức năng thực hiện giải thuật Feng-Doolittle, align 2 nhóm

sequence.

Input

MSA Module

PSA Module

TSP Module

Output

PSA Module

Kết quả hàm đánh giá 2 sequence

Kết quả alignment 2 sequence

Sequence 1

Sequence 2

Đầu raĐầu vào

Giải thuật Chia để trị kết hợp quy hoạch động

Các ma trận BLOSUM

Page 73: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 62

Khối chức năng thực hiện giải thuật align bao gồm việc gom nhóm, thực

hiện giải thuật align theo thứ tự từ lời giải bài toán TSP, lưu trữ các nhóm

sequence đã được align.

Hình 4.10 Sơ đồ các khối chức năng của Module MSA.

TSP Module: Module hiện thực giải thuật giải quyết bài toán TSP. Trên cơ sở

thư viện hàm GALib[12] được phát triển bởi MIT(Massachusetts Institute of

Technology), chương trình tích hợp và thừa kế thư viện GALib đồng thời hiện thực

một giải thuật di truyền cho bài toán TSP. GALib là một thư viện hàm mở, được viết

bằng C++, cung cấp các phương thức hỗ trợ người dùng xây dựng một giải thuật di

truyền(GA) để phát triển các ứng dụng .

Mặc dù là bài toán NP, tuy nhiên hiện tại bài toán TSP đã được giải quyết rất tốt

với số đỉnh nhỏ hơn 10000.Về phương pháp giải quyết bài toán TSP, có khá nhiều

phương pháp, phương pháp tiếp cận theo nhánh và cận(branch and bound) kết hợp

một số kỹ thuật heuristic được sử dụng phổ biến nhất và cho kết quả nhanh nhất. Sử

dụng giải thuật GA cho bài toán TSP là một giải pháp không thật sự tối ưu, tuy nhiên

giải thuật là chấp nhận được về mặt thời gian cũng như không gian nhớ khi số đỉnh

nhỏ hơn 500. Do phạm vi của luận văn nên phần giải quyết bài toán TSP chỉ giới hạn

trong việc áp dụng giải thuật GA.

Input (k sequence)

Ma trận khoảng cách

Lời giải TSP

Feng-Doolittle Algorithm Module

PSA Module

TSP Module

Module gom nhóm, align

Kết quả MSA

Page 74: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 63

Hình 4.11 Sơ đồ các khối chức năng của module TSP.

Ngoài 3 module chính còn 2 module nhập xuất thực hiện việc xử lý dữ liệu đầu

vào cũng như xuất kết quả của giải thuật.

Input/Output.

Dữ liệu đầu vào của chương trình tuân theo chuẩn định dạng FASTA(NCBI)[21].

Chuẩn định dạng FASTA được sử dụng phổ biến trong hầu hết các chương trình tìm

MSA.

Chuẩn định dạng này lưu trữ các sequence theo cấu trúc: tên, mô tả và nội dung

của sequence. Mỗi ký tự “>” biểu hiện cho sự khai báo một sequence trong file. Nội

dung của sequence không chứa ký tự khoảng trắng.

Định dạng:

Bảng 4.1 Định dạng của file dữ liệu đầu vào

Dữ liệu đầu ra của chương trình được biểu diễn theo từng phần của toàn bộ MSA.

Định dạng của file kết quả có dạng như sau.

Giải thuật GA cho TSP Chu trình qua các

đỉnh

Ma trận khoảng cách

Số đỉnh GALib

>Tênsequence Mô tả Nội dung >Tênsequence Mô tả Nội dung . . . .

>Sequence1 cbfx_mouse VLGTVKWFNVRNGYGFINRNDTKEDVFVHQTAIKKNNPRKYLRSVGDGETVEFDVVEGEKGAEAANVTGP >Sequence2 grp2_nicsy KGTVKWFSDQKGFGFITPDDGGEDLFVHQSGIRSEGFRSLAEGETVEFEVESGGDGRTKAVDVTGP

Page 75: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 64

Bảng 4.2 Định dạng của file dữ liệu đầu ra.

Ngoài ra chương trình còn cho phép lưu trữ kết quả theo chuẩn định dạng MSF, để phục vụ cho quá trình so sánh thống kê kết quả khi kiểm thử trên tập BAliBASE benchmark, phần này sẽ được đề cập chi tiết trong Chương 5. Chuẩn định dạng MSF có dạng như sau:

Bảng 4.3 Định dạng file dữ liệu đầu ra theo chuẩn MSF

Result MSA: Tên sequence Nội dung của sequence trong MSA Tên sequence Nội dung của sequence trong MSA … Tên sequence Nội dung của sequence trong MSA

Result MSA:

grp2_nicsy -----KGTVKWFSDQKGFGFITPDDGGEDLFVHQSGIRSEG----FRSLA

cbfx_mouse ----VLGTVKWFNVRNGYGFINRNDTKEDVFVHQTAIKKNNPRKYLRSVG *************************************************************

grp2_nicsy EGETVEFEVESGGDGRTKAVDVTGP-

cbfx_mouse DGETVEFDVVEGEKG-AEAANVTGP-

PileUp MSF: l (chiều dài MSA) Type: P hay N (cho biết là các sequence đang xét là protein hay nucleotide) Name: Tên của sequence oo Len: chiều dài sequence trong MSA … Name: Tên của sequence oo Len: chiều dài sequence trong MSA // (2 ký tự này cho biết kết thúc phần header của file) Tên sequence Nội dung của sequence trong MSA(Các ký hiệu ‘-‘ được thay bằng ‘.’) Tên sequence Nội dung của sequence trong MSA

PileUp MSF: 82 Type: P Name: hmgl_trybr oo Len: 82 Name: hmgt_mouse oo Len: 82 Name: hmgb_chite oo Len: 82 // hmgl_trybr .KKDSNAPKR AMTSFMFFSS ....DFRSKH SDLSI.VEMS KAAGAAWKEL hmgt_mouse ......KPKR PRSAYNIYVS ESFQEAKDDS AQGKL..... KLVNEAWKNL hmgb_chite ....ADKPKR PLSAYMLWLN SARESIKREN PDFKV.TEVA KKGGELWRGL hmgl_trybr GPEERKVYEE MAEKDKERYK REM....... .. hmgt_mouse SPEEKQAYIQ LAKDDRIRYD NEMKSWEEQM AE hmgb_chite ..KDKSEWEA KAATAKQNYI RALQEYERNG G.

Page 76: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 65

Bảng tóm tắt các lớp được xây dựng của chương trình: Lớp Chức năng

MultipleAlignmentAlgorithm Hiện thực chức năng module MSA: Feng-

Doolittle, tạo ma trận khoảng cách, thực

hiện giải thuật align MSA

LinearSapceAlgorithm Hiện thực giải thuật PSA theo kỹ thuật chia

để trị sử dụng 3 ma trận BLOSUM

Sequence Lưu trữ Sequence

GATSP Hiện thực giải thuật di truyền cho bài toán

TSP dựa trên thư viện hàm GALib

AlignSequenceProfile Lưu trữ các nhóm sequence đã được align

InitValue Khởi tạo các thông số cho giải thuật PSA

MatrixPenalty Đối tượng lưu trữ ma trận đánh giá, các

tham số về gap

StoreOPDBPF Lưu trữ thông tin cho phép tìm lại con

đuờng của giải thuật PSA

TSPResultObject Lưu trữ kết quả lời giải TSP

Bảng 4.4 Bảng tóm tắt các lớp của chương trình.

Ngoài ra chương trình còn 1 số lớp phụ khác phục vụ cho quá trình xây dựng

giao diện, hỗ trợ cấu trúc dữ liệu cho việc thực thi các thuật giải…

Page 77: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 66

Chương 5. KẾT QUẢ NHẬN XÉT

Chương này giới thiệu một số kết quả của chương trình. Thực hiện việc kiểm thử

chương trình trên BAliBASE benchmark, so sánh kết quả với một số chương trình

đang được sử dụng phổ biến trên thế giới.

Các kết quả của MSAPR trong phần này thu được khi chạy trên máy PC cấu hình 512MB RAM, CPU Intel 4 2.4 GHz, sử dụng hệ điều hành Microsoft Windows XP. 5.1. Một số kết quả chạy chương trình.

Ví dụ kiểm thử kết quả chương trình trên tập TAT protein của HIV1(Human Immunodeficiency Virus 1):

Bảng 5.1 TAT Protein HIV1

>1 MDPVDPNLESWNHPGSQPRTACNKCHCKKCCYHC >2 MDPVDPNLEPWNHPGSQPRTPCNKCHCKKCCYHC >9 MEPVDPRLEPWKHPGSQPKTACNNCYCKKCCYHC >16 MEPVDPRLEPWKHPGSQPKTASNNCYCKRCCLHC >20 MEPVDPRLEPWKHPGSQPKTACTNCYCKKCCFHC >22 MEPVDPRLEPWKHPGSQPKTACTTCYCKKCCFHC >21 MDPVDPRLEPWKHPGSQPKAACTSCYCKKCCFHC >23 MEPVDPSLEPWKHPGSQPKTACTNCYCKKCCLHC >18 MEPVDPNLEPWKHPGSQPRTACNNCYCKKCCFHC >19 MEPVDPNLEPWKHPGSQPRTACNNCYCKKCCFHC >8 MEPVDPNLEPWKHPGSQPRTACTNCYCKKCCFHC >15 MEPVDPRLEPWKHPGSQPKTACTNCYCKKCCFHC >14 MEPVDPRLEPWKHPGSQPKTACTNCYCKKCCFHC >13 MEPVDPRLEPWKHPGSQPKTACTNCYCKKCCFHC >12 MEPVDPRLEPWKHPGSQPKTACTNCYCKKCCFHC >11 MEPVDPRLEPWKHPGSQPKTACTNCYCKKCCFHC >10 MEPVDPRLEPWKHPGSQPKTACTTCYCKKCCFHC >17 METHLKAPESSLESYNEPSSCTSEQGVTAQELAKQGEELLSQLHRPLEACTNSCYCKQCSFHC >7 MEPVDPNLEPWKHPGSQPTTACSNCYCKVCCWHC >6 MDPIDPDLEPWKHPGSQPRTVCNNCYCKACCYHC >24 MDPVDPNIEPWNHPGSQPKTACNRCHCKKCCYHC >5 MDPVDPNIEPWNHPGSQPKTACNRCHCKKCCYHC >4 MDPVDPNLEPWNHPGSQPKTACNRCHCKKCCYHC >3 MDPVDPNLEPWNHPGSQPRTPCNKCYCKKCCYHC

Page 78: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 67

Trong đó: 1,..,24 lần lượt là 24 protein của TAT :

1 -> P18804 2 -> P04611 3 -> P04613 4 -> P04609 5 -> P12506 6 -> P17285 7 -> P24738 8 -> P19552 9 -> P05908 10 -> P04610 11 -> P04607 12 -> P04606 13 -> P04326 14 -> P04608 15 -> P05907 16 -> P20893 17 -> P18044 18 -> P35965 19 -> P04614 20 -> P19553 21 -> P05906 22 -> P05905 23 -> P20879 24 -> PDB1tiv

Bảng 5.2 Kết quả Alignment của MSAPR và CLUSTALW với TAT HIV1

Result of MSA: 6 MDP----IDPDLEPWKHPGS------------------------QPRTVCNN-CYCKACCYHC 3 MDP----VDPNLEPWNHPGS------------------------QPRTPCNK-CYCKKCCYHC 2 MDP----VDPNLEPWNHPGS------------------------QPRTPCNK-CHCKKCCYHC 1 MDP----VDPNLESWNHPGS------------------------QPRTACNK-CHCKKCCYHC 24 MDP----VDPNIEPWNHPGS------------------------QPKTACNR-CHCKKCCYHC 5 MDP----VDPNIEPWNHPGS------------------------QPKTACNR-CHCKKCCYHC 4 MDP----VDPNLEPWNHPGS------------------------QPKTACNR-CHCKKCCYHC 19 MEP----VDPNLEPWKHPGS------------------------QPRTACNN-CYCKKCCFHC 18 MEP----VDPNLEPWKHPGS------------------------QPRTACNN-CYCKKCCFHC 8 MEP----VDPNLEPWKHPGS------------------------QPRTACTN-CYCKKCCFHC 7 MEP----VDPNLEPWKHPGS------------------------QPTTACSN-CYCKVCCWHC 23 MEP----VDPSLEPWKHPGS------------------------QPKTACTN-CYCKKCCLHC 16 MEP----VDPRLEPWKHPGS------------------------QPKTASNN-CYCKRCCLHC 9 MEP----VDPRLEPWKHPGS------------------------QPKTACNN-CYCKKCCYHC 12 MEP----VDPRLEPWKHPGS------------------------QPKTACTN-CYCKKCCFHC 14 MEP----VDPRLEPWKHPGS------------------------QPKTACTN-CYCKKCCFHC 20 MEP----VDPRLEPWKHPGS------------------------QPKTACTN-CYCKKCCFHC 11 MEP----VDPRLEPWKHPGS------------------------QPKTACTN-CYCKKCCFHC 15 MEP----VDPRLEPWKHPGS------------------------QPKTACTN-CYCKKCCFHC 13 MEP----VDPRLEPWKHPGS------------------------QPKTACTN-CYCKKCCFHC 10 MEP----VDPRLEPWKHPGS------------------------QPKTACTT-CYCKKCCFHC 22 MEP----VDPRLEPWKHPGS------------------------QPKTACTT-CYCKKCCFHC 21 MDP----VDPRLEPWKHPGS------------------------QPKAACTS-CYCKKCCFHC 17 METHLKAPESSLESYNEPSSCTSEQGVTAQELAKQGEELLSQLHRPLEACTNSCYCKQCSFHC

1 ----MDPVDPNLESWNHP-----------------GS-------QPRTACNK-CHCKKCCYHC 2 ----MDPVDPNLEPWNHP-----------------GS-------QPRTPCNK-CHCKKCCYHC 9 ----MEPVDPRLEPWKHP-----------------GS-------QPKTACNN-CYCKKCCYHC 16 ----MEPVDPRLEPWKHP-----------------GS-------QPKTASNN-CYCKRCCLHC 20 ----MEPVDPRLEPWKHP-----------------GS-------QPKTACTN-CYCKKCCFHC 22 ----MEPVDPRLEPWKHP-----------------GS-------QPKTACTT-CYCKKCCFHC 21 ----MDPVDPRLEPWKHP-----------------GS-------QPKAACTS-CYCKKCCFHC 23 ----MEPVDPSLEPWKHP-----------------GS-------QPKTACTN-CYCKKCCLHC 18 ----MEPVDPNLEPWKHP-----------------GS-------QPRTACNN-CYCKKCCFHC 19 ----MEPVDPNLEPWKHP-----------------GS-------QPRTACNN-CYCKKCCFHC 8 ----MEPVDPNLEPWKHP-----------------GS-------QPRTACTN-CYCKKCCFHC 15 ----MEPVDPRLEPWKHP-----------------GS-------QPKTACTN-CYCKKCCFHC 14 ----MEPVDPRLEPWKHP-----------------GS-------QPKTACTN-CYCKKCCFHC 13 ----MEPVDPRLEPWKHP-----------------GS-------QPKTACTN-CYCKKCCFHC 12 ----MEPVDPRLEPWKHP-----------------GS-------QPKTACTN-CYCKKCCFHC 11 ----MEPVDPRLEPWKHP-----------------GS-------QPKTACTN-CYCKKCCFHC 10 ----MEPVDPRLEPWKHP-----------------GS-------QPKTACTT-CYCKKCCFHC 17 METHLKAPESSLESYNEPSSCTSEQGVTAQELAKQGEELLSQLHRPLEACTNSCYCKQCSFHC 7 ----MEPVDPNLEPWKHP-----------------GS-------QPTTACSN-CYCKVCCWHC 6 ----MDPIDPDLEPWKHP-----------------GS-------QPRTVCNN-CYCKACCYHC 24 ----MDPVDPNIEPWNHP-----------------GS-------QPKTACNR-CHCKKCCYHC 5 ----MDPVDPNIEPWNHP-----------------GS-------QPKTACNR-CHCKKCCYHC 4 ----MDPVDPNLEPWNHP-----------------GS-------QPKTACNR-CHCKKCCYHC 3 ----MDPVDPNLEPWNHP-----------------GS-------QPRTPCNK-CYCKKCCYHC

Kết quả MSA với tập HIV1 của MSAPR

Kết quả MSA với tập HIV1 của CLUSTALW

Page 79: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 68

Thời gian chạy đối với việc tìm MSA của TAT HIV1 là 15s, của CLUSTALW là

12s. Thử nghiệm trên một số tập protein thực khác, và so sánh với kết quả của

CLUSTALW, chương trình cho kết quả chạy tốt. Khi số sequence lớn và chiều dài

trung bình của các sequence lớn hơn 500, thời gian chạy của chương trình cao hơn so

với CLUSTALW. Vấn đề so sánh thời gian chạy và không gian bộ nhớ sử dụng sẽ

được đề cập chi tiết trong phần sau.

Phần tiếp theo sẽ thực hiện việc so sánh kết quả của MSAPR với một số chương

trình, trên cùng một tập dữ liệu đầu vào BAliBASE.

5.2. BAliBASE (Benchmark Alignment Database) BAliBASE[3] là một tập dữ liệu các MSA của các protein được giới thiệu bởi

Thompson(1999). Các MSA trong BAliBASE được xây dựng dựa trên cấu trúc bậc 3

(cấu trúc của các protein trong không gian 3 chiều) quan sát được của các protein. Từ

cấu trúc bậc 3, các protein được chuyển đổi về cấu trúc bậc 2, từ đó tạo nên các MSA

trong BAliBASE. Đây là một benchmark chuẩn, thường được dùng để kiểm thử các

chương trình tìm lời giải của bài toán MSA. Phiên bản được sử dụng trong đề tài

BAliBASE 2.01.

BAliBASE 2.01 bao gồm 220 MSA, với khoảng 1000 sequence. Các protein

trong MSA là các protein thật sự trong thực tế. Các MSA trong BAliBASE chia làm 8

nhóm. Mỗi nhóm này giới thiệu một số các trường hợp MSA thường gặp trong thực tế.

Nhóm 1 là các MSA của các sequence có độ dài tương đương nhau, và có nhiều

mức độ tương đồng giữa các sequence.

Nhóm 2 bao gồm các MSA của 1 tập khoảng 15 sequence, có độ giống nhau

quan sát được trong cấu trúc bậc 3 nhỏ hơn 25%.

Nhóm 3 bao gồm 4 nhóm con, các nhóm con này có độ giống nhau ở các vị trí

của các sequence giữa các nhóm nhỏ hơn 25%.

Nhóm 4 và nhóm 5 chứa các alignment có từ 20 sequence trở lên bao gồm các

N/C terminal extension và các insertions.

Nhóm 6 gồm các MSA được hình thành từ các sequence có sự lặp lại của các

đoạn con.

Nhóm 7 gồm các MSA được hình thành từ các transmembrane protein sequence.

Page 80: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 69

Nhóm 8 bao gồm các MSA được hình thành từ các protein có sự đột biến theo

dạng vòng(Đột biến vòng được định nghĩa: Xét 1 protein ABCDEFGH, đột biến vòng

có thể có dạng như sau ABCDEFGH, BCDEFGHA, CDEFGHAB ,DEFGHABC,

EFGHABCD).

BAliBASE sử dụng 2 định dạng file để cho phép người dùng có thể kiểm nghiệm

kết quả của các chương trình trên tập dữ liệu này. Các file .tfa lưu trữ các sequence(tạo

nên mỗi MSA tương ứng trong BAliBASE) theo chuẩn FASTA. Các file .msf lưu trữ

các MSA theo chuẩn MSF.

Việc so sánh kết quả MSA của BAliBASE với các kết quả MSA khác(được tạo

ra bởi cùng 1 tập sequence đầu vào) sẽ được thực hiện thông qua chương trình

bali_score (Thompson) [4].

Chương trình này sẽ cho biết MSA được đưa vào sẽ có độ chính xác bao nhiêu so

với MSA của BAliBASE. Gọi độ chính xác là Δ . Tiêu chí đánh giá độ chính xác của

MSA thường căn cứ vào Δ .

Một số tính chất của Δ :

[0,1]Δ ∈ .

1Δ = có sự giống nhau hoàn toàn giữa 2 MSA.

0Δ = , 2 MSA có sự khác biệt hoàn toàn.

1Δ → độ chính xác cao.

0Δ → độ khác biệt cao.

Chương trình MSAPR cho kết quả chạy khá tốt trên BAliBASE benchmark.

5.3. So sánh kết quả Để kiểm định kết quả của MSAPR, đề tài sử dụng các file .tfa của BAliBASE,

thực hiện việc tính toán đồng thời kết quả của cả MSAPR và CLUSTALW. Ngoài ra

để cung cấp một cái nhìn toàn diện hơn, chương trình có sử dụng lại các kết quả tính

toán của Thompson [29] với 7 chương trình khác để thực hiện việc so sánh. Các

chương trình này bao gồm: SAGA, DIALIGN, SB_PIMA, ML_PIMA, MULTALIGN,

PILEUP 8, MULTAL, HMMT.

Chi tiết về các chương trình và các kết quả này có thể tham khảo tại trang web

Bioinformatics Platform of Strasbourg [5].

Page 81: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 70

5.3.1. Giới thiệu về các chương trình được sử dụng CLUSTALW: là một chương trình mã nguồn mở được phát triển bởi Gibson T.

(European Molecular Biology Laboratory-EMBL), Thompson J. (National Scientific

Research Centre- CNRS (France)), Higgins D. (University College Dublin(UCD) -

National University of Ireland, Dublin). CLUSTALW hiện thực bằng C và sử dụng

Progressive Algorithm. Đây là chương trình cho kết quả ổn định và tốt nhất trong các

chương trình phát triển theo hướng Progressive Algorithm. Phiên bản được sử dụng

tính toán trong đề tài là CLUSTALW 1.83.

CLUSTALX: là một phiên bản giao diện đồ họa của CLUSTALW. Phiên bản

được sử dụng trong đề tài là CLUSTALX 1.83.

SAGA được phát triển bởi Cédric Notredame* and Desmond G. Higgins

(European Bioinformatics Institute ) sử dụng giải thuật di truyền để tìm lời giải MSA.

DIALIGN được phát triển bởi Burkhard Morgenstern(University of Göttingen),

DIALIGN sử dụng Progressive Algorithm.(không áp dụng gap penalty).

ML_PIMA, SB_PIMA được phát triển bởi Smith, R.F và Smith,T.F. Sử dụng

Progressive Algorithm.

MULTALIGN: được phát triển bởi Barton G.J. và Sternberg(Laboratory of

Molecular Biology Department of Crystallography Birkbeck College, London).

MULTALIGN sử dụng mô hình Progressive Algorithm để tìm lời giải MSA.

PILEUP 8 được phát triển bởi Genetic Computer Group(GCG) áp dụng

Progressive Algorithm để tìm lời giải MSA.

MULTAL được phát triển bởi Taylor, sử dụng Progressive Algorithm để hiện

thực.

HMMT được phát triển bởi Sean R. Eddy(Washington University School, MRC-

Laboratory of Molecular Biology in Cambridge), sử dụng mô hình Markov ẩn để tìm

lời giải MSA.

5.3.2. So sánh độ chính xác của kết quả Trong phần này sẽ trình bày các kết quả thu được khi chạy MSAPR, và

CLUSTALW trên tập 5 nhóm dữ liệu của BAliBASE, và liệt kê thêm các kết quả khác

của 7 chương trình nêu ở trên dựa trên một nghiên cứu của Thompson. Chúng ta sẽ xét

kết quả của các chương trình khi sử dụng từng nhóm dữ liệu MSA của BAliBASE.

Page 82: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 71

Nhóm 1. Dựa vào chiều dài của các MSA, BAliBASE chia Nhóm 1 làm 3 tập con:

Tập MSA có chiều dài nhỏ(từ 50-200 phần tử)

Tập MSA có chiều dài trung bình (từ 200-400 phần tử)

Tập MSA có chiều dài lớn( từ 500 phần tử trở lên)

Căn cứ vào độ giống nhau I của các sequence tạo nên các MSA, trong mỗi tập

con lại chia thành 3 hình thức, Các MSA thỏa mãn I 0.25< . Các MSA có I thỏa

0.2 I 0.4≤ ≤ và các MSA có I thỏa I 0.35≤ .

Ba bảng 5.3, 5.4, 5.5 liệt kê độ chính xác của các chương trình khi sử dụng dữ

liệu nhóm 1, (có độ giống nhau của các sequence I thỏa mãn I 0.25< ). Cột đầu tiên là

tên của các sequence thuộc nhóm 1(I<0.25). Các cột tiếp theo lần lượt là độ chính xác

của các chương trình so với kết quả MSA của BAliBASE.

Kết quả chạy chương trình với tập MSA có chiều dài nhỏ(gồm 7 tập sequence).

Tên MSA PR

CLUSTALW SAGA DIALIG

N SB_

PIMA ML_

PIMA MULTA

LIGN PILE UP 8

MULTAL HMMT

1aboA 0.581 0.688 0.529 0.359 0.312 0.312 0.703 0.521 0.526 0.181 1idy 0.604 0.548 0.342 0.018 0.145 0.062 0.566 0.080 0.080 0.138 1r69 0.382 0.436 0.550 0.406 0.681 0.366 0.325 0.562 0.225 0.100 1tvxA 0.319 0.216 0.278 0.306 0.344 0.344 0.228 0.344 0.244 0.108 1ubi 0.477 0.595 0.452 0.000 0.370 0.493 0.488 0.428 0.428 0.140 1wit 0.666 0.693 0.899 0.851 0.963 0.444 0.842 0.773 0.763 0.549 2trx 0.548 0.690 0.801 0.728 0.451 0.496 0.500 0.453 0.235 0.292

Bảng 5.3 Kết quả chạy chương trình với Nhóm 1 có chiều dài nhỏ

Kết quả chạy chương trình với tập MSA có chiều dài trung bình(8 tập sequence).

MSA PR

CLUSTALW SAGA DIALIG

N SB_

PIMA ML_PI

MA MULTA

LIGN PILEU

P8 MULTAL HMMT

1bbt3 0.188 0.315 0.652 0.450 0.260 0.260 0.582 0.430 0.160 0.128 1sbp 0.425 0.467 0.543 0.453 0.540 0.456 0.580 0.547 0.537 0.144 1havA 0.260 0.227 0.411 0.130 0.300 0.466 0.419 0.536 0.040 0.133 1uky 0.407 0.517 0.672 0.566 0.684 0.684 0.685 0.571 0.460 0.084 2hsdA 0.529 0.537 0.771 0.679 0.470 0.470 0.470 0.646 0.463 0.117 2pia 0.565 0.601 0.690 0.660 0.740 0.740 0.760 0.850 0.560 0.057 3grs 0.293 0.310 0.689 0.327 0.416 0.416 0.380 0.446 0.347 0.056 kinase 0.615 0.655 0.862 0.764 0.733 0.703 0.643 0.730 0.650 0.277

Bảng 5.4 Kết quả chạy chương trình với Nhóm 1 có chiều dài trung bình

Page 83: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 72

Kết quả chạy chương trình với tập MSA có chiều dài lớn(8 tập sequence).

Bảng 5.5 Kết quả chạy chương trình với Nhóm 1 có chiều dài lớn

00.10.20.30.40.50.60.70.80.9

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

Testcase(Nhóm 1)(I<0.25)

Độ

chín

h xá

c

MSA PRCLUSTALWMULTAL

Độ dài nhỏ Độ dài trung bình Độ dài lớn

Hình 5.1 Đồ thị tương quan về độ chính xác của MSAPR, CLUSTALW và MULTAL

MSA PR

CLUSTALW SAGA DIALI

GN SB_PI

MA ML_PI

MA MULTALIGN

PILEUP8

MULTAL HMMT

1ajsA 0.434 0.371 0.531 0.142 0.486 0.471 0.424 0.556 0.364 0.105 1cpt 0.647 0.696 0.780 0.829 0.792 0.792 0.835 0.865 0.777 0.156 1lvl 0.460 0.394 0.619 0.699 0.559 0.559 0.570 0.587 0.572 0.064 1pamA 0.389 0.433 0.596 0.694 0.513 0.549 0.596 0.641 0.204 0.034 1ped 0.732 0.748 0.748 0.743 0.756 0.756 0.727 0.723 0.730 0.032 2myr 0.448 0.394 0.285 0.284 0.670 0.613 0.422 0.621 0.547 0.050 4enl 0.547 0.562 0.414 0.529 0.701 0.701 0.754 0.669 0.787 0.044 gal4 0.360 0.518 0.500 0.581 0.445 0.445 0.368 0.543 0.406 0.055

Page 84: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 73

Nhóm 2: Bảng 5.6 liệt kê độ chính xác của các chương trình khi thực hiện việc tính toán

MSA với toàn bộ dữ liệu của nhóm 2.

MAS PR

CLUSTALW SAGA DIALI

GN HMMT SB_PIMA

ML_PIMA

MULTALIGN

PILEUP8

1aboA 0.759 0.850 0.489 0.384 0.724 0.391 0.220 0.528 0.000 1idy 0.899 0.949 0.548 0.000 0.353 0.000 0.000 0.401 0.000 1csy 0.626 0.804 0.154 0.000 0.000 0.000 0.000 0.154 0.114 1r69 0.887 0.916 0.475 0.675 0.000 0.675 0.675 0.675 0.450 1tvxA 0.867 0.942 0.448 0.000 0.276 0.241 0.241 0.138 0.345 1tgxA 0.737 0.786 0.773 0.630 0.622 0.678 0.543 0.696 0.318 1ubi 0.756 0.826 0.492 0.000 0.053 0.129 0.129 0.000 0.000 1wit 0.648 0.800 0.694 0.724 0.641 0.469 0.463 0.500 0.476 2trx 0.933 0.950 0.870 0.734 0.739 0.850 0.702 0.870 0.870 1sbp 0.721 0.808 0.374 0.043 0.214 0.043 0.054 0.186 0.177 1havA 0.763 0.839 0.448 0.000 0.194 0.259 0.238 0.500 0.493 1uky 0.815 0.855 0.476 0.216 0.395 0.256 0.306 0.585 0.562 2hsdA 0.796 0.836 0.498 0.262 0.423 0.390 0.561 0.593 0.278 2pia 0.803 0.821 0.763 0.612 0.647 0.730 0.695 0.765 0.766 3grs 0.737 0.803 0.282 0.350 0.141 0.183 0.211 0.192 0.159 kinase 0.827 0.914 0.867 0.692 0.749 0.755 0.651 0.830 0.799 1ajsA 0.870 0.876 0.311 0.000 0.242 0.000 0.000 0.311 0.227 1cpt 0.814 0.847 0.776 0.425 0.388 0.184 0.277 0.777 0.688 1lvl 0.799 0.836 0.726 0.783 0.539 0.620 0.688 0.614 0.678 1pamA 0.798 0.812 0.623 0.576 0.530 0.393 0.386 0.566 0.702 1ped 0.878 0.895 0.835 0.773 0.696 0.651 0.647 0.741 0.749 2myr 0.822 0.895 0.825 0.840 0.443 0.727 0.750 0.894 0.786 4enl 0.844 0.869 0.739 0.122 0.213 0.096 0.092 0.384 0.224

Bảng 5.6 Kết quả chạy của các chương trình với các sequence của nhóm 2.

Page 85: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 74

0

0.2

0.4

0.6

0.8

1

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

Testcase (Nhóm 2)

Độ

chín

h xá

c

MASPRCLUSTALWHMMT

Hình 5.2 Đồ thị tương quan về độ chính xác của MSAPR, CLUSTALW và HMMT

Nhóm 3:

Bảng 5.7 liệt kê độ chính xác của các chương trình khi thực hiện việc tính toán

MSA với toàn bộ dữ liệu nhóm 3

MSAPR

CLUSTALW SAGA DIALI

GN HMMT SB_PIMA

ML_PIMA

MULTALIGN

PILEUP8

1idy 0.506 0.591 0.364 0.000 0.227 0.000 0.000 0.045 0.000 1r69 0.342 0.555 0.524 0.524 0.000 0.000 0.905 0.000 0.000 1ubi 0.345 0.582 0.585 0.000 0.366 0.000 0.000 0.000 0.268 1wit 0.602 0.833 0.484 0.500 0.323 0.645 0.323 0.242 0.210 1uky 0.455 0.527 0.269 0.139 0.037 0.083 0.148 0.241 0.083 kinase 0.679 0.762 0.758 0.650 0.478 0.541 0.682 0.688 0.599 1ajsA 0.336 0.405 0.186 0.000 0.006 0.000 0.000 0.000 0.110 1 pamA 0.764 0.783 0.579 0.683 0.169 0.546 0.590 0.546 0.754 1ped 0.721 0.808 0.646 0.641 0.172 0.450 0.507 0.665 0.722 2myr 0.440 0.636 0.494 0.272 0.101 0.278 0.494 0.253 0.310 4enl 0.762 0.799 0.672 0.050 0.050 0.393 0.438 0.652 0.498

Bảng 5.7 Kết quả chạy của các chương trình với các sequence của nhóm 3.

Page 86: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 75

00.20.40.60.8

1

1 2 3 4 5 6 7 8 9 10 11

Testcase(Nhóm 3)

Độ

chín

h xá

c

MSAPRCLUSTALWHMMT

Hình 5.3 Đồ thị tương quan về độ chính xác của MSAPR, CLUSTALW và HMMT

Nhóm 4:

Bảng 5.8 liệt kê độ chính xác của các chương trình khi thực hiện việc tính toán

MSA với toàn bộ dữ liệu nhóm 4.

MSAPR CLUSTALW SAGA DIALI

GN SB_PI

MA ML_PI

MA MULTA

LIGN PILEU

P8 1dynA 0.313 0.566 0.000 0.600 0.600 0.600 0.000 0.000 1pysA 0.482 0.558 0.250 0.750 1.000 1.000 0.000 0.750 1ckaA 0.436 0.823 0.375 1.000 1.000 0.000 0.000 1.000 1csp 0.358 0.498 0.000 0.889 0.000 0.000 0.000 0.000 1lkl 0.707 0.718 0.000 1.000 1.000 1.000 0.000 1.000 1mfa 0.580 0.500 0.385 1.000 0.846 1.000 0.385 1.000 1ycc 0.783 0.785 0.485 0.727 0.970 0.818 0.485 0.455 2abk 0.470 0.469 0.000 1.000 0.471 0.471 0.000 0.471 kinase1 0.807 0.873 0.000 1.000 1.000 1.000 0.000 1.000

Bảng 5.8 Kết quả chạy của các chương trình với các sequence của nhóm 4

00.20.40.60.8

1

1 2 3 4 5 6 7 8 9

Testcase(Nhóm 4)

Độ

chín

h xá

c

MSAPRCLUSTALWSAGA

Hình 5.4 Đồ thị tương quan về độ chính xác của MSAPR, CLUSTALW, SAGA.

Page 87: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 76

Nhóm 5

Bảng 5.9 liệt kê độ chính xác của các chương trình khi thực hiện việc tính toán

MSA với toàn bộ dữ liệu nhóm 5.

MSAPR CLUSTALW SAGA DIALI

GN SB_PIM

A ML_PI

MA MULTA

LIGN PILEU

P8 1pysA 0.590 0.580 0.429 0.762 0.190 0.762 0.429 0.190 1eft 0.236 0.459 0.000 0.579 0.000 0.000 0.000 0.211 1ivy 0.785 0.818 0.735 1.000 1.000 0.882 0.735 1.000 1qpg 0.839 0.903 0.521 1.000 1.000 1.000 1.000 1.000 1thm1 0.714 0.706 0.765 0.765 0.765 0.412 0.412 0.765 1thm2 0.755 0.852 0.774 1.000 0.194 0.194 0.774 0.645 2cba 0.744 0.769 0.767 1.000 0.533 0.767 0.550 0.600 S51 0.627 0.796 0.831 0.646 0.338 0.631 0.646 0.646 S52 0.857 0.902 1.000 1.000 0.515 0.515 1.000 0.515 kinase1 0.807 0.817 0.484 0.806 0.677 0.677 1.000 0.677 kinase2 0.698 0.812 0.667 0.667 0.556 0.444 0.333 0.689 kinase3 0.609 0.777 0.729 0.812 0.333 0.583 0.646 0.729

Bảng 5.9 Kết quả chạy của các chương trình với các sequence của nhóm 5

00.20.40.60.8

11.2

1 2 3 4 5 6 7 8 9 10 11 12

Testcase(Nhóm 5)

Độ

chín

h xá

c

MSAPRCLUSTALWSAGA

Hình 5.5 Đồ thị tương quan về độ chính xác của MSAPR, CLUSTALW, SAGA

Như vậy thông qua kết quả kiểm thử các chương trình trên 5 nhóm dữ liệu của

BAliBASE, MSAPR cho kết quả chạy ổn định, sự chênh lệch về độ chính xác(với MSA

của BAliBASE) so với CLUSTALW là chấp nhận được. So với các chương trình còn lại

MSAPR cũng cho những kết quả đánh giá khá tốt và khả quan. Chương trình chạy tốt

cho cả tập dữ liệu có độ dài các sequence nhỏ, cũng như với các tập dữ liệu có độ dài

trung bình và lớn.

Page 88: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 77

Phần tiếp theo chúng ta sẽ xem xét về thời gian chạy cũng như vấn đề sử dụng bộ

nhớ.

5.3.3. So sánh về mặt thời gian chạy, bộ nhớ Như đã trình bày ở phần thuật toán, chương trình MSAPR nhắm đến việc tăng độ

chính xác của chương trình, cũng như giảm thiểu bộ nhớ sử dụng nên so sánh về mặt

thời gian MSAPR có thời gian chạy lâu hơn so với CLUSTALW. Khi các sequence có

chiều dài nhỏ(50-100 phần tử), thời gian chạy của CLUSTALW và MSAPR là tương

đương, khi các sequence có chiều dài trung bình thì thời gian chạy giữa MSAPR và

CLUSTALW chênh nhau khoảng 1,5 lần. Khi các sequence có chiều dài lớn, thời gian

chạy có thể chênh lệch từ 3-4 lần.

Hầu hết các MSA trong BAliBASE có ít hơn 50 sequence, do đó thời gian chạy

thường dao động từ 10 giây đến 10 phút, tùy theo chiều dài của các sequence. Khi xét

tập sequence lớn từ 100 đến 500 sequence, thời gian chạy của chương trình dao động

trong khoảng từ 3 giờ đến 15 giờ.

01 0 02 0 0

3 0 04 0 05 0 0

1 0 0 2 0 0 3 0 0 4 0 0 5 0 0

S ố s e q u e n c e

Thờ

i gia

n (p

hút) M S A P R

C L U S T A L W

Hình 5.6 So sánh thời gian thực thi của MSAPR và CLUSTALW

Xét về bộ nhớ sử dụng, như đã đề cập trong phần thiết kế giải thuật, chương trình

hạn chế tối đa việc cấp phát bộ nhớ. Xét trên tập kết quả từ 5 nhóm dữ liệu của

BAliBASE, MSAPR chiếm dụng từ 3.5MB đến 10MB bộ nhớ. Đây là một kết quả khá

tốt về mặt quản lý bộ nhớ.

Page 89: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 78

Chương 6. KẾT LUẬN

Sinh tin học(Bioinformatics) đang có những bước phát triển đột phá, và từng

bước trở thành một ngành khoa học có vai trò vô cùng quan trọng trong sự phát triển

của nhân loại. Được đánh giá là một trong 10 bài toán lớn của Bioinformatics, từ khi

được đặt ra cho đến hiện nay, bài toán MSA đã và vẫn đang được nghiên cứu. Nhiều

giải pháp được đưa ra để giải quyết bài toán này, tuy nhiên cho đến hiện nay(2007),

bài toán MSA vẫn là một bài toán mở, chưa có một lời giải nào có thể giải quyết bài

toán trọn vẹn. Đứng trên góc độ của một công trình nghiên cứu, luận văn cố gắng đưa

ra một giải pháp nhằm cung cấp thêm một cách thức để giải quyết bài toán này. Tiếp

cận theo hướng kết hợp phương pháp Progressive Algorithm và một số kỹ thuật

heuristic, luận văn đã tối ưu hóa bài toán PSA về độ chính xác, cũng như không gian

nhớ sử dụng cho chương trình, thông qua việc sử dụng giải thuật chia để trị kết hợp

với việc sử dụng đồng thời 3 ma trận BLOSUM và các tham số về khả năng sinh gap,

để phục vụ cho việc tính toán. Cùng với việc cải thiện chất lượng bài toán PSA, luận

văn cũng đã sử dụng kết quả của bài toán TSP để mô tả quá trình phân hoạch cũng như

gom nhóm, để thực hiện phép toán align cho bài toán MSA. Với việc kết hợp những

kỹ thuật này, chương trình hiện thực cho giải thuật được đề xuất đã cho kết quả khá

tốt. Kiểm thử chương trình trên tập dữ liệu mẫu BAliBASE và so sánh kết quả của

chương trình với một số phần mềm được đánh giá rất tốt trong việc giải quyết bài toán

MSA: CLUSTALW, SAGA, MULTALIGN,…. Về cơ bản chương trình cho lời giải

có độ ổn định cao, chính xác không thua kém CLUSTALW(phần mềm được đánh giá

là cho kết quả tốt và ổn định nhất), mặc dù thời gian chạy dài hơn so với CLUSTALW

tuy nhiên xét về bộ nhớ sử dụng chương trình cho kết quả sử dụng bộ nhớ khá tốt. Đây

cũng là mục tiêu hướng tới của luận văn: cung cấp một giải pháp, cho phép giải bài

toán MSA có độ chính xác cao, thời gian chạy chấp nhận được và tiết kiệm về mặt bộ

nhớ.

Thông qua một số thử nghiệm trên một số tập dữ liệu mẫu khác, kết quả thu được

của luận văn hoàn toàn có thể cung cấp cho các nhà sinh học một công cụ để giải các

bài toán MSA.

Page 90: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 79

Kết quả đạt được có thể được mở rộng thêm để cải thiện tốc độ chạy của chương

trình. Hạn chế về mặt thời gian chạy của chương trình có thể được giải quyết bằng

việc:

Đề xuất một phương pháp song song hóa giải thuật được nêu, và triển khai

bài toán trên một hệ thống tính toán song song như Cluster hoặc triển khai

trên hệ thống tính toán lưới Grid.

Thiết kế một giải thuật nhánh và cận nhằm tối ưu về thời gian chạy cũng

như độ chính xác cho bài toán TSP khi số đỉnh của bài toán lớn.

Với những sự mở rộng này chúng ta có thể xây dựng một hệ thống tính toán để

giải quyết bài toán MSA một cách hữu hiệu. Đây chính là hướng phát triển của luận

văn.

Page 91: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 80

TÀI LIỆU THAM KHẢO 1. Akutsu, T., Arimura, H., and Shimozono, S., “On Approximation Algorithms

for Local Multiple Alignment”, Proceedings of the fourth annual international

conference on Computational molecular biology, Tokyo, Japan, 2000.

2. Attwood, T.K., Parry D.J., “Introduction to Bioinformatics”, Prentice Hall,

1999.

3. BAliBASE HomePage, http://www-bio3d-igbmc.u-strasbg.fr/balibase/

4. Bali_Score Program HomePage,

http://bips.u-strasbg.fr/Products/Databases/BAliBASE/bali_score.c

5. Bioinformatics Platform of Strasbourg,

http://bips.u-strasbg.fr/fr/Products/Databases/BAliBASE/prog_scores.html

6. Bonizzoni, P., Vedova, G.D “The complexity of multiple sequence alignment

with SP-score that is a metric”, Theoretical Computer Science 2001, 259:63-79.

7. Cormen, T.H., Leiserson, C.E., Rivest, R.L. and Clifford, S., “Introduction

to Algorithm”. Chapter 16, Dynamic Programming, MIT, 2001.

8. Eddy, S.R., “Multiple Alignment using Hidden Markov Model”. Proc. Int. Conf.

Intell. Syst. Mol. Biol. 1995;3:114-20.

9. European Bioinformatics Institute, “CLUSTALW, CLUSTALX”, European

Bioinformatics Institute HomPage, http://www.ebi.ac.uk/

10. Feng, D. and Doolittle, R., “Progressive alignment of amino acid sequences

and construction of phylogenetic trees from them”, Method Enzymol. ,

266:368-382

11. Feng, D. and Doolittle, R., “Progressive sequence alignment as a prerequisite

to correct phylogenetic trees”, J. Mol. Evol , 25:351-360

12. GALib HomePage http://lancet.mit.edu/ga/

13. Gotoh, O., “Significant improvement in accuracy of multiple protein sequence

alignments by iterative refinement as assessed by reference to structural

alignments”, J. Mol. Biol. 264:823-838

14. Henikoff, S. and Henikoff, J.G., “Amino acid substitution matrices from

protein block”. Proc. Nat. Acd. Sci. USA. 90:10915-10919.

Page 92: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 81

15. Hirschberg D.S., “A linear Space Algorithm for Computing Maximal Common

Subsequences”, Communication of the ACM, Volumn 18, Number 6, 1975

16. Huang, X., and Chao, K.-M,”A generalized global alignment algorithm”,

Bioinformatics, Oxford University Press, Vol. 19, no. 2, 2003 pp 228–233.

17. Korostensky, C. and Gonnet,G.H. , ”Near Optimal Multiple Sequence

Alignments using a Traveling Salesman Problem approach”. Proceedings of

the String Processing and Information Retrieval Symposium & International

Workshop on Groupware Page, 1999, pp 105.

18. Korostensky, C. and Gonnet, G.H. , ”Using traveling salesman problem

algorithms for evolutionary tree construction”. Bioinformatics, 16:619-927,

2000.

19. Lipman, D. and Pearson, W. ,” Rapid and sensitive protein similarity

searches”. Science,227:1435–1441, 1985.

20. Myers, E.W., Miller W., “Optimal alignments in linear space”.Comput Appl

Biosci 1988, 4:11-17.

21. NCBI HomePage, http://www.ncbi.nlm.nih.gov/.

22. Needleman, S. B. and Wunsch, C. D. , “A general method applicable to the

search for similarities in the amino acid sequence of two proteins”. Journal of

Molecular Biology, 48:443–453, 1970.

23. Nicholas, H.B.Jr, Ropelewski, A.J. and Deerfield, D.W., “Strategies for

multiple sequence alignment”, Biotechniques, 32:572-578.

24. Notredame, C., and Higgins, D. G., “SAGA: sequence alignment by genetic

algorithm”, Nucleic Acids Research, vol. 24, no. 8, 1996, pp. 1515-1524.

25. Pearson, W.R, Miller, W. , “Dynamic programming algorithms for biological

sequence comparison”. Meth. Enzymol. 210:575-601, 1992.

26. Shyu, C., “Multiple Sequence Alignment with Evolutionary Computation“

,Genetic Programming and Evolvable Machines, Vol 5, Number 2. 2005, pp

121-144.

27. Smith, T. F. and Waterman, .M. S., “Identification of common molecular

subsequences”, Journal of Molecular Biology, 147(1):195–197, Mar. 1981.

Page 93: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 82

28. Thompson , S.M., ”Multiple Sequence Alignment & Analysis”, Florida State

University School of Computational Science and Information Technology

(CSIT), 2007.

29. Thompson, J.D., Plewniak, F. and Poch, O.”A comprehensive comparision of

multiple sequence alignment”, Nucleic Acids Res., 27:2682-2690.

30. Tompa, M. ”Alignment by Dynamic Programming”,

http://www.cs.washington.edu/homes/tompa/.

31. TSPBIB HomePage,

http://www.densis.fee.unicamp.br/~moscato/TSPBIB_home.html.

32. Wang, L. and Jiang, T., “On the complexity of multiple sequence alignment”.

Journal of Computationa Biology, 1994, pp 337–348.

33. Wallace I.M., Blackshields G., Higgins D.G., “Multiple sequence alignments”

Curr Opin Struct Biol 2005, 15:261-266.

34. Wayama, W., Takahashi, K., and Shimizu, T., “An approach to amino acid

sequence alignment using a genetic algorithm”. Genome Informatics, vol. 6,

1995, pp. 122-123.

35. Yang, Y., “Comparative analysis of methods for multiple sequence alignment”,

Stanford University, 2001.

36. Zhong, W., “Using Traveling Salesman Problem Algorithms to Determine

Multiple Sequence Alignment Orders”. http://www.cs.uga.edu/~rwr/STUDENTS/

Page 94: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 83

Phụ lục 1. Bảng đối chiếu Thuật ngữ Anh - Việt

Các thuật ngữ trong Sinh học:

Thuật ngữ Tiếng Anh Thuật ngữ Tiếng Việt

Amino Acid Acid amin, là đơn vị cấu trúc cơ bản của protein

Biology Sinh học

Block Khối

Chromosome Nhiễm sắc thể

DNA(Deoxyribonucleic Acid)

Là một phân tử nucleic acid mang thông tin di truyền mã hóa cho hoạt động sinh trưởng và phát triển của các dạng sống. DNA chứa các gene cấu trúc.(còn gọi là ADN)

Evolution Tree Cây tiến hoá

Genomic Công nghệ gene

Gene Là một đoạn DNA mang một chức năng nhất định trong quá trình truyền thông tin di truyền

Identity Giống nhau

Molecular Biology Sinh học phân tử

Nucleotide Nu, là các đơn phân cấu thành DNA. Gồm 4 loại A,C,G,T

Parent Thế hệ cha mẹ

Phylogenetic Tree Cây sinh loài

Protein Hợp chất đại phân tử được tạo thành từ rất nhiều các đơn phân là các acid amin.

Protein Family Họ các protein có liên quan với nhau

RNA(Ribonucleic Acid) Là cơ sở di truyền ở cấp độ phân tử(còn gọi là ARN)

Sequence Chuỗi trình tự

Secondary Structure of Proteins Cấu trúc bậc 2 của Protein

Similarity Tương đồng

Transmembrane protein Loại Protein nối liền các lớp màng nhầy.

Page 95: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 84

Tertiary Structure of Proteins Cấu trúc bậc 3 của Protein Các thuật ngữ trong chuyên ngành(Sinh tin học):

Thuật ngữ Tiếng Anh Thuật ngữ Tiếng Việt

Align Thực hiện so sánh(gióng hàng, gióng cột) 2 hay nhiều trình tự.

BAliBASE benchmark Dữ liệu kiểm thử BAliBASE

BAliScore Độ chính xác của MSA so với MSA mẫu của BAliBASE

Bioinformatics Sinh tin học

BLOSUM Matrix Ma trận BLOSUM

Center Star Algorithm Giải thuật chọn phần tử trung tâm

Circular Tour Chu trình, lời giải bài toán TSP

Crossover Phép lai ghép

Deletion Sự mất đi các phần tử

Deletion gap Các gap được sinh ra bằng cách xóa đi các phần tử của sequence.

Divide and Conquer Algorithm Giải thuật chia để trị

Distance Matrix Ma trận khoảng cách

Dynamic Programming Quy hoạch động

Execution Time Thời gian thực thi

FASTA Chuẩn định dạng FASTA lưu trữ các sequence

Fitness Function Hàm thích nghi

Feng-Doolittle Algorithm Giải thuật của Feng-Doolittle

GALib Thư viện hàm cho phép thiết kế, hỗ trợ lập trình các ứng dụng về thuật giải di truyền

Gap Phần tử sinh ra trong quá trình so sánh các trình tự

Gap Open Penalty Khả năng mở gap

Gap Extension Penalty Khả năng mở rộng của gap

Genetic Algorithm-GA Giải thuật di truyền

Page 96: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 85

Gene Finding Problem Bài toán tìm gene

Global Sequence Alignment Phép so sánh trình tự theo hướng toàn cục

Guide Tree Cây mô tả quá trình so sánh của các sequence

Heuristic Các kỹ thuật trong Trí tuệ nhân tạo, giúp giải quyết các bài toán 1 cách tự nhiên.

Insertion Sự thêm vào các phần tử

Insertion gap Các gap được sinh ra do sự thêm các phần tử vào sequence

Iterative Algorithm Giải thuật tìm MSA bằng cách sinh ra 1 MSA có chất lượng thấp và cải tiến dần theo các bước lặp

Local Sequence Alignment Phép so sánh trình tự theo hướng cục bộ

Match Sự tương ứng, phù hợp giữa 2 thành phần của 2 sequence

MSF Chuẩn định dạng MSF lưu trữ các MSA

Multiple Sequence Alignment-MSA So sánh đa trình tự

Mutation Phép đột biến

NCBI

Trung tâm quốc gia về Thông tin Công nghệ sinh học của Hoa Kỳ, cung cấp ngân hàng gene, Cơ sở dữ liệu Protein, các chương trình phục vụ cho mục đích sinh học…

Near Optimal MSA MSA gần tối ưu

Nondeterministic Polynomial-NP Bài toán NP, không thể tính với độ phức tạp đa thức

Optimal MSA Phép so sánh đa trình tự tối ưu(tốt nhất)

Order for Alignment Thứ tự so sánh của các sequence

Pairwise Distance Khoảng cách của các cặp sequence

Pairwise Sequence Alignment-PSA So sánh 2 trình tự

Progressive Algorithm Giải thuật tìm MSA thông qua việc sử dụng bài toán PSA nhiều lần

PMX(Partially Mapped Crossover) Kỹ thuật lai ghép từng phần

Population Quần thể

Scoring Function Hàm đánh giá

Page 97: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 86

Scoring Matrix Ma trận đánh giá

Scoring Method Phương pháp đánh giá

Selection Phép chọn lọc

Sequence Trình tự

Sequence Alignment So sánh trình tự

Subtitution Sự thay thế

Sum of Pair Phương pháp đánh giá theo tổng các cặp trình tự

Traceback Quá trình tìm alignment từ các vết

Traveling Salesman Problem-TSP Bài toán người bán hàng

Page 98: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 87

Phụ lục 2. Từ viết tắt

Tên viết tắt Tên đầy đủ

BLOSUM Block Substitution Matrix

BAliBASE Benchmark Alignment DataBase

CSDL Cơ sở dữ liệu

DNA Deoxyribonucleic Acid

GA Genetic Algorithm

FASTA Fast Alignment Search Tool

HMM Hidden Markov Model

MSA Multiple Sequence Alignment

NCBI National Center for Biotechnology Information

NP Nondeterministic Polynomial

NST Nhiễm Sắc Thể

PSA Pairwise Sequence Alignment

RNA Ribonucleic Acid

SP Sum of Pair

TSP Traveling Salesman Problem

Page 99: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 88

Tham khảo Chỉ mục

A amino acid, 6, 9, 10, 12, 13, 14, 16, 17, 20, 21, 25, 38 Average Information Content, 17

B BAliBase, 3 BaliScore, 69 Bioinformatics, iii, 1, 70, 78 block, 13

C Center Star Alignment, 33, 37 Circular Tour, 51, 52, 53, 54, 55, 56 CLUSTALW, 19, 40, 41, 67, 68, 69, 70, 71, 72, 73, 74,

75, 76, 77, 78 Crossover, 57 Chromosome, 1, 57, 58, 59, 60

D DIALIGN, 19, 69, 70, 71, 72, 73, 74, 75, 76 Distance Matrix, 51, 53, 61, 65 Divide and Conquer Algorithm, 5, 43, 65 DNA, 1, 2, 6, 7, 10, 19 Dynamic Programming, 2, 18, 19, 24

E Entropy, 17 Execution Time, v, 43, 68, 77, 78, 79

F FASTA, 19, 63, 69 Feng-Doolittle Algorithm 4, 38, 39, 40 fitness function, 58

G Gap, 11, 14, 15

deletion, 11, 27, 28 insertion, 11, 27, 28

Gap Extension Penalty, 15 Gap Open Penalty, 15 gene, 1, 2, 6, 7, 10, 19, 57, 59, 60 Gene Finding Problem, 6 Genetic Algorithm, 5, 21, 57 Genomic, 1 Giải thuật 1A, 51 Giải thuật 1B, 55, 57 Giải thuật cải tiến không gian nhớ, 29 Gotoh Algorithm, 28 Guide Tree, 40, 54

H heuristic, 2, 3, 4, 18, 20, 23, 24, 33, 40, 62, 78 Hidden Markov Model, 19, 21 HMMT, 22, 69, 70, 71, 72, 73, 74, 75

I Identity, 6, 68, 71 Iterative Algorithm, 18, 19

M ML_PIMA, 69, 70, 71, 72, 73, 74, 75, 76 MSAPR, 60, 66, 67, 68, 69, 70, 72, 74, 75, 76, 77 MSF, 64, 69 MULTAL, 19, 69, 70, 71, 72 MULTALIGN, 19, 40, 69, 70, 71, 72, 73, 74, 75, 76, 78 Mutation, 58

N NCBI, 3, 63 Near Optimal Alignment, 3, 18 NP, 2, 18, 23, 51, 62 nucleotide, 9, 10, 12, 17, 21, 25

O Oder for Alignment, 5, 50, 51, 52, 54, 58, 61, 62 Optimal Alignment, 11, 24, 25, 26, 33, 36, 43, 44, 47

P Pairwise Distance, 40, 49 Parent, 57 Phylogenetic Tree, 1 PILEUP, 19, 40 PMX(Partially-Mapped Crossover), 59 Population, 21, 57, 58, 59 Progressive Algorithm 2, 3, 4, 18, 19, 23, 24, 37, 39, 40,

41, 49, 50, 52, 70, 78 protein, 1, 2, 6, 7, 9, 10, 13, 14, 19, 66, 67, 68, 69 protein family, 9

R RNA, 1, 6, 7, 83

S SAGA, 21, 69, 70, 71, 72, 73, 74, 75, 76, 78 SB_PIMA, 69, 70, 72, 73, 74, 75, 76 Scoring function, 5, 7, 12, 13, 14, 15, 16, 17, 20, 22, 25,

32, 34, 36, 38, 39, 40, 44, 48 Scoring Matrix

BLOSUM, 3, 5, 13, 14, 47, 48, 61, 65, 78 Chemical Similarity Matrix, 13 Genetic Code Matrix, 13 Identity Matrix, 13

Page 100: Luanvan caohoc pmh

Các kỹ thuật toán học cho bài toán so sánh đa trình tự

Phạm Mạnh Hùng Trang 89

Subtitution Matrix, 13 Scoring Method, 15

Sum-of-Pair, 16, 18, 32, 40, 50 Selection, 58 Sequence Alignment

Global, 7 Local, 7 Multiple, 2, 3, 4, 5, 9, 10, 13, 16, 17, 18, 19, 20, 21,

22, 23, 24, 32, 33, 34, 37, 39, 41, 42, 49, 50, 60, 61, 62, 63, 65, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79

Pairwise, 2, 3, 4, 5, 7, 8, 15, 18, 23, 24, 25, 26, 33, 34, 35, 37, 38, 42, 43, 44, 48, 49, 51, 53, 57, 60, 61, 65, 78

Similarity, 7, 12, 13, 14, 16, 17, 39, 40, 51, 68 Substitution, 10, 14

T Tertiary Structure of Protein, 6, 9, 68 Traceback, 20, 26, 27, 45 transmembrane protein, 68 Traveling Salesmans Problem(TSP), 3, 5, 50, 51, 52, 53,

55, 57, 59, 60, 62, 65, 78, 79