Sự phát triển của công nghệ giải mã trình tự đã giúp giải mã ngày càng nhiều các hệ gen, đặc biệt là những hệ gen có kích thước vừa và nhỏ như vi rút hay vi khuẩn (hơn 7000 bộ gen của vi rút và vi khuẩn đã được giải mã). Bên cạnh đó hệ gen của những sinh vật bậc cao cũng đã được giải mã hoàn chỉnh như người, chó, chuột. Điều đó dẫn đến một nhu cầu cấp thiết là phải nghiên cứu các phương pháp và xây dựng một chương trình so sánh và bắt cặp trình tự cho hai hệ gen.
Trong khóa luận này, em xin được trình bày phương pháp và xây dựng một chương trình so sánh bắt cặp trình tự hoàn chỉnh cho hai hệ gen. Chương trình cho phép bắt cặp toàn bộ các ADN trên cả hai hệ gen, xác định được cả những biến đổi của tửng nucleotide và các biến đổi ở mức độ gen.
42 trang |
Chia sẻ: luyenbuizn | Lượt xem: 1017 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Sắp hàng hoàn chỉnh hai hệ genome, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Hà Tuấn Cường
SẮP HÀNG HOÀN CHỈNH HAI HỆ GENOME
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
HÀ NỘI – 2010
HÀ NỘI - 20
(chữ hoa, 12pt, đậm, căn giữa)
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Hà Tuấn Cường
SẮP HÀNG HOÀN CHỈNH HAI HỆ GENOME
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
GV hướng dẫn: TS. Lê Sỹ Vinh
HÀ NỘI – 2010
HÀ NỘI - 20
(chữ hoa, 12pt, đậm, căn giữa)
Lời cảm ơn
Lời đầu tiên, em xin gửi lời cảm ơn sâu sắc nhất đến thầy giáo TS. Lê Sỹ Vinh người đã không quản vất vả tận tình hướng dẫn em trong suốt thời gian làm khóa luận tốt nghiệp vừa qua.
Em cũng xin bày tỏ lòng biết ơn tới các thầy, cô giáo trong trường Đại học Công nghệ - Đại học Quốc gia Hà Nội. Các thầy cô đã dạy bảo, chỉ dẫn chúng em và luôn tạo điều kiện tốt nhất cho chúng em học tập trong suốt quá trình học đại học.
Em cũng xin gửi lời cảm ơn tới thầy giáo PGS.TS. Từ Minh Phương, người đã cho em những lời khuyên bổ ích trong quá trình làm khóa luận.
Tôi cũng xin cảm ơn những người bạn của mình, các bạn đã luôn ở bên tôi, giúp đỡ và cho tôi những ý kiến đóng góp quý báu trong học tập cũng như trong cuộc sống.
Cuối cùng con xin gửi tới bố mẹ và toàn thể gia đình lòng biết ơn và tình cảm yêu thương nhất. Con xin dành tặng bố mẹ kết quả mà con đã đạt được trong suốt bốn năm học đại học. Con cám ơn bố mẹ và chị nhiều.
Khóa luận được tài trợ một phần bởi đề tài nghiên cứu QC.09.09 thuộc Đại học Quốc Gia Hà Nội.
Hà Nội, tháng 5 năm 2010
Hà Tuấn Cường
Tóm tắt
Sự phát triển của công nghệ giải mã trình tự đã giúp giải mã ngày càng nhiều các hệ gen, đặc biệt là những hệ gen có kích thước vừa và nhỏ như vi rút hay vi khuẩn (hơn 7000 bộ gen của vi rút và vi khuẩn đã được giải mã). Bên cạnh đó hệ gen của những sinh vật bậc cao cũng đã được giải mã hoàn chỉnh như người, chó, chuột. Điều đó dẫn đến một nhu cầu cấp thiết là phải nghiên cứu các phương pháp và xây dựng một chương trình so sánh và bắt cặp trình tự cho hai hệ gen.
Trong khóa luận này, em xin được trình bày phương pháp và xây dựng một chương trình so sánh bắt cặp trình tự hoàn chỉnh cho hai hệ gen. Chương trình cho phép bắt cặp toàn bộ các ADN trên cả hai hệ gen, xác định được cả những biến đổi của tửng nucleotide và các biến đổi ở mức độ gen.
Chương trình được xây dựng dựa trên cở sở kết hợp và cải tiến các phương pháp đã có như “Pairwise Alignment with Rearrangement” [23], BLASTZ [18] và “Optimal Alignment with Linear space” [9]. Qua đó khắc phục những hạn chế và lựa chọn những ưu điểm của chúng để tạo thành một chương trình sắp hàng hệ gen hoàn chỉnh. Chương trình đã được thực nghiệm kết quả trên các dữ liệu mô phỏng và các dữ liệu thật được lấy từ Gen Bank tại NCBI và thu được những kết quả khả quan.
Đối với các dữ mô phỏng, kết quả sắp hàng của chương trinh cho thấy đã xác định được các đoạn gen có độ tương đồng rất cao, tỷ lể sắp hàng giữa các nucleotide giống nhau đạt mức trên 97%. Khi thực nghiệm với dữ liệu thật và so sánh độ tương đồng với giá trị bắt cặp thu được khi chạy phương thức Hungarian[8] với các hệ gen được chia sẵn bằng cách sử dụng các đoạn gen cung cấp tại Gen Bank cũng cho kết quả tương đương thậm chí tốt hơn trong hầu hết các trường hợp.
Mục lục
Danh sách hình vẽ
Hình 1. Ví dụ về một trình tự. 8
Hình 2: Các biến đổi ở mức độ gen giữa Người và Khỉ 13
Hình 3:Ví dụ về phép biến đổi trong “Simulaneous Character Swapping". 20
Hình 4: Single Swap (trái) và Couple Swap (phải) 22
Hình 5:Bắt cặp trình tự với Ukkonen Barrier 29
Hình 6: Giao diện chương trình 31
Hình 7: Kết quả chương trình 32
Danh sách các bảng
Bảng 1: Ma trận trọng số của BLASTZ 26
Bảng 2: Kết quả Test với số Inversion – Move là 0 34
Bảng 3: Kết quả Test với số Inversion – Move là 1 34
Bảng 4: Kết quả Test với số Inversion – Move là 2 34
Bảng 5: Kết quả Test với số Inversion – Move là 3 35
Bảng 6: Kết quả chạy dữ liệu thật 37
Lời mở đầu
Năm 1854, Charles Darwin cho xuất bản quyển sách “Nguồn gốc của các loài sinh vật”, một công trình nghiên cứu sinh học nổi tiếng và đặt nền tảng cho thuyết tiến hóa của ông. Trong đó có viết “tất cả các động vật tương tự nhau phải tiến hóa từ một tổ tiên chung và tất cả các sinh vật phải tiến hóa từ một vài hoặc một tổ tiên chung đã sống cách đây nhiều triệu năm.” [7]
Bộ gen của sinh vật là một trình tự ADN, theo thuyết tiến hóa thì chúng cùng được biến đổi và phát triển từ một tổ tiên chung. Trải qua hàng triệu năm tiến hóa và phát triển, một số đoạn gen được mất đi cũng như bị di chuyển vị trí so với ban đầu, hình thành lên những hệ gen khác nhau đại diện cho hàng tỷ sinh vật trên trái đất. Một trong những nhiệm vụ cần thiết là phải tìm ra mối quan hệ về mặt cấu trúc giữa các hệ gen sinh vật, qua đó xây dựng lên một bức tranh toàn cảnh về sự tương tự và tiến hóa giữa các sinh vật trên hành tinh.
Với sự phát triển của công nghệ giải mã trình tự, ngày càng nhiều các hệ gen đã được giải mã hoàn chỉnh và được lưu trữ trong các ngân hàng cơ sở dữ liệu gen. Việc so sánh và tìm ra sự tương đồng giữa các hệ gen một cách thủ công là không thể thực hiện được. Do đó dẫn đến một nhu cầu cấp thiết phải nghiên cứu phương pháp và xây dựng chương trình để so sánh và bắt cặp trình tự cho hai hệ gen.
Mặc dù một số phương pháp đã được nghiên cứu và phát triển, chúng mới chỉ tập trung vào xác định và bắt cặp cho những vùng ADN có độ tương đồng cao giữa hai hệ gen. Tức là, một phần lớn trong hệ gen có thể không được bắt cặp và so sánh khi ta tiến hành với các loài sinh vật có hệ gen khác nhau nhiều. Vì vậy cần phải xây dưng một hệ thống có khả năng bắt cặp được toàn bộ các ADN trên hai hệ gen.
Chương 1. Giới thiệu
Chương này giới thiệu về những kiến thức cơ bản về tin sinh học, bài toán bắt cặp trình tự và bắt cặp trình tự theo hệ gen. Nội dung giới thiệu được dựa một phần trên bài giảng của Viện Đại học Ohio State, Hoa Kỳ [13]
Trình tự
Một hệ gen của một sinh vật được thể hiện là một trình tự của các ADN.
Trình tự là một dãy tuyến tính các phần tử được sặp xếp theo thứ tự. Như vậy một trình tự chứa hai loại thông tin: thông tin về phần tử và thông tin định vị - thông tin về vị trí tương đối của từng phần tử so với các phần tử khác.
Các thông tin định vị có thể được xác định theo nhiều cách như theo trục, theo thời gian, vị trí của nhiễm sắc thể hoặc trong 1 vòng protein.
Hình 1. Ví dụ về một trình tự. Hình trên cùng: 1 đoạn 18S rDNA của sâu bọ khác cánh. Hình giữa trên: Tổng quát cơ thể động vật chân dốt. Hình giữa dưới: Orthopteran stridulation. Hình dưới cùng: Đoạn gen mtDNA [13]
Các loài sinh vật được tiến hóa từ một tổ tiên chung, biến đổi qua các dạng hình thái trong quá trình tiến hóa và phát triển. Khi đề cập đến trình tự, có ba vấn đề chúng ta cần phải nói đến là hệ thống các ký tự trong trình tự, các phép biến đổi trình tự và hàm khoảng cách đánh giá sự thay đổi của trình tự.
1.1.1. Hệ thống ký tự
Tập hợp các phần tử có thể xuất hiện trong trình tự được gọi là một hệ thống các ký tự ( ∑ ) , trong ADN, người ta sử dụng một thệ thống kí tự ∑ = {A, C, G, T, λ ) trong đó A, C, G, T đại diện cho 4 nucleotides : adenine (A), cytosine (C), guanine (G) và thymine (T). λ là ký tự đặc biệt đại diện cho 1 khoảng trống là 1 vị trí mà không có nucleotide thực tế. Trong hầu hết các trường hợp, ký tự gap (‘-‘) có thể được sử dụng để thay thế cho λ. Bất kỳ một trình tự nào cũng là một sự thể hiện bởi các phần tử có thể xuất hiện trong trình tự và được định nghĩa trong ∑.
1.1.2. Các phép biến đổi
Trong quá trình tiến hóa, có 4 phương thức chính để biến đổi một trình tự là phép thay thế, phép chèn – xóa, đảo ngược và dịch chuyển. Biến đổi phức tạp xảy ra là sự kết hợp của 2 phép đảo ngược và dịch chuyển, sự kết hợp này gây ra sự khó khăn trong việc dựng lại mối quan hệ giữa các trình tự trong những hệ thống phân tích phức tạp.
Phép thay thế:
Phép chèn – xóa:
Phép đảo ngược:
Phép dịch chuyển:
1.1.3. Khoảng cách
Một điều quan trọng và cần thiết là xây dựng một hàm mục tiêu đánh giá khoảng cách giữa hai trình tự, qua đó đánh giá sự tương đồng, mối quan hệ giữa hai hệ gen. Khoảng cách này có thể được tính toán theo một số hàm như thay thế, chèn, xóa làm biến đổi một trình tự này thành một trình tự khác. Khoảng cách giữa hai trình tự có thể chỉ được tính đơn giản chỉ là chi phí thay thế (Hamming Hamming [10]) trong những trình tự có độ dài bằng nhau hay phức tạp hơn bao gồm cả chi phí chèn – xóa và dịch chuyển.
Sắp hàng trình tự
Sắp hàng trình tự là một thủ tục cực kỳ quan trọng trong Tin sinh học, nó được xem là nền tảng cho tất cả các thủ tục khác. Vấn đề đặt ra là tạo ra những sự sắp hàng giữa các nucleotide thông qua việc chèn các ký tự gap, làm cho khoảng cách giữa hai trình tự tức chi phí sửa chữa (là tổng chi phí cho các sự kiện chèn – xóa, thay thế các nucleotide) giữa hai trình tự là nhỏ nhất (hoặc lớn nhất).
Đầu vào là 2 trình tự X = (x1, x2, …xp) và Y = (y1, y2, …yq), sắp hàng trình tự X và Y là cách chèn các kí tự trống vào hai trình tự X và Y sao cho chúng có độ dài bằng nhau và khoảng cách (chi phí sửa chữa) giữa hai trình tự là nhỏ nhất (hoặc lớn nhất).
Các thuật toán quy hoạch động đầu tiên cho việc sắp hàng giữa các chuỗi ký tự được trình bày bởi Levenshtein [14], với độ phức tạp về thời gian và bộ nhớ là O(n2). Needleman và Wunsch [16] lần đầu tiên áp dụng thuật toán này vào lĩnh vực Tin sinh học năm 1970. Yêu cầu bộ nhớ giảm xuống còn O(n) bởi Hirschberg[12] trong khi thời gian chạy vẫn là O(n2). Những cải tiến của Ukkonen [21,22] với những cặp trình tự có khoảng cách độ dài là d, thuật toán yêu cầu thời gian O(nd) cho trường hợp xấu nhất và độ phức tạp thời gian trung bình là O(d2+n). Thuật toán Quy hoạch động tính toán chi phí bắt cặp theo công thức sau:
(1)
Cost[i][j] là chi phí bắt tới vị trí i của trình tự 1 và vị trí j của trình tự 2, σi,j là chi phí thay thế nucleotide ở vị trí thứ i của trình tự 1 và ở vị trí j của trình tự 2, σindex là chi phí chèn- xóa một nucleotide.
Pairwise Alignment by Needleman and Wunsch
Cost[0][0] ← 0
{Khởi tạo cột đầu tiên}
for i = 0 to |X| do
Cost[i][0] ← Cost[i-1][0] + σindex
{Khởi tạo hàng đầu tiên}
for j = 0 to |Y| do
Cost[0][i] ← Cost[0][j-21] + σindex
{Quy hoạch động}
for i = 1 to |X| do
for j = 1 to |Y| do
ins ← Cost[i-1][j] + σindex
del ← Cost[i][j-1] + σindex
sub ← Cost[i-1][j-1] + σi,j
Cost[i-1][j-1] ← min(ins, del, sub)
end for
end for
return Cost[|X|][|Y|]
Thuật toán Needleman – Wunsch hoạt động khi mà chi phí cho việc chèn – xóa các nucleotide là một trọng số cố định. Tức chi phí cho việc chèn một đoạn gap có độ dài k là wk = kw1. Trên thực tế, việc tính toán chi phí chèn – xóa thường phức tạp hơn, bao gồm chi phí cho việc bắt đầu và mở rộng các đoạn gap.
Waterman [25], tiến hành thực nghiệm trên một khối lượng lớn các trình tự với trọng số cho việc chèn gap wk ≤ kw1 với độ phức tạp thời gian là O(n3). Lý do của việc tăng độ phức tạp về thời gian là do việc bổ sung thêm việc tính toán chi phí chèn – xóa gap trong các trường hợp. Công thức được đưa ra:
(2)
Trong đó P[i][j] và Q[i][j] là chi phí chèn và xóa ở vị trí ( i , j)
Trong các trường hợp đặc biệt, chi phí chèn gap là một hàm tuyến tính wk = uk +v trong đó v được gọi là chi phí bắt đầu một đoạn gap và v là chi phí mở rộng đoạn gap. Gotoh (1982) [9] đã đưa ra một công thức tính toán tối ưu hóa việc tính toán ma trận P và Q giảm độ phức tạp thời gian xuống còn O(n2). Công thức mà Gotoh đưa ra là :
(3)
Sắp hàng trình tự hệ gen
Trong quá trình tiến hóa của các sinh vật, bên cạnh những biến đổi ở mức độ điểm (sự thay thế chèn – xóa của các nucleotide) còn có những sự biến đổi ở mức độ gen. Có 3 phép biến đổi chính ở mức độ gen là phép chèn gen, xóa gen và dịch chuyển gen. Hình 2 mô tả một ví dụ về sự biến đổi ở mức độ gen giữa Người và Khỉ. Ta thấy gen số 1 đã bị dịch chuyển, nó nằm ở đầu của hệ gen Người nhưng lại nằm ở cuối ở hệ gen của Khỉ. Ngoài ra, gen số 2 tồn tại ở Khỉ nhưng không tồn tại ở Người. Tức là hoặc nó bị xóa khỏi hệ gen của Người hoặc nó được chèn thêm vào hệ gen của Khỉ. Do ta không phân biệt được phép chèn gen, và xóa gen, ta gọi chung là phép chèn/xóa gen. Trải qua hàng triệu năm tiến hóa, với sự biến đổi ở mức độ gen, hệ gen của các sinh vật ngày nay đã có sự khác nhau rất lớn về kích thước, số lượng gen, thứ tự các gen cũng như về nội dung của các gen.
Hình 2: Các biến đổi ở mức độ gen giữa Người và Khỉ
Sắp hàng trình tự hệ gen là một trường hợp riêng của sắp hàng trình tự, trong đó đầu vào là toàn bộ trình tự ADN của một hệ gen sinh vật. Sắp hàng trình tự hệ gen giúp xây dựng bức tranh toàn cảnh về sự tương tự và tiến hóa giữa các sinh vật, là cơ sở cho hướng nghiên cứu Comparative genomics [4], cho phép nâng cao độ chính xác dự đoán gen. Về mặt tính toán, bắt cặp hệ gen đặt ra nhiều vấn đề cần giải quyết như kích thước trình tự lớn, thứ tự các phần tương đồng trên các hệ gen thường thay đổi. Do tính quan trọng cũng như đặc thù phương pháp, vấn đề so sánh và sắp hàng trình tự hệ gen được trình bày thành một phần riêng, tách khỏi sắp hàng trình tự nói chung.
Các thuật toán sắp hàng trình tự thông thường mới chỉ xác định được các biến đổi ở mức độ điểm (sự biến đổi của các nucleotide) cũng như chỉ làm việc được với các dữ liệu nhỏ. Khi nghiên cứu về việc sắp hàng trình tự theo hệ gen, chúng ta phải tính toán cả những biến đổi ở mức độ điểm lẫn mức độ gen. Đặc biệt thời gian thực thi cũng là một vấn đề hết sức quan trọng do kích thước rất lớn của các hệ gen. Ví dụ kích thước của hệ gen người lên tới 3 tỉ ADN. Một trong những hệ thống sắp hàng hệ gen đầu tiên là BLASTZ [18] được phát triển bới nhóm của Webb Miller vào đầu những năm 2000 tại đại học Pennsylvania để sắp hàng hệ gen của người và chuột. Cũng như các phương pháp sắp hàng hệ gen khác, Phương pháp BLASTZ được phát triển từ tư tưởng thuật toán tìm kiếm BLAST [2] (thuật toán xác định những đoạn giống nhau cao giữa hai chuỗi). Tư tưởng chung của thuật toán gồm ba bước:
Bước 1: Tìm kiếm những cặp đoạn ADN ngắn rất giống nhau ở cả hai hệ gen được gọi là hạt giống (seed). Những đoạn này có độ dài vào khoảng 7 đến 13 ADN và được gọi là seed. Để thực hiện việc tìm kiếm này, có thể sử dụng nhiều kỹ thuật khác nhau như bảng băm, cây hậu tố (suffix tree).
Bước 2: Mở rộng các hạt giống về cả hai phía sao cho trong quá trình mở rộng chi phí không vượt qua một ngưỡng cho trước. Quá trình mở rộng này không cho phép chèn gap
Bước 3: Tiến hành nối các cặp ADN được mở rộng ở bước 2 lại với nhau để tạo thành những cặp ADN lớn hơn, bước này được phép chèn thêm gap. Sau khi nối, các cặp ADN này sẽ được đánh giá độ tương đồng.
Các nghiên cứu hiện tại tập trung vào cải tiến bước thứ 1 và bước thứ 3. Nổi bật là các nghiên cứu của Aaron Darling và đồng nghiệp tại đại học Wisconsin–Madison trong việc cải tiến cách xác định các hạt giống ở bước 1. Họ định nghĩa hạt giống là những cặp ADN giống nhau và xuất hiện duy nhất trên cả hệ gen. Nhóm tác giả đã xây dựng hệ thống MAUVE để sắp hàng đa hệ gen và thu được những kết quả có độ chính xác cao trên những hệ gen có độ tương đồng cao [1]. Bên cạnh đó, nhóm tác giả Michael Brudno tại đại học Standford tập trung vào cải tiến bước 3 để kết nối các đoạn ADN và phát triển hệ thống SLAGAN [5]. Nhóm tác giả áp dụng phương pháp quy hoạch động để tìm ra cách kết nối các đoạn ADN tốt nhất, trong đó cho phép các đoạn ADN được phép dịch chuyển và đảo chiều. Kết quả so sánh hai hệ thống MAUVE và SLAGAN cho thấy MAUVE tốt hơn SLAGAN trên những tập dữ liệu có độ tương đồng cao, còn SLAGAN cho kết quả tốt hơn MAUVE trên những tập dữ liệu tồn tại nhiều phép thay thế ADN ở mức độ điểm và ít phép đảo chiều đoạn ADN ở mức độ gen.
Mặc dù một số phương pháp đã được nghiên cứu và phát triển, chúng mới chỉ tập trung vào xác định và bắt cặp cho những vùng ADN có độ tương đồng cao giữa hai hệ gen. Tức là, một phần lớn trong hệ gen có thể không được bắt cặp và so sánh khi ta tiến hành với các loài sinh vật có hệ gen khác nhau nhiều. Để giải quyết vấn đề trên, những nghiên cứu đầu tiên của TS. Lê Sỹ Vinh và đồng nghiệp tại Bảo Tàng Lịch Sử Tự Nhiên Hoa Kỳ, và tại trường Đại Học Công Nghệ nhằm so sánh và sắp hàng toàn bộ hệ gen đã được tiến hành và cho kết quả thử nghiệm khả quan [23,24]. Nhóm nghiên cứu định nghĩa việc sắp hàng toàn bộ hệ gen phải thỏa mãn ba điều kiện chính sau:
Xác định được các phép biến đổi ở mức độ gen (chèn, xóa, dịch chuyển vị trí).
Xác định được các phép biến đổi ở mức độ điểm (thay thế, chèn, xóa).
Bắt cặp toàn bộ các ADN trên hệ gen.
Hệ thống bắt cặp thỏa mãn ba điều kiện trên sẽ cho phép bắt cặp các gen với các mức độ tương đồng khác nhau. Để đáp ứng được ba yêu cầu trên, Vinh và các đồng nghiệp đã nghiên cứu cách kết hợp điểm phạt cho các phép biến ở mức độ điểm, và các phép biến đổi ở mức độ gen vào thành một hệ thống tính điểm phạt chung. Điều này cho phép chúng ta xây dựng hàm tục tiêu rõ ràng để tìm ra cách bắt cặp toàn bộ hệ gen tốt nhất. Kết quả thí nghiệm với 760 bộ gen ty thể của các loài động vật cho thấy hệ thống tính điểm cho kết quả tốt [23]. Sử dụng phương pháp bắt cặp toàn bộ hệ gen, nhóm tác giả đã xây dựng quá trình tiến hóa của 11 Corona vi rút và tái khẳng định lại kết luận vi rút Corona gây ra dịch bệnh hô hấp cấp (SARs) có chung nguồn gốc với vi rút Corona ở loài dơi chứ không phải là loài chồn hôi (canivor) [24].
Chương 2. Bài toán sắp hàng hoàn chỉnh hai hệ gen
2.1. Tổng quan
Theo những nghiên cứu của TS. Lê Sỹ Vinh và đồng nghiệp [23,24], một hệ thống sắp hàng hoàn chỉnh hai hệ gen phải thỏa mãn ba điều kiện chính :
Xác định được các phép biến đổi ở mức độ gen (chèn, xóa, dịch chuyển vị trí).
Xác định được các phép biến đổi ở mức độ điểm (thay thế, chèn, xóa).
Bắt cặp toàn bộ các ADN trên hệ gen.
Các phương pháp bắt cặp hệ gen tiêu biểu như BLASTZ[18], SLAGAN[5], MAUVE[1] mới chỉ dừng lại ở mức phát hiện và sắp hàng các đoạn ADN tương đồng. Như vậy sẽ có một phần lớn trong hệ gen có thể không được bắt cặp và so sánh khi ta tiến hành với các loài sinh vật có hệ gen khác nhau nhiều. Giải quyết vấn đề này, Lê Sỹ Vinh và các đồng nghiệp đã giới thiệu một phương pháp có khả năng sắp hàng hoàn toàn được hệ gen của hai sinh vật bất kỳ “Pairwise Alignment with Rearrangement” [23].
2.2 Pairwise Alignment with Rearrangement
“Pairwise Align with rearrangement” là thuật toán sắp hàng trình tự trong đó cho phép có sự sắp xếp lại của các ký tự trong trình tự do Lê Sỹ Vinh và các đồng nghiệp tại Bảo tàng lịch sử tự nhiên Hoa Kỳ đưa ra vào năm 2006[23]. Ưu điểm của thuật toán này so với các thuật toán bắt cặp trình tự trước đây ở chỗ nó cho phép có sự di chuyển vị trí của các ký tự. Đầu vào hai trình tự, “Pairwise Alignment with Rearrangement” sẽ đưa ra cách sắp hàng sao cho tổng 3 chi phí : Chi phí thay đổi vị trí (Break Cost), chi phí chèn – xóa và chi phí thay thế các ký tự là nhỏ nhất. Thực nghiệm cho thấy, việc sắp hàng trình tự có sự đổi chỗ của các ký tự cho kết quả tối hơn so với cắt bắt cặp trình tự thông thường không có sự đổi chỗ.
2.2.1. Cơ sở lý thuyết
Trong “Pairwise Alignment with rearrangement”, ta xem hai hệ gen như hai chuỗi ký tự, tức là mỗi đoạn gen sẽ được xem như là một ký tự trong chuỗi đầu vào. Có X = (x1, x2, …, xp) là một chuỗi gồm p ký tự, Y = (y1, y2, …, yq ) là một chuỗi gồm q ký tự. C(xi, yj) là chi phí để thay thế ký tự xi thành ký tự yj với i = 1 … p, j = 1 ... q. C(xi, y0) và C(x0, yj) là chi phí chèn/xóa kí tự xi và yj tương ứng. Khi thực hiện với hai hệ gen, ta có xi và yj là một chuỗi các nucleotide, khi đó chi phí C(xi, yj) là chi phí nhỏ nhất để biến đổi xi thành yj.
Gọi R(Y, YR) là hàm chi phí chuyển đổi giữa Y và một hoán vị YR của nó. Thông thường R(Y, YR) được tính là khoảng cách breakpoint[11] hoặc khoảng cách inversion[17].
Một chuỗi X’ = (x1’, x2’, …, xk’) được gọi là một chuỗi phát triển (edited sequence) từ X khi và chỉ khi X thu được từ X’ sau khi xóa hết các ký tự gap. Ví dụ X’ = (‘-‘, 1, 2, ‘-‘, 3, 4) là một chuỗi phát triển từ X = (1,2,3,4) . Một cặp A(X,Y) = A(X’,Y’) của hai chuỗi X’ = (x1’, x2’, …, xk’) phát triển từ X và Y’ = (y1’, y2’, …, yk’) phát triển từ Y được gọi là một bắt cặp hoàn chỉnh của X và Y. Chi phí C(A) của một bắt cặp A là tổng chi phí thay thế và chèn/xóa của các ký tự trong X và Y.
(4)
Chi phí tối ưu để bắt cặp A*(X,Y) = argminA(X,Y){C(A)} có thể được tính với độ phức tạp thời gian là O(pq) sử dụng kỹ thuật quy hoạch động (Xem phần 1.2). Một cách bắt cặp được xây dựng bằng cách chèn thêm ký tự gap ở cả hai chuỗi sao cho thứ tự các ký tự trong chuỗi phải được giữ nguyên.
Một chuỗi XR’ = (x1’, x2’, …, xk’) được gọi là một chuỗi phát triển có sắp xếp lại (edited rearrangement sequence) từ X nếu sau khi loại bỏ gap ở XR’ ta thu được XR là một hoán vị của X. Ví dụ với XR’ = (‘-‘, 1, 4, 2, ‘-‘, 3) là một chuỗi phát triển có sắp xếp lại từ X = (1,2,3,4).
Một cặp A = (XR’, YR’) của hai chuỗi phát triển có sắp xếp lại XR’ = (x1’, x2’, …, xk’) và YR’ = (y1’, y2’, …, yk’) được gọi là một bắt cặp trình tự có sắp xếp lại (PAR) của hai chuỗi X và Y. Chi phí CR(AR) của PAR AR là tổng các chi phí thay thế giữa các ký tự, chi phí chèn - xóa gap và chi phí sắp xếp lại giữa các ký tự. Ta có công thức:
(5)
Mục đích của bài toàn là tìm một PAR AR* có chi phí bé nhất. Tức là:
(6)
2.2.2. Thuật toán
Thuật toán “Pairwise Alignment with Rearrangement” sử dụng chiến lược leo đồi để tìm ra cặp PAR AR*. Chiến lược này gồm 2 bước. Bước đầu tiên một PAR AR xuất phát sẽ được tạo ra. Sau đó ở bước thứ 2 chúng ta tìm ra PAR AR* bằng cách lần lượt tìm ra các cặp AR tối ưu hơn.
Đầu tiên, một PAR AR xuất phát sẽ được khởi tạo bằng cách sử dụng thuật toán “Stepwise addition”. Đầu tiên chúng ta khởi đầu với một PAR chưa đầy đủ là AR = (XR’ = X, YR’ = ). Sau đó ta lần lượt chèn các ký tự yj Y, j = 1 … |Y| vào YR’ để tạo thành một PAR hoàn chỉnh. Ký tự yj được thêm vào vị trí sao cho chi phí của AR mới là thấp nhất. Thuật toán được mô tả như sau :
Stepwise Addition Method
YR ← Ø
for j = 1 to |Y|
BestCost ← +∞, BestPosition ← nil
for each position p in YR do
Insert yj into YR at position p
AR ← A*(X, YR)
if CR(AR) < BestCost then
BestPosition ← p, BestCost ← CR(AR)
Remove yj from YR
end for
Insert yj into YR at BestPosition
end for
Return AR = A*(X, YR)
Bước thứ 2, chúng ta tìm cách từng bước một tối ưu hóa PAR AR hiện có, tức là tìm cách giảm chi phí CR(AR). Để thay đổi một PAR, ta tiến hành đổi vị trí giữa các ký tự trong chúng. Với 1 PAR AR(XR’, YR’) ta định nghĩa một phép biến đổi M(i, j, t | i ≤ j ≤ t-1) của chuỗi YR = (y1, y2, …, yp) thu được sau khi loại bỏ ký tự gap từ YR là phép dịch chuyển đoạn (yi,…,yj) trong YR đến vị trí t để thu được một chuỗi không có ký tự gap mới YR. Một phép biến đổi M(i, j, t) được gọi là có thể thực hiện được (possible move) nếu chi phí CR của PAR mới tạo được từ XR và YR tốt hơn chi phí của PAR AR cũ. Thuật toán được mô tả như sau:
Character Moving Method
Build an initial PAR AR = (XR’, YR’) by stepwise addition method
iteration ← 0
repeat
positionMove ← false
foreach triple positions (i, j, t | i ≤ j < t-1)
if M(i, j, t) is a possible move then
Move character(yi, …, yj) in YR to position t
possibleMove ← true
end if
end for
iteration ← iteration + 1
until possibleMove = false
return A*(XR, YR)
Để tối ưu hóa một PAR AR, một thuật toán khác phức tạp hơn được để xuất, có tên là “Simulaneous Character Swapping". Trong thuật toán này, 1 biến đổi S(k, t) được định nghĩa là phép đổi vị trí yi và yj của chuỗi YR thu được sau khi loại bỏ ký tự gap từ YR’. Một phép biến đổi được gọi có thể thực hiện được nếu chi phí của AR mới giảm đi.
Xét hai phép biến đổi S1(k1, t1) và S2(k2, t2) với k1 t1 hoặc t2 < t1. Thực nghiệm cho thấy nếu ta đồng thời thực hiện hai phép biến đổi S1 và S2 độc lập với nhau có thể sẽ tạo ra 1 PAR tốt hơn. Ngược lại nếu S1 và S2 không độc lập, chỉ thực hiện phép biến đổi cho chi phí thấp hơn.
Hình 3:Hình trái: ví dụ 2 phép biến đổi S1(k1, t1) và S2(k2, t2) là độc lập với nhau. Hình phải:Đổi chỗ đồng thời 2 phép biến đổi độc lập.
Thuật toán “Simulaneous Character Swapping” được mô tả như sau:
Simulaneous Character Swapping Method
Build an initial PAR AR = (XR’, YR’) by stepwise addition method
iteration ← 0
bestCost ← 0
repeat
positionSwap ← false
Find independent possible swap L and sort L increasing ly
if |L| > 0 then
r ← L
repeat
swap simultaneous L1, …, LR in YR to get ŸR
ÄR ← A*(XR, ŸR)
if CR(ÄR) < bestCost then
possibleSwap ← true
bestCost ← CR(ÄR), YR ← ŸR
else r = r/2
until possibleMove = false
iteration ← iteration + 1
until possibleSwap = true
return A*(XR, YR)
2.2.3. Độ phức tạp của thuật toán
Như ta đã biết thuật toán “Pairwise Alignment with Rearrangement” bao gồm hai bước. Bước một là tìm một PAR xuất phát bằng cách sử dụng phương thức “Stepwise addtion”. Bước hai là từng bước tối huy hóa PAR hiện có bằng cách một trong hai cách : “Character moving
Các file đính kèm theo tài liệu này:
- Ha Tuan Cuong_K51KHMT_Khoa luan tot nghiep dai hoc.doc