Tài liệu tham khảo công nghệ thông tin Các phương pháp sắp hàng đa chuỗi nhanh
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜNG ĐẠI HỌC CÔNG NGHỆ
HÀ NỘI - 2010
Trang 2Đặc biệt, tôi xin gửi lời cảm ơn sâu sắc tới thầy Lê Sỹ Vinh – người đã nhiệt tình giúp đỡ, định hướng cũng như động viên tôi trong quá trình nghiên cứu và hoàn thành khóa luận.
Tôi xin gửi lời cảm ơn chân thành tới thầy Từ Minh Phương trường đại học Bưu Chính Viễn Thông, người đã truyền dạy cho tôi những kiến thức quan trọng liên quan trực tiếp đến đề tài của khóa luận.
Tôi cũng xin cảm ơn các bạn trong nhóm Tin sinh Các bạn đã giúp đỡ tôi rất nhiều trong việc hoàn thành khóa luận.
Mặc dù đã rất cố gắng hoàn thành khóa luận này, xong khóa luận sẽ khó tránh khỏi những thiếu sót, kính mong quý thầy cô tận tình chỉ bảo giúp tôi Một lần nữa tôi xin cảm ơn tất cả mọi người.
Hà Nội, tháng 5 năm 2010Sinh viên
Nguyễn Hoàng Dũng
Trang 3Tóm tắt
Tin Sinh học (bioinformatics) là một lĩnh vực khoa học sử dụng các công nghệ của
các ngành tin học, toán học ứng dụng, thống kê, khoa học máy tính, trí tuệ nhân tạo, hóa
học và hóa sinh để giải quyết các vấn đề sinh học Sắp hàng đa chuỗi là một vấn đề
quan trọng trong lĩnh vực tin sinh học Trong những năm gần đây, chất lượng của các chương trình sắp hàng đa chuỗi đã được cải thiện rất nhiều bởi rất nhiều thuật toán mới Mặc dù vậy, lĩnh vực vẫn là một nhiệm vụ khó khăn cho các nhà khoa học Mỗi một thuật toán, một chương trình sắp hàng đa chuỗi đều có những ưu điểm và nhược điểm riêng của mình Vì thế cần tìm cách tối ưu từng ưu điểm của từng phương pháp, và hạn chế nhược điểm của chúng.
Khóa luận sẽ trình bày về các phương pháp sắp hàng đa chuỗi được ứng dụng rộng rãi hiện nay đồng thời phân tích và đưa ra một giải pháp nhằm phát huy tối đa ưu điểm cũng như hạn chế tối thiểu nhược điểm của từng phương pháp.
Trang 4Mục Lục:
Chương 1 Giới thiệu 1
1.1 Multiple alignment 1
1.2 Các chương trình sắp hàng đa chuỗi (multiple sequences alignment ) thông dụng hiện nay 3
Chương 2 Các phương pháp bắt cặp đa chuỗi 5
2.1 CLUSTALW 5
2.1.1 Tính toán ma trận khoảng cách giữa mọi cặp chuỗi 5
2.1.2 Tạo cây hướng dẫn (guide tree) 5
Chương 3 Cây quyết định 17
3.1 Cách giải quyết của Chuong B Do và Kazutaka Katoh 17
3.2 Vấn đề tốc độ 18
3.2.1 Dữ liệu với số lượng chuỗi lớn ( > 200 chuỗi) 18
3.2.2 Dữ liệu với số lượng sequence nhỏ, tổng số amino axit nhỏ 19
3.2.3 Dữ liệu với độ dài của chuỗi quá lớn ( > 2000 amino acids) 20
3.3 Vấn đề điểm chuẩn (benchmark) 21
3.3.1 Với các chuỗi có độ tương đồng cao 21
Trang 53.4 Cây quyết định 22
3.4.1 Cây quyết định cho yêu cầu tốc độ xử lý cao 23
3.4.2 Cây quyết định cho yêu cầu tốc điểm chuẩn cao 24
Chương 4: Kết quả thực nghiệm và bình luận 26
4.1 Giới thiệu về BAliBASE 26
Trang 6Mục Lục Bảng:
Bảng 1: Bắt cặp đa chuỗi ADN của Người, Mèo, Khỉ, Chó, Ngựa, Gà và Vịt với các phép thay thế ở vị trí
số 2, 3, 11, 13 và phép chén / xóa ở vị trí số 7 và số 10 2
Bảng 2: Các chương trình bắt cặp đa chuỗi phổ biến nhất hiện nay 3
Bảng 3: Kiểm tra các MUSCLE, FFT-NS2, FFT-NS1 với các test có số lượng chuỗi từ 200 đến 500 chuỗi 18Bảng 4: Kiểm tra FFT-NS2 với các dữ liệu có số lượng chuỗi lớn hơn 400 19
Bảng 5: Thời gian chạy của PROBCONS theo tống số amino acid 19
Bảng 6: Tính toán SP(mi) 27
Bảng 7: Kết quả các phương pháp với BAliBASE 2 29
Bảng 8: Kết quả các phương pháp với BAliBASE 3 – homologous 30
Bảng 9: Kết quả các phương pháp với BAliBASE 3 – ful llength 31
Trang 7Hình 7: Ví dụ về các đoạn gap nội khối [4] 22
Hình 8: Cây quyết định với yêu cầu xử lý tốc độ cao 23
Hình 9: Cây quyết định với yêu cầu xử lý với điểm chuẩn cao 24
Trang 9Chương 1 Giới thiệu
khám phá đặc biệt là việc giải mã bộ gen người Dự án Bản đồ gen người là một dự án
nghiên cứu khoa học mang tầm quốc tế Dự án khởi đầu vào năm 1990 với người đứng đầu là tiến sĩ James D Watson Bản phác thảo đầu tiên của bộ gen đã được cho ra đời vào năm 2000 và hoàn thiện vào năm 2003 Một dự án song song cũng được thực hiện bởi một công ty tư nhân tên là Celera Genomics Tuy nhiên, hầu hết trình tự chuỗi được xác định là tại các trường đại học và các viện nghiên cứu từ các nước Mỹ Cannada và Anh Việc xác định toàn bộ bộ gen người là một bước tiến quan trọng trong việc phát triển thuốc và các khía cạnh chăm sóc sức khỏe khác Qua những phát kiến này, lượng thông tin sinh học ngày càng phong phú và đa dạng Để có thể xử lý và ứng dụng khối
lượng thông tin đồ sộ như vậy, ngành Tin Sinh học (Bioinformatics) ra đời, đó là sự kết
hợp giữa công nghệ thông tin và sinh học nhằm phục vụ nhiều mục đích khác nhau Trong số đó, việc nghiên cứu phân tích trình tự (chuỗi AND và protein) đóng một vai trò vô cùng quan trọng Để đơn giản cho việc nghiên cứu, các trình tự DNA, protein được tuần tự hóa và nghiên cứu dưới dạng chuỗi các kí tự Khi một gen mới được phát hiện, một trong những yêu cầu quan trọng là làm sao tìm được chức năng, tác dụng của gen này, yêu cầu tương tự cũng được đặt ra với các amino acid mới Một phương pháp đơn giản để xử lý yêu cầu này là so sánh, đánh giá sự giống nhau (tương đồng) của các chuỗi mới tìm ra với các chuỗi đã biết, từ đó ta có thể đưa ra dự đoán về các chức năng
của những chuỗi mới phát hiện này Do đó, sắp hàng đa chuỗi (multiple sequence alignment) các đoạn ADN / protein là một trong những bài toán phổ biến và quan trọng nhất trong sinh học phân tử và các lĩnh vực liên quan Sắp hàng đa chuỗi giúp chúng ta
giải quyết một số vấn đề sau:
- Tìm kiếm và chẩn đoán chức năng cho các chuỗi ADN / protein mới giải mã
Trang 10- Tìm kiếm và chẩn đoán cấu trúc bậc cao cho chuỗi ADN / protein mới giải mã- Phân tích phép biến đổi để xây dựng quá trình tiến hóa giữa các loài sinh vật.- Xác định các vị trí biến đổi dẫn đến các bệnh liên quan đến di truyền, để từ đó
tìm ra phương pháp phát hiện và cứu chữa.
Trong quá trình tiến hóa, có 3 phép biến đổi phổ biến trên một trình tự: (1) thay thế, (2) chèn, (3) xóa Các phép biến đổi này làm cho các chuỗi tương đồng bị biến đổi cả về nội dung cũng như kích thước Sắp hàng đa chuỗi là quá trình chèn thêm các dấu
cách (biểu diễn cho nhưng amino acid bị xóa khỏi chuỗi trong quá trình tiến hóa) vào các chuỗi sao cho tất cả các amino acid ở cùng một ví trí thì tương đồng Sau khi sắp hàng, tất cả các chuỗi đều có độ dài bằng nhau Kết quả, ta sẽ thu được một tập các
chuỗi gọi là một ‘đa chuỗi thẳng hàng’ ( sequences alignment ) Ví dụ dưới đây thể
hiện một đa chuỗi thẳng hàng của 7 đoạn ADN của 7 loài sinh vật là Người, Mèo, Khỉ, Chó, Ngựa, Gà và Vịt Phân tích cho thấy ở vị trí thứ 2 tồn tại phép biến đổi giữa ‘C’ của nhóm động vật ( Người, Mèo, Khỉ, Chó ) và ‘G’ của nhóm động vật ( Ngựa, Gà, Vịt
) Tương tự như vậy ta thấy tồn tại các phép biến đổi ở các vị trí 3, 4, 11 và 13 Ở vị trí 7
và số 10, ta quan sát thấy phép biến đổi chèn / xóa ‘G’ và ‘C’ tương ứng.
Bảng 1: Bắt cặp đa chuỗi ADN của Người, Mèo, Khỉ, Chó, Ngựa, Gà và Vịt với các phép thay thế ở vị trí số 2, 3, 11, 13 và phép chén / xóa ở vị trí số 7 và số 10.
Trang 11trọng số khác nhau sao cho các phép biến đổi ít khi xảy ra có trọng số lớn hơn các phép biến đổi thường xuyên xảy ra Đối với dữ liệu protein, người ta thường sử dụng ma trận thay thế axit amin làm trọng số cho các phép thay thế giữa các cặp axit amin ( ma trận thay thế axit amin phản ánh tốc độ thay thế giữa các axit amin ).
1.2 Các chương trình sắp hàng đa chuỗi (multiple sequences
alignment ) thông dụng hiện nay
Bài toán sắp hàng đa chuỗi là một trong những bài toán được quan tâm và nghiên
cứu nhiều nhất trong hai thập kỉ qua Một trong các phương pháp nổi bật và thông dụng trước đây là phương pháp CLUSTALW[3] được phát triển bởi Thompson và đồng nghiệp từ những năm 1994 Phương pháp CLUSTALW[3] tiến hành sắp hàng các chuỗi sao cho tổng số điểm phạt (điểm phạt cho phép thay thế, điểm phạt cho phép chèn / xóa…) là nhỏ nhất Để làm được việc đó, CLUSTALW[3] từng bước tiến hành sắp hàng
hai chuỗi (hay hai nhóm chuỗi đã được sắp hàng) để cuối cùng thu được một đa chuỗi thẳng hàng hoàn chỉnh Tiếp theo CLUSTALW[3], nhiều phương pháp khác đã được đề
xuất Những phương pháp cho kết quả tốt nhất hiện nay là:MAFFT[4], PROBCONS[5], và MUSCLE[6] Trong đó MAFFT[4] là phương pháp mới được phát triển bao gồm khá nhiều chương trình con cho các yêu cầu khác nhau.
Bảng 2: Các chương trình bắt cặp đa chuỗi phổ biến nhất hiện nay.
Tiết kiệm bộ nhớ, có khả năng chạy các test có chuỗi có độ dài lớn.
Kém hơn về độ chính xác và tốc độ so với một số chương trình mới
Đạt độ chính xác khá cao và tốc độ nhanh với kích thước dữ liệu vừa phải.
Đối với những tập dữ liệu lớn (>1000 chuỗi), nên chạy với cấu hình tiết kiệm thời gian và bộ nhớ
Cho độ chính xác cao khi kiểm tra với một vài bộ dữ liệu chuẩn.
Hạn chế về tốc độ và bộ nhớ, không có khả năng thực hiện với những bộ dữ liệu lớn (>100 chuỗi)
MAFFT[4] Phát triển với nhiều tùy Hạn chế về tốc độ với những yêu
Trang 12chọn, cho phép thực hiện nhiều yêu cầu từ tốc độ nhanh đến độ chính xác rất cao
cầu chạy chính xác, và cũng không phải là phương pháp cho kết quả cao nhất trên tất cả các bộ dữ liệu chuẩn
Mặc dù việc sắp hàng đa chuỗi và tìm kiếm thành phần lặp có một lịch sử nghiên
cứu và phát triển khá lâu, nhưng nó vẫn là một bài toán quan trọng cần phải tiếp tục tập trung nghiên cứu và phát triển để giải quyết các đòi hỏi ngày một cao của lĩnh vực sinh học.
Hàng chục phương pháp sắp hàng đa chuỗi mới được đề xuất hàng năm Mỗi
phương pháp đưa ra đều có ưu điểm và nhược điểm về độ chính xác và thời gian thực hiện Quan trọng hơn chúng thường chỉ phù hợp cho một số kiểu dữ liệu, và dẫn đến khó khăn lớn cho người dùng trong việc lựa chọn phương pháp phù hợp nhất cho một bộ dữ liệu cụ thể đang nghiên cứu Ví dụ, đối với các bộ dữ liệu có chứa thành phần lặp, chúng ta phải sử dụng phương pháp tiên tiến nhất cho phép bắt cặp đa chuỗi kết hợp với tìm thành phần lặp Vì vậy khóa luận sẽ tập trung giải quyết vấn đề trên bằng cách xây
dựng một chương trình sắp hàng đa chuỗi kết hợp các phương pháp tốt nhất hiện nay
thông qua việc sử dụng cây quyết định.
Trang 13Chương 2 Các phương pháp bắt cặp đa chuỗi
2.1 CLUSTALW
CLUSTALW[3] là một chương trình được biết đến và sử dụng nhiều nhất trong
các chương trình giải quyết bài toán MSA (Multiple sequences alignment) Nó được
phát triển bởi Julie D Thompson, Desmond G Higgins và Toby J Gibson.CLUSTALW[3] được thực hiện thông qua 3 bước chính:
- Tính toán ma trận khoảng cách giữa mọi cặp chuỗi.
- Tạo cây hướng dẫn (guide tree).
- Progressive alignment.
2.1.1 Tính toán ma trận khoảng cách giữa mọi cặp chuỗi
Tại bước này, mọi cặp chuỗi được bắt cặp với nhau, sau đó tính khoảng cách giữa từng cặp chuỗi Việc này được thực hiện bằng cách sử dụng phương pháp tính toán xấp xỉ nhanh[7] Phương pháp này cho phép một số lượng lớn các chuỗi được sắp hàng Còn điểm khoách cách được tính bằng cách: tính số lượng k-tuple khớp với nhau (các đoạn giống hệt nhau, thường có độ dài 1 hoặc 2 cho protein và 2 hoặc 4 cho chuỗi nucleotide) trong kết quả tốt nhất của 2 chuỗi sắp hàng và trừ đi điểm phạt cho việc chèn gap.
2.1.2 Tạo cây hướng dẫn (guide tree)
Từ bước 1, ta có ma trận khoảng cách giữa mọi cặp chuỗi Cây hướng dẫn (guide tree) cho bước tiếp theo được tạo ra nhờ phương pháp Neighbour-Joining[8] Đây là một thuật toán lặp Mỗi lần lặp thuật toán chạy qua các bước sau:
- Căn cứ vào ma trận khoảng cách hiện tại (ở đây là ma trận có ở bước 1) ta tính
toán ma trận khoảng cách Q (được định nghĩa dưới đây).
- Tìm các cặp phần tử mà có giá trị khoảng cách Q nhỏ nhất Tạo nên một nút
trên cây và kết hợp 2 phần tử này thành một nút 2 phần tử này được gọi là “hàng xóm”.
- Tính toán khoảng cách của 2 “hàng xóm” với nút mới.
- Tính toán khoảng cách của các nút bên ngoài với nút mới này.
Trang 14- Quay lại bước 1 với ma trận khoảng cách được tính từ bước trước.
Thuật toán dừng lại khi chỉ còn lại một nút duy nhất, và nút này trở thành gốc của
cây hướng dẫn (guide tree).
Với mỗi “hàng xóm” khi được nối tạo thành một nút mới, chúng ta sử dụng công
thức sau để tính khoảng cách giữa từng “hàng xóm” với nút mới Ở đây: f, g là 2 hàng xóm và u là nút mới được tạo thành:
Dựa vào cây hướng dẫn (guide tree) được tạo ra từ bước 2, chúng ta sử dụng sắp
hàng các chuỗi từ nút lá cho đến gốc của cây Mỗi bước sẽ là quá trình sắp hàng 2 nhóm chuỗi đã được sắp hàng trước đó sử dụng thuật toán quy hoạch động [9] [10] Gap ở những nhóm chuỗi này được giữ nguyên trong kết quả tạo thành Việc này lặp đi lặp lại cho đến khi gặp gốc của cây hướng dẫn Đó là kết quả cuối cùng.
Trang 152.2 MUSCLE
2.2.1 Các loại khoảng cách và các cách xây dựng cây hướng dẫn
MUSCLE[6] sử dụng hai cách để xác định khoảng cách giữa các chuỗi đó là khoảng cách K-mer[11] cho những cặp chuỗi chưa được sắp hàng và khoảng cách Kimura[12] cho những cặp đã được sắp hàng (có độ dài bằng nhau).
K-mer[11] được định nghĩa là một chuỗi có độ dài bằng K của các amino acid
đứng liền kề nhau Thuật toán sử dụng K-mer không đòi hỏi cặp chuỗi cần phải sắp hàng mà ưu điểm lớn của nó là kết quả thu được với tốc độ khá cao (độ phức tạp thuật
toán là O(L) với L là độ dài của chuỗi) [11].
Hình 1: Ví dụ về k-mer [6]
Hình 1 thể hiện một ví dụ của K-mer, với K = 3, ở các chuỗi trên dễ dàng nhận thấy K-mer là 6 và tại các chuỗi ở phần dưới K-mer là 13 Tương tự như vậy với K = 4
các chuỗi bên trên K-mer là 4 và các chuỗi dưới K-mer là 9.
Khoảng cách Kimura[12] giữa 2 chuỗi đã được sắp hàng (có độ dài bằng nhau) được tính theo công thức sau:
DK2p= -1/2 ln(1-2P-Q) – ¼ ln(1/2Q)
Ở đây, P là số lượng transition và Q là số lượng transversion trong hai chuỗi
Transition là một phép thay thế khi thay A bởi G, C bởi T hoặc ngược lại Trong khi đó Transversion là phép thay thế A bởi C hoặc T hay các trường hợp tương tự.
Trang 16Sau khi xây dựng xong ma trận khoảng cách, MUSCLE[6] sử dụng thuật toán UPGMA[13] để nhóm các chuỗi lại với nhau UPGMA[13] là một thuật toán xây dựng cây hướng dẫn cho việc sắp hàng từng profile Đầu vào của UPGMA[13] là một ma trận khoảng cách Ở mỗi bước 2 nút gần nhất được nhóm lại với nhau tạo thành một nút mới và ma trận khoảng cách được tính lại theo công thức sau:
( , )| | *| |AB ∑ ∑x A x B∈ ∈ d x y
Ở đây, chúng ta tính khoảng cách giữa 2 nút A và B; x và y lần lượt là các nút ban đầu trong A và B; d(x, y) là khoảng cách giữa 2 nút x và y.
hiện một gap tại cột x trong các profile Khi đó MUSCLE[6] đưa ra hàm tính
Log-Expectation theo công thức sau:
LExy = (1 - fx
G)(1- fy
G) log ∑i∑j fxi fy
Phần 3: Refinement.
Mỗi phần làm một nhiệm vụ riêng biệt, nhưng kết nối chặt chẽ với nhau bởi đầu ra của phần này là đầu vào của phần tiếp theo.
Trang 17Hình 2: Các bước thực hiện của MUSCLE [6]
Phần 1: draft progessive Mục tiêu chính của phần này là tạo ra một đa chuỗi
thẳng hàng mà vấn đề chính là tốc độ chứ không phải là sự chính xác.
- Sử dụng khoảng cách K-mer[8] để xác định khoảng cách giữa mỗi cặp của chuỗi dầu vào Tạo ra ma trận khoảng cách D1.
- Sử dụng thuật toán UPGMA[13] để xây dựng cây hướng dẫn TREE1.
- Ở mỗi lá của cây Tree1, một profile được tạo ra từ một chuỗi đầu vào Các nút trong cây được thăm theo thứ tự tiền tố (nghĩa là các nút con được thăm
trước cha mẹ) Ở mỗi nút trong (internal node) phương pháp một bắt cặp sóng đôi (pairwise alignment - một đa chuỗi thẳng hàng nhưng chỉ có được
xây dựng từ 2 profile) được xây dựng từ 2 nút con Việc này lặp đi lặp lại cho
đến khi gặp gốc của cây Đó chính là đa chuỗi thẳng hàng – mục tiêu của
bước này.
Phần 2: improved progessive Hầu hết các lỗi trong phần một đều do việc sử dụng
khoảng cách K-mer[11], phần 2 sẽ tạo lại cây bằng cách sử dụng khoảng cách Kimura[12] Phương pháp này cho kết quả tốt hơn nhưng đòi hỏi các chuỗi phải được sắp hàng (có độ dài bằng nhau).
- Với mỗi cặp chuỗi trong MSA1, chúng ta tính khoảng cách cho chúng sử dụng khoảng cách Kimura[12] Kết quả ta có ma trận khoảng cách D2.
Trang 18- Từ ma trận khoảng cách D2, sử dụng phương pháp UPGMA[13] ta tạo nên cây Tree2.
- Làm tương tự bước 1.3 với cây Tree2 ta được đa chuỗi thẳng hàng MSA2.
- Bước 3.3 Tạo ra một đa chuỗi thẳng hàng (sequences alignment) mới bằng
cách sắp hàng một lần nữa 2 profile vừa được tạo ra.
- Bước 3.4 Nếu điểm SP (sum of pair)[23] được cải thiện thì cách sắp hàng mới
được giữ lại, ngược lại ta bỏ đi.
- Lặp lại các bước 3.1-3.4 cho tới khi hội tụ hoặc đi tới giới hạn do người sử dụng định nghĩa[15].
2.3 MAFFT
2.3.1 Bắt cặp nhóm sử dụng FFT
Biểu diễn một amino acid dưới dạng một vector
Tần suất của sự thay thế các amino acid phụ thuộc mạnh mẽ vào các thuộc tính lí
hóa của chúng, đặc biệt là các thuộc tính khối lượng (volume) và độ phân cực (polarity)[16] Do đó để biểu diễn một amino acid a dưới dạng vector thì ta cần một vector trong đó các thành phần của vector này là v(a) – thể hiện thuộc tính khối lượng và p(a) – thể hiện thuộc tính độ phân cực[17] Ở đây, MAFFT[4] đã sử dụng các giá trị v(a) và p(a)
đã được chuẩn hóa để thuận lợi cho việc tính toán sau này Công thức xác định các giá trị chuẩn hóa đó là:
Trang 19Trong dó các giá trị v và p là các giá trị trung bình, các giá trị σ σv, p là độ lệch tiêu chuẩn.
Khi đó một chuỗi amino acid sẽ được chuyển thành một chuỗi các vector.
Tính toán mối quan hệ giữa hai chuỗi amino acid
Mối tương quan về mặt khối lượng giữa 2 chuỗi amino acid được tính theo công thức sau
Trong đó N và M là độ dài của 2 amino acid v n v n11( ), ( )22 là giá trị của thuộc tính
khối lượng của 2 amino acid tại vị trí thứ n k là độ trễ trong phép tính Việc định nghĩa k sẽ được nêu ở phần sau.
Bằng một cách hoàn toàn tương tự ta sẽ tính được giá trị c kp( ) Khi đó hàm quan hệ giữa 2 chuỗi amino acid này được định nghĩa theo công thức
c(k) = cv(k) + cp(k).
Nếu ta coi N = M trong trường hợp trên, khi đó độ phức tạp của thuật toán để tính mối quan hệ này là O(N2) Tuy nhiên, dựa vào biến đổi Fourier ta có thể tối ưu bước này
và giảm độ phức tạp thuật toán xuống còn O(N logN) [18] Xét với trường hợp tính toán
cv(k), ta coi V1(m) và V2(m) là dạng biến đổi của v1(n) và v2(n) ta sẽ có
Ta coi dấu ⇔dùng để biểu diễn các cặp khi sử dụng Fourier và dấu * thể hiện sự
chuyển vị ma trận Khi đó giá trị của hàm phụ thuộc sẽ được tính theo công thức
( ) ( ) ( )
c k ⇔V m V m
Tìm kiếm đoạn tương đồng
Độ trễ k giữa hai chuỗi là độ chậm của chuỗi thứ nhất với chuỗi thứ 2 Ở phần B
hình dưới đây biểu diễn độ trễ k giữa 2 chuỗi 1 và 2
Trang 20Hình 3: Ví dụ về độ trễ [4]
Bằng thực nghiệm ta thấy, với các giá trị c(k) lớn, đồng nghĩa với việc tại độ trễ đó
có thể xuất hiện các chuỗi tương đồng (như trên hình vẽ) Khi đó thuật toán sử dụng một bảng trượt với độ lớn của bảng là 30 amino acid (trong hình ví dụ thì độ lớn của bảng là
4) Sau đó lấy 20 giá trị độ trễ k có c(k) lớn nhất Sử dụng bảng trượt trên hai chuỗi này,
nếu tỉ lệ tương đồng vượt quá giới hạn (giá trị giới hạn mặc định là 0.7) thì coi như ta đã tìm được một vùng tương đồng, nếu có nhiều vùng tương đồng liên tiếp với nhau thì nối chúng lại với nhau Tuy nhiên độ lớn của vùng tương đồng này không vượt quá 150 amino acid, nếu lớn hơn 150 thì phải tách chúng ra làm 2 đoạn tương đồng.
Tạo ma trận tương đồng
Sau khi đã tìm ra được các cặp đoạn tương đồng giữa 2 chuỗi Khi đó ta định nghĩa một ma trận hai chiều là ma trận tương đồng như sau:
Ma trận S(i,j) (i, j = 1 … n) – n là số đoạn tương đồng giữa h chuỗi.
Tại S(i, j) nếu đoạn i của chuỗi một tương đồng với đoạn j của chuỗi hai thì điểm S(i,j) sẽ là điểm được tính như trên Trường hợp còn lại S(i,j) = 0.
Trang 21Hình 4: Ví dụ về việc tạo ma trận tương đồng [4]
Hình trên là một ví dụ của việc tạo ma trận tương đồng với 5 đoạn tương đồng
giữa chuỗi 1 và chuỗi 2 Việc chọn đường đi tối ưu phụ thuộc vào S(2,3) và S(3,2) Nếu S(2,3) có giá trị lớn hơn thì đường đi sẽ theo đường in đậm như hình vẽ.
Mở rộng từ bắt cặp giữa 2 sequence thành bắt cặp nhóm
Ta có thể dễ dàng mở rộng tính toán bắt cặp giữa 2 chuỗi thành bắt cặp giữa 2
nhóm bằng cách thay công thức tính cv(k) và cp(k) với vi(n) và pi(n) bằng:
Trong đó wi là trọng số của chuỗi i trong group1
Đặc biệt, trong trường hợp sử dụng cho các nucleotide chúng ta có thể áp dụng công thức sau để tính toán hàm quan hệ:
c(k) = cA(k) + ct(k) + cc(k) + cg(k).
2.3.2 Hệ thống tính điểmMa trận điểm:
Để nâng cao hiệu năng của việc bắt cặp,một hệ thống tính điểm (ma trận tương đồng và điểm phạt gap) đã được sửa đổi [19] Ma trận điểm cho thuật toán được định nghĩa theo công thức :
Trang 22a, b là hai amino acid
các giá trị average được tính1 a aaa
average = Σ f M
2 a b a bab
Mab là ma trận ban đầu, mặc định ở đây là ma trận PAM 200 [15].
fa là tần số xuất hiện của amino acid a [15].Sa là tham số thêm vào.
Đối với các acid nucleic ta có các giá trị fa = 0.25 và Sa = 0.06
Sop là điểm phạt khi tạo ra một gap
gstart(j) là số gap xuất hiện bắt đầu từ vị trí thứ jgend(i) là số gap xuất hiện từ vị trí bắt đầu cho tới i
m mmm group