Tải bản đầy đủ (.pdf) (42 trang)

LUẬN VĂN: SẮP HÀNG HOÀN CHỈNH HAI HỆ GENOME     pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (729.99 KB, 42 trang )


























ĐẠ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


























ĐẠ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
Page|1

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





Page|2

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.


Page|3

Mục lục

Lời cảm ơn 1
Tóm tắt 2
Mục lục 3
Danh sách hình vẽ 5
Danh sách các bảng 6
Lời mở đầu 7
Chương 1. Giới thiệu 8
1.1. Trình tự 8
1.1.1. Hệ thống ký tự 9
1.1.2. Các phép biến đổi 9
1.1.3. Khoảng cách 10
1.2.
 Bắt cặp trình tự 10
1.3. Bắt cặp trình tự hệ gen 12
Chương 2. Bài toán sắp hàng hoàn chỉnh hai hệ gen 16

2.1. Tổng quan 16
2.2 Pairwise Alignment with Rearrangement 16
2.2.1. Cơ sở lý thuyết 17
2.2.2. Thuật toán 18
2.2.3. Độ phức tạp của thuật toán 21
2.3. Bắt cặp với những trình tự lớn 22

Chương 3. Full Genome Alignment 24
3.1. Xây dựng hệ thống 24
Page|4

3.2. Giới thiệu về BLASTZ 25
3.2.1. Tính năng của BLASTZ 25
3.2.2. Chương trình BLASTZ 27
3.3. Optimal Alignment with Linear space 28
Chương 4. Kết quả 31
4.1. Chương trình 31
4.2. Kiểm thử 33
4.2.1. Dữ liệu mô phỏng 33
4.2.2. Dữ liệu thật 35
Chương 5. Kết luận 38
Tài liệu tham khảo 39















Page|5

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


















Page|6

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

















Page|7

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.






Page|8

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]
1.1. 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]
Page|9

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:




Page|10

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.
1.2. 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 = (x
1
, x
2
, …x
p
) và Y = (y
1
, y
2

, …y
q
), 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(n
2
). 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(n
2
). 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(d
2
+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:

Page|11






(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
1 Cost[0][0] ← 0
2 {Khởi tạo cột đầu tiên}
3 for i = 0 to |X| do
4 Cost[i][0] ← Cost[i-1][0] + σ
index

5 {Khởi tạo hàng đầu tiên}
6 for j = 0 to |Y| do
7 Cost[0][i] ← Cost[0][j-21] + σ
index

8 {Quy hoạch động}
9 for i = 1 to |X| do
10 for j = 1 to |Y| do
11 ins ← Cost[i-1][j] + σ
index

12 del ← Cost[i][j-1] + σ
index

13 sub ← Cost[i-1][j-1] + σ
i,j


14 Cost[i-1][j-1] ← min(ins, del, sub)
15 end for
16 end for
17 return Cost[|X|][|Y|]

Page|12

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à w
k
= kw
1
. 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 w
k
≤ kw
1
với độ phức tạp thời gian là O(n
3
).
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 w
k

= 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(n
2
). Công
thức mà Gotoh đưa ra là :



(3)

1.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
Page|13

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
Page|14

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à
Page|15

đồ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].






Page|16

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
Page|17

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 = (x
1,
x
2,
…, x
p
) là một chuỗi gồm p ký tự, Y = (y
1,
y
2,
…, y
q
)
là một chuỗi gồm q ký tự. C(x
i,
y

j
) là chi phí để thay thế ký tự x
i
thành ký tự y
j
với i = 1 … p, j = 1 q. C(x
i,
y
0
) và C(x
0,
y
j
) là chi phí chèn/xóa kí tự x
i
và y
j
tương ứng. Khi thực hiện với hai hệ gen, ta có x
i
và y
j
là một chuỗi các
nucleotide, khi đó chi phí C(x
i,
y
j
) là chi phí nhỏ nhất để biến đổi x
i
thành y
j

.
Gọi R(Y, Y
R
) là hàm chi phí chuyển đổi giữa Y và một hoán vị Y
R c
ủa nó.
Thông thường R(Y, Y
R
) được tính là khoảng cách breakpoint[11] hoặc khoảng
cách inversion[17].
Một chuỗi X’ = (x
1
’, x
2
’, …, x
k
’) đượ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’ = (x
1
’, x
2
’, …, x
k
’) phát triển từ X và Y’
= (y
1
’, y
2

’, …, y
k
’) 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) = argmin
A(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 X
R
’ = (x
1
’, x
2
’, …, x
k
’) đượ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 ở X
R

ta thu được X
R
là một hoán vị của X. Ví dụ với X
R

’ = (‘-‘, 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 = (X
R
’, Y
R
’) của hai chuỗi phát triển có sắp xếp lại X
R
’ = (x
1
’,
x
2
’, …, x
k
’) và Y
R
’ = (y
1
’, y
2
’, …, y
k
’) đượ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í C
R
(A
R
) của PAR A
R

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:
Page|18

(5)
Mục đích của bài toàn là tìm một PAR A
R
*
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 A
R
*
. Chiến lược này gồm 2 bước. Bước đầu tiên một
PAR A
R
xuất phát sẽ được tạo ra. Sau đó ở bước thứ 2 chúng ta tìm ra PAR A
R
*

bằng cách lần lượt tìm ra các cặp A
R
tối ưu hơn.
Đầu tiên, một PAR A
R
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à A
R
= (X
R
’ = X, Y
R
’ = ). Sau đó ta lần lượt chèn các ký tự y
j
Y, j = 1 …
|Y| vào Y
R
’ để tạo thành một PAR hoàn chỉnh. Ký tự y
j
được thêm vào vị trí sao
cho chi phí của A
R
mới là thấp nhất. Thuật toán được mô tả như sau :
Stepwise Addition Method
1 Y
R
← Ø
2 for j = 1 to |Y|
3 BestCost ← +∞, BestPosition ← nil
4 for each position p in Y
R
do
5 Insert y
j
into Y

R
at position p
6 A
R
← A
*
(X, Y
R
)
7 if C
R
(A
R
) < BestCost then
8 BestPosition ← p, BestCost ← C
R
(A
R
)
9 Remove y
j
from Y
R

10 end for
11 Insert y
j
into Y
R
at BestPosition

12 end for
13 Return A
R
= A
*
(X, Y
R
)
Page|19

 Bước thứ 2, chúng ta tìm cách từng bước một tối ưu hóa PAR A
R
hiện có,
tức là tìm cách giảm chi phí C
R
(A
R
). Để 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 A
R
(X
R
’, Y
R
’) ta định nghĩa một phép biến
đổi M(i, j, t | i ≤ j ≤ t-1) của chuỗi Y
R
= (y
1
, y

2
, …, y
p
) thu được sau khi loại bỏ
ký tự gap từ Y
R
là phép dịch chuyển đoạn (y
i
,…,y
j
) trong Y
R
đến vị trí t để thu
được một chuỗi không có ký tự gap mới Y
R
. 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í C
R
của PAR mới tạo được từ
X
R
và Y
R
tốt hơn chi phí của PAR A
R
cũ. Thuật toán được mô tả như sau:

Character Moving Method
1 Build an initial PAR A
R

= (X
R
’, Y
R
’) by stepwise addition method
2 iteration ← 0
3 repeat
4 positionMove ← false
5 foreach triple positions (i, j, t | i ≤ j < t-1)
6 if M(i, j, t) is a possible move then
7 Move character(y
i
, …, y
j
) in Y
R
to position t
8 possibleMove ← true
9 end if
10 end for
11 iteration ← iteration + 1
12 until possibleMove = false
13 return A
*
(X
R
, Y
R
)


Để tối ưu hóa một PAR A
R
, 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í y
i
và y
j
của chuỗi Y
R
thu được sau
khi loại bỏ ký tự gap từ Y
R
’. Một phép biến đổi được gọi có thể thực hiện được
nếu chi phí của A
R
mới giảm đi.
Page|20

Xét hai phép biến đổi S
1
(k
1
, t
1
) và S
2
(k
2
, t

2
) với k
1
< t
1
, k
2
< t
2,
k
1
< k
2
. Ta
nói 2 phép biến đổi này độc lập với nhau nếu k
2
> t
1
hoặc t
2
< t
1.
Thực nghiệm
cho thấy nếu ta đồng thời thực hiện hai phép biến đổi S
1
và S
2
độc lập với nhau
có thể sẽ tạo ra 1 PAR tốt hơn. Ngược lại nếu S
1

và S
2
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 S
1
(k
1
, t
1
) và S
2
(k
2
, t
2
) 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
1 Build an initial PAR A
R
= (X
R
’, Y
R
’) by stepwise addition method

2 iteration ← 0
3 bestCost ← 0
4 repeat
5 positionSwap ← false
6 Find independent possible swap L and sort L increasing ly
7 if |L| > 0 then
8 r ← L
9 repeat
10 swap simultaneous L
1
, …, L
R
in Y
R
to get Ÿ
R

11

Ä
R
← A
*
(X
R
, Ÿ
R
)
Page|21


12 if C
R

R
) < bestCost then
13 possibleSwap ← true
14 bestCost ←

C
R

R
), Y
R
← Ÿ
R

15

else r = r/2
16 until possibleMove = false
17 iteration ← iteration + 1
18 until possibleSwap = true
19 return A
*
(X
R
, Y
R
)


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” hoặc “Simulaneous Character
Swapping”.
Ở bước 1, nhìn vào phương thức “Stepwise addtion”, ta có thể thấy từ
dòng 5 đến dòng 9, độ phức tạp thời gian yêu cầu là O(pq) với p, q là độ dài của
hai chuối X và Y, độ ph
ức tạp thời gian yêu cầu từ dòng 4 cho đến dòng 10 sẽ là
O(pq
2
). Do vậy yêu cầu về độ phức tạp về thời gian trong bước này là O(pq
3
).
Ở bước 2, nếu ta sử dụng phương thức “Character Moving”, ta thấy yêu
cầu vê độ phức tạp thời gian từ dòng 5 đến dòng 10 sẽ là O(pq
4
). Vì vậy yêu cầu
về độ phức tạp thời gian nên sử dụng phương thứ này sẽ là O(pq
4
x iteration) với
iteration là số vòng lặp.
Ngược lại nếu ta sử dụng theo phương thức “Simulaneous character
swapping “, yêu cầu độ phức tạp thời gian trong trường hợp xấu nhất từ dòng 6
đến dòng 16 chỉ còn là O(pq
3
), độ phức tạp thời gian yêu cầu cho cả bài toán là
O(pq

3
) x iteration với iteration là số vòng lặp.


Page|22

2.3. Bắt cặp với những trình tự lớn

Như đã trình bày ở trên, thuật toán “Pairwise Alignment with
Rearrangement” yêu cầu về độ phức tạp thời gian tối thiếu là O(pq
3
) trong mỗi
vòng lặp. Điều này vẫn đến thuật toán gặp khó khăn khi áp dụng với những trình
tự lớn. Nghiên cứu của Đinh Ngọc Thắng đã đề xuất một phương thức mới :
“Fast Swapping”, giúp giảm độ phức tạp thời gian yêu cầu trong mỗi vòng lặp
xuống còn O(pq) [20].
Từ công thức (5) ta có chi phí C
R
(A
R
) bao gồm hai phần. Chi phí sắp hàng
giữa các ký tự (chèn, xóa, sửa) và chi phí sắp xêp lại thứ tự. Chi phí sắp xếp lại
thức tự R(X, X
R
) + R(Y, Y
R
) là một giá trị không âm và chỉ bằng 0 khi và chỉ khi
sau khi loại bỏ các ký tự gap ở X
R
và Y

R
ta thu được X và Y. Chi phí sắp hàng
giữa các ký tự C(X’, Y’) =
có thể được tính dễ dàng theo phương
thức quy hoạch động với độ phức tạp về thời gian là O(pq) (Xem phần 1.2).
Xét một phép đổi chỗ y
i

và y
j

, chi phí sắp hàng có thể dễ dàng được tính
lại với độ phức tạp thời gian yêu cầu là O(1) là :
C(X’, Y’) – [C(
) + C( )] + [C( ) + C( )] (7)
Trong “Fast Swapping” ta sử dụng 2 phép đổi chỗ để tối ưu hóa chi phí
C
R
(A
R
), trong đó cách đầu tiên (Single Swap) được dùng để tối ưu chi phí sửa
chữa, cách thứ 2 (Couple Swap) được sử dụng để tối ưu hóa chi phí sắp xếp lại.

Hình 4: Single Swap (trái) và Couple Swap (phải)

Single Swap là cách đổi chỗ hai ký tự bất kì của X’ hoặc Y’ trong khi
Couple Swap đổi chỗ các ký tự ở cả hai chuỗi cùng 1 lúc. Tức là Couple Swap
chính là thực hiện 2 phép đổi chỗ Single Swap cùng lúc trên cả hai chuỗi. Tuy
nhiên tác dụng của chúng là hoàn toán khác nhau. Trong khi Single Swap chủ
yếu làm thay đổi chi phí sửa chữa giữa các ký tự thì Couple Swap thay đổi chi

phí sắp xếp lại, trong khi chi phí sửa chữa giữa các ký tự vẫn được giữ nguyên.
Page|23

Một phép đổi chỗ được gọi là có thể thực hiện nếu nó làm cho chi phí
C
R
(A
R
) giảm xuống. Trong thủ tục dưới đây, đầu vào sẽ là một PAR xuất phát,
chừng nào còn tìm được một cách đổi chỗ có thể thực hiện thì ta sẽ tiến hành đổi
chỗ để tìm ra PAR mới tối uy hơn, cập nhật lại PAR. Quá trình này dừng lại khi
không có một phép đổi chỗ có thể thực hiện nào được tìm thấy.

Fast Swapping Method
1 iteration ← 0
2 while (true) do
3 iteration ← iteration + 1
4 for i = 1 to |X
R

| do
5 for j = 0 to |Y
R

| do
6 if have possible swap S in {S
X’
(i,j), S
Y’
(i,j), CS(i,j)} then

7 Perform S
8 if no swap performed then
9 break out of while loop
10 X
R
← gapless(X
R
’), Y
R
← gapless(X
R
’)
11 (X
R
’, Y
R
’) ← PairwiseAlignment(X
R
, Y
R
)
12 end while


13 return A
*
(X
R
, Y
R

)

Ta có một phép đổi chỗ chỉ yêu cầu thời gian là O(1). Như vậy nhìn vào
chương trình ta thấy từ dòng 4 đến dòng 7 độ phức tạp thời gian yêu cầu chỉ là
O(pq). Dòng thứ 11 khởi động thuật toán quy hoạch động để sắp hàng hai chuỗi
X
R
, Y
R
cũng chỉ cần yêu cầu thời gian là O(pq) (Xem phần 1.2) . Như vậy độ
phức tạp thời gian áp dụng phương thức này sẽ là O(pq x iteration) với iteration
là số lần chạy vòng while.


×