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
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
42 trang |
Chia sẻ: netpro | Lượt xem: 1599 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Khóa luận 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
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” 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(pq2). Do vậy yêu cầu về độ phức tạp về thời gian trong bước này là O(pq3).
Ở 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(pq4). 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(pq4 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(pq3), độ phức tạp thời gian yêu cầu cho cả bài toán là O(pq3) x iteration với iteration là số vòng lặp.
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(pq3) 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í CR(AR) 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, XR) + R(Y, YR) 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 ở XR và YR 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ỗ yi’ và yj’, 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í CR(AR), 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.
Một phép đổi chỗ được gọi là có thể thực hiện nếu nó làm cho chi phí CR(AR) 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
iteration ← 0
while (true) do
iteration ← iteration + 1
for i = 1 to |XR’| do
for j = 0 to |YR’| do
if have possible swap S in {SX’(i,j), SY’(i,j), CS(i,j)} then
Perform S
if no swap performed then
break out of while loop
XR ← gapless(XR’), YR ← gapless(XR’)
(XR’, YR’) ← PairwiseAlignment(XR, YR)
end while
return A*(XR, YR)
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 XR, YR 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.
Chương 3. Full Genome Alignment
3.1. Xây dựng hệ thống
Thuật toán “Pairwise Alignment with Rearrangement” [23] tuy đã sắp hàng được hoàn toàn hai hệ gen, tuy nhiên nhược điểm của nó chỉ có thể bắt cặp với những hệ gen đã được chia sẵn. Vấn đề đặt ra là khi đưa vào một hệ gen mới bất kỳ, chúng ta phải tiến hành xác định những đoạn gen trong đó để tiến hành sắp hàng các đoạn gen. Điều này đòi hỏi phải khi đưa vào hai hệ gen của hai sinh vật bất kỳ, phải tìm cách chia các hệ gen thành nhiều đoạn gen con liên tiếp sao cho khi sắp hàng với nhau chúng tạo được những cặp gen có độ tương đồng cao, tức là những cặp gen có nhiều khả năng là được biến đổi và tiến hoá từ cùng một đoạn gen trong hệ gen tổ tiên chung xa xưa của chúng.
Như đã trình bày ở phần đầu, một số chương trình sắp hàng hệ gen hiện có tập trung vào việc tìm kiếm những vùng gen tương đồng trên hai hệ gen như MUAVE[1], SLAGAN[5] và nổi bật là BLASTZ[18]. Với những cải tiến độc đáo của mình, BLASTZ có khả năng tìm kiếm những vùng gen có độ tương đồng cao một cách tương đối tốt và với thời gian chấp nhận. Trong khóa luận này, em xây dựng lên một hệ thống bắt cặp hệ gen hoàn chỉnh, dựa trên ý tưởng sử dụng BLASTZ như một bước tiền xử lý trước khi áp dụng thuật toán “Pairwise Alignment with Rearrangement”, qua đó khắc phục được nhược điểm hiện có của phương pháp này. Cụ thể chúng ta sẽ sử dụng những vùng tương đồng mà BLASTZ nhận dạng được để tiến hành chia cắt hệ gen thành những đoạn gen ngắn liên tiếp, tạo thành đầu vào cho chương trình “Pairwise Alignment with Rearrangement” với “Fast Swapping” [20], trong quá trình này vấn đề cần lưu ý là phải tiến hành loại bỏ các đoạn trùng lặp, lựa chọn và giữ lại các cặp gen có độ tương đồng cao hơn.
Để xác định các biến đổi về điểm cũng như tính toán khoảng cách giữa các đoạn gen. Thuật toán “Pairwise Alignment with Rearrangement”, sử dụng phương pháp bắt cặp trình tự theo thuật toán quy hoạch động của Needleman – Wunsch [16]( Xem phần 1.2). Trong hệ thống này, em sẽ sử dụng thay thế bằng một phương pháp khác sử dụng thuật toán quy hoạch động được đưa ra bởi Gotoh “Optimal Alignment with Linear space” [9] và có sự cải tiến dựa trên nhận xét của Ukkonen[22]. Phương pháp mới này cho phép tính toán khoảng cách giữa các đoạn gen chính xác và hợp lý hơn so với phương pháp cũ của Needleman – Wunsch.
Chương trình gồm những bước cụ thể như sau:
Đầu vào là hai hệ gen hoàn chỉnh bất kỳ.
Sử dụng chương trình BLASTZ để xác định và bắt cặp những vùng ADN tương đồng.
Tiến hành tách từng hệ gen thành một dãy các đoạn ADN thành phần nhỏ liên tục dựa vào các vùng có độ tương đồng cao xác định được bởi BLASTZ.
Dựa trên thuật toán Gotoh và nhận xét của Ukkonen, xây dựng chương chình bắt cặp trình tự. Áp dụng để sắp hàng từng cặp ADN thành phần trong hai hệ gen, xác định các phép biến đổi ở mức độ điểm (thay thế, chèn, xóa).
Sắp hàng toàn bộ hệ gen, xác định các biến đổi ở mức độ gen bằng thuật toán Pairwise Alignment with Rearrangement với Fast Swapping..
Đầu ra đưa ra danh sách nhưng cặp gen đã được sắp hàng, trong đó chỉ rõ những sự biến đổi ở mức độ điểm ở từng cặp gen. Cho biết thông tin về các đoạn gen đã bị dịch chuyển, bị đảo ngược, tồn tại ở hệ gen này nhưng không tồn tại ở hệ gen kia. Sắp hàng hoàn chỉnh hai hệ gen.
3.2. Giới thiệu về BLASTZ
BLASTZ là phương pháp tìm kiếm các đoạn ADN tương đồng được phát triển bởi nhóm Miller thuộc trường Đại học Pennsylvania Hoa Kỳ. Nó được áp dụng thành công trong việc bắt cặp giữa hai hệ Gen Người và Chuột [18]
3.2.1. Tính năng của BLASTZ
BLASTZ sử dụng 3 chiến lược đã được sử dụng bởi Gapped BLAST [3] đó là:
Tìm kiếm những cặp đoạn ngắn ADN rất giống nhau ở cả hai hệ gen được gọi là hạt giống (seed).
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
Tiến hành tiếp tục mở rộng các cặp ADN ở bước 2 lại với nhau để tạo ra những cặp ADN lớn hơn bằng cách cho phép chèn thêm gap. Việc mở rộng đảm bảo chi phí không vượt quá một ngưỡng nhất định.
Tuy nhiên so với Gapped BLAST và các chương trình sắp hàng hệ gen khác, BLASTZ có những ba sự cải tiến quan trọng. Trước tiên, BLASTZ sử dụng một cách tính điểm bắt cặp được đánh giá bởi Chiromonte [6]. Theo đó thay vì chi phí sắp hàng gồm chi phí thay thế và chi phí sắp hàng chính xác chỉ là một giá trị chung với tất cả các nucleotide thì trong BLASTZ chi phí sắp hàng các nucleotide được cho bởi ma trận sau :
A
C
G
T
A
91
-114
-31
-123
C
-114
100
-125
-31
G
-31
-125
100
-114
T
-123
-31
-114
91
Bảng 1: Ma trận trọng số của BLASTZ
Chi phí chèn – xóa các ký tự gap được cho bởi một hàm tuyến tính. Việc chèn – xóa k ký tự gap liên tiếp sẽ phải chụi một điểm phạt là 400 + 30k.
Hai thay đổi tiếp theo giúp cải tiến đáng kể tốc độ thực hiện và độ nhay của BLASTZ trong việc bắt cặp toàn bộ bộ gen. Thứ nhất là việc loại bỏ những đoạn trùng lặp. Ví dụ khi chương trình nhận ra rằng nhiều khu vực trong một bộ gen của chuột được sắp hàng với cùng một phân khúc trong bộ gen của người, chương trình sẽ tự động đánh dấu để nó được bỏ qua trong các bước sau của quá trình bắt cặp. Cải tiến này giúp BLASTZ không bắt cặp những đoạn ADN trùng nhau – những đoạn ADN có thể được nhân lên trong quá trình biến đổi và tiến hóa. Thứ hai BLASTZ áp dụng một ý tưởng thông minh của Ma [15] trong việc xác định các đoạn ngắn gần giống nhau ban đầu (seed). Ma đề xuất việc tìm kiếm trong 19 nucleotide liên tiếp, trong đó 12 nucleotide được chỉ định bằng 1 trong chuỗi 1110100110010101111 là giống hệt nhau. Để tăng độ nhạy, BLASTZ còn cho phép 1 vị trí bất kỳ trong 12 vị trí ở trên được phép có một sự thay thế giữa các cặp nucleotide tương đồng (A – G, G – A, C – T, T – C)
3.2.2. Chương trình BLASTZ
Chương trình BLASTZ được cài đặt theo năm bước chính.
Bước 1 thực hiện tìm kiếm và đánh dấu các đoạn giống nhau bị lặp lại ở cả hai trình tự (Repeat Finding)
Bước 2 tiến hành tìm kiếm các cặp hạt giống (seed) có độ tương đồng cao ở cả hai hệ gen, trong bước này BLAST sử dụng độ tương đồng 12of19 được đề xuất bởi Ma[15]. Ngoài ra cho phép có 1 sự thay thế giữa các cặp nucleotide ở 1 vị trí bất kỳ trong 12 vị trí ở trên.
Bước 3 BLASTZ sẽ tiến hành mở rộng các cặp seed tìm được. Quá trình mở rộng này được thực hiện như sau:
Lần lượt mở rộng các cặp seed về hai phía, không cho phép chèn gap. Quá trình mở rộng dừng lại khi chi phí phạt vượt quá một ngưỡng cho phép (X).
Nếu điểm số sắp hàng cặp ADN thu được đạt mức K cho trước. Tiếp tục tiến hành mở rộng cặp ADN lần lượt về 2 phía với việc cho phép chèn gap. Quá trình mở rộng tiến hành cho đến khi chi phí phạt vẫn chưa vượt quá ngưỡng cho phép (Y)
Giữ lại các đoạn ADN có điểm số sắp hàng đạt một mức cho trước (L).
Bước 4 là thực hiện ghi nhận lại vị trí các đoạn tương đông tìm được sao cho phù hợp với 2 hệ gen ban đầu.
Bước 5 là tiến hành điều chỉnh lại kết quả cho phù hợp với các tùy chọn. Cuồi cùng, BLASTZ có 1 tùy chọn cho phép việc đảo ngược một hệ gen rồi tiến hành sắp hành lại với hệ gen còn lại. Việc này cho phép tìm kiếm các đoạn tương đồng trong trường hợp 1 đoạn gen bị đảo ngược.
BLASTZ xây dưng một hệ thống tùy chọn, cho phép người dùng thay đổi các tham số của chương trình phù hợp với mục đích của người sử dụng.
3.3. Optimal Alignment with Linear space
“Pairwise Alignment with Rearrangement” sử dụng thuật toán quy hoạch động của Needleman – Wunsch [16] (Xem phần 1.2) để tính toán trọng số khoảng cách giữa các đoạn gen đồng thời xác định những biến đổi về điểm. Thuật toán “Pairwise Alignment” của Needleman – Wunsch có những hạn chế nhất định khi nó chỉ có thể làm việc khi mà chi phí chèn – xóa gap là một trọng số cố định. Trên thực tế trong quá trình tiến hóa khi xóa bỏ những đoạn ADN liên tiếp, việc xóa nucleotide đầu tiên bao giờ cũng khó khăn hơn rất nhiều so với các nucleotide tiếp theo. Do đó hàm chi phí cho việc xóa – chèn những đoạn gap liên tiếp bao giờ cũng là một hàm tuyết tính w(k) = a + bk cho việc xóa k nucleotide liên tiếp trong đó w(k) < kw(1)
Vì vậy, trong chương trình mới, chúng ta tiến hành thay thế thuật toán “Pairwise Alignment” đơn giản của Needleman – Wunsch bằng thuật toán “Optimal Alignment with Linear space” của Gotoh[9].
Trong thuật toán này Gotod đưa ra các định nghĩa sau:
dAB( Ai , Bj ) là chi phí bắt cặp giữa hai đoạn Ai và Bj trong đó Ai được sắp hàng với Bj.
dA- ( Ai , Bj ) là chi phí bắt cặp giữa hai đoạn Ai và Bj trong đó Ai được sắp hàng với kí tự gap
d-B ( Ai , Bj ) là chi phí bắt cặp giữa hai đoạn Ai và Bj trong đó Bj được sắp hàng với kí tự gap
Với w(Ai, Bj) là chi phí khi sắp hàng ký tự Ai và ký tự Bj. w(k) = a +bk là chi phi chèn – xóa k ký tự ta có công thức quy hoạch động:
dAB( Ai, Bj ) = min (dAB( Ai-1, Bj-1 ), dA-( Ai-1, Bj-1 ), d-B( Ai-1, Bj-1 ) ) + + w( Ai, Bj )
dA- ( Ai, Bj ) = min(dAB( Ai-1, Bj ) + a, dA-(Ai-1, Bj ), d-B( Ai-1, Bj) + a)+ b
d-B ( Ai,Bj ) = min(dAB( Ai, Bj-1 ) + a, dA-(Ai, Bj-1) + a, d-B( Ai, Bj-1 ) )+ b
Chi phí tối ưu để bắt cặp hai trình tự A và B là giá trị nhỏ nhất trong ba giá trí dAB(A, B), dA-(A, B) và d-B(A, B).
Thuật toán Gotoh có độ phức tạp về thời gian là O(n2) và yêu cầu không gian bộ nhớ là O(n2). Do vậy có tồn tại một số khó khăn khi làm việc với những chuỗi có độ dài lớn. Trong chương trình của mình, em đưa thêm một số cải tiến để giải quyết vấn đề này.
Thứ nhất, áp dụng nhận xét của Ukkonen cho việc bắt cặp những trình tự gần giống nhau, Ukkonen chỉ ra rằng khi bắt cặp những trình tự gần giống nhau, chỉ có khu vực quanh đường chéo chính là được sử dụng. [22] Do vậy chúng ta sử dụng thêm 1 barrier trong quá trình quy hoạch động để giảm thời gian thực hiện chương trình. Áp dụng nhận xét này cho thuật toán Gotoh, độ phức tạp giời gian giảm xuống O(dm) với d là khoảng cách độ dài giữa hai trình tự, m là độ dài của trình tự ngắn hơn.
Hình 5:Sắp hàng trình tự với Ukkonen Barrier [13]
Thứ hai, trong quá trình quy hoạch động theo thuật toán Gotod, giá trị của 1 hàng chỉ được tính dựa vào 1 hàng trước nó, do vậy ta có thể sử dụng 2 mảng một chiều để thay thế cho 1 hàng hai chiều. Như vậy có thể giảm không gian bộ nhớ xuống chỉ còn O(n)
Chương trình cụ thể như sau :
Optimal Alignment with Linear space
1 barrier = |X| - |Y| + pairwiseBarrier
2 for i=1 to |Y| do
3 d2n[0] = maxInt
4
Các file đính kèm theo tài liệu này:
- Sắp hàng hoàn chỉnh hai hệ genome.doc