.3 Các đột biến xác định khi gióng hàng 2 trình tự –v

Một phần của tài liệu (LUẬN văn THẠC sĩ) ứng dụng thuật toán burrows wheeler transform trong quá trình giải mã hệ gen lúa tại việt nam (Trang 27)

2.1.4 Phân loại bài tốn gióng hàng trình tự

Bài tốn gióng hàng trình tự được phân làm 2 loại : gióng hàng tồn cục và gióng hàng cục bộ :

+ Phép so sánh trình tự theo hướng tồn cục: Phép tốn so sánh được áp dụng trên tồn bộ chuỗi trình tự. Thường được sử dụng khi các trình tự so sánh có kích thước gần

Ví dụ: So sánh tổng thể cả chuỗi (toàn cục) L G S S K Q T G K G S - R I T D

| | | | | | |

L N - Y K S A G K G A I R L G D

+Phép so sánh trình tự theo hướng cục bộ: Phép toán so sánh được sử dụng trên một phần của chuỗi trình tự. Thường được sử dụng khi các trình tự có chiều dài lớn, độ tương đồng giống nhau khơng cao, chỉ có một số ít các gen giống nhau trên 2 trình tự, hoặc khi 2 trình tự có kích thước khác biệt lớn

Ví dụ: So sánh cục bộ một đoạn chuỗi(cục bộ) A G A A C C T G C G A - R A T G | | | |

T G - G A

Phương pháp giải bài tốn gióng hàng trình tự theo hướng cục bộ áp dụng cho bài toán con : Short Read Alignment – là bài tốn gióng hàng số lượng lớn các đoạn trình tự (read) vào hệ gen tham chiếu (reference Sequence)

Các phần tiếp theo của chương hai giới thiệu một số thuật toán cơ bản giải quyết bài tốn gióng hàng trình tự và trọng tâm của chương sẽ giới thiệu thuật toán Burrows – Wheeler Tranform (BWT) có ưu điểm nổi trội cho dạng bài tốn gióng hàng trình tự theo hướng cục bộ nói trên.

2.2 Một số thuật tốn cơ bản cho bài tốn gióng hàng trình tự 2.2.1 Thuật toán ma trận điểm

Thuật toán ma trận điểm nhằm giải quyết bài tốn gióng hàng trình tự khá đơn giản và là thuật toán áp dụng giải bài tốn gióng hàng trình tự tồn cục. Thuật toán được ra đời năm 1970 bởi Gibbs và G.A.McIntyre (Gibbs and McIntyre 1970) để so sánh hai trình tự nucleotide và trình tự axit amin.

Bài toán: Cho hai chuỗi S1 và S2. Từ đó tạo ra hai chuỗi S1‟ và S2‟ sao cho có độ tương đồng cao nhất.

- Input:

Hai chuỗi S1, S2. Ma trận F.

-Output:

Hai chuỗi S1‟, S2‟ có độ tương đồng cao nhất.

THUẬT TOÁN:

Bước 1. Thiết lập bảng ơ vng và chép trình tự một chuỗi theo hàng và một chuỗi theo cột dọc vng góc với nhau.

Bước 2. Đánh dấu vào tất cả các ô vuông tương ứng cùng với một nucleotide, dùng thước kẻ nối tất cả các ô được đánh dấu liền kề nhau theo chiều đường chéo phía góc trên bên trái kẻ xuống để xác định đoạn chuỗi tương đồng.

VÍ DỤ MINH HỌA:

Bƣớc 1: Tạo ma trận với một chuỗi là hàng và một chuỗi là cột G A G T A G A A A C C G G T A G T C A C G T A G G T C C A G G T G T C

Bƣớc 2: G A G T A G A A A C C G G T A G T C A x x x X x x C x x x G x x x x x x T x x x A x x x X x x G x x x x x x G X x x x x x T x x x C x x x C x x x A x x x X x x G x x x x x x G x x x x x x T x x x G x x x x x x T x x x C x x x

Bƣớc 3: G A G T A G A A A C C G G T A G T C A x x x X x x C x x x G x x x x x x T x x x A x x x X x x G x x x x x x G X x x x x x T x x x C x x x C x x x A x x x X x x G x x x x x x G x x x x x x T x x x G x x x x x x T x x x C x x x

Từ ma trận điểm nhận được kết quả S1‟, S2‟ theo mô tả sau:

Như vậy, nhận được chuỗi S1‟, S2‟ có sự đột biến xảy ra tại các vị trí 1 ( G -> A), vị trí 2 (A -> G), vị trí 8 (A -> T), vị trí 9 (A -> C), vị trí 11 (A -> C). Có sự mất 1 nucleotide tại vị trí 15.

Ưu điểm: Phương pháp này cho phép phát hiện sự có mặt của các dạng mất đoạn hoặc thêm đoạn giữa hai trình tự.

Phương pháp này nó thể hiện một số đặc điểm, chẳng hạn sự tương đồng giữa các nhiễm sắc thể, các vùng lặp lại trong trình tự protein, các trình tự bổ sung trong RNA mà có thể dẫn đến hình thành cấu trúc bậc 2.

2.2.2 Thuật tốn quy hoạch động Smith-Waterman

Thuật toán Smith-Waterman là một thuật toán quy hoạch động dùng để tìm kiếm cơ sở dữ liệu phát triển bởi TF.Smith và MS.Waterman vào năm 1981 và dựa trên một mơ hình thích hợp trước đó có tên Needleman và Wunsch.

Đặc điểm: Thuật toán Smith-Waterman là thuật tốn gióng cặp chuỗi cục bộ

dựa trên quy hoạch động để tính điểm cho q trình gióng chuỗi.

Ý nghĩa: Giải thuật này giúp nhận ra những miền tương đồng giữa hai chuỗi tìm

kiếm cho gióng chuỗi cục bộ tối ưu hơn.

Giải thuật xây dựng trên ý tưởng so sánh tìm ra những đoạn hay những miền của hai chuỗi mà có độ tương đồng cao nhất, để từ đó đánh giá mức độ tương đồng giữa hai chuỗi.

Q trình gióng chuỗi được thực hiện bởi việc gióng chuỗi từng cặp trong 2 chuỗi. Khi đó điểm cho gióng chuỗi từng cặp ký tự phụ thuộc vào hai ký tự là giống nhau (matches), hai ký tự không giống nhau (mismatches) và điểm cho việc thêm/bớt khoảng trống (gap penalty). Kết quả của gióng cặp cục bộ là tìm ra được những đoạn trong 2 chuỗi có độ tương đồng cao nhất.

trận được kí hiệu là Fij. Điểm đánh giá cho việc sắp trình tự được đặc trưng bằng ma trận thay thế S, trong đó:

S(i,j) là điểm tương đồng giữa hai kí tự i và j.

d là một điểm phạt tuyến tính cho các gap (gap penalty). Trục hồnh là các kí tự của chuỗi S1 (có chiều dài n). Trục tung là các kí tự của chuỗi S2 (có chiều dài m).

THUẬT TOÁN Input:

+ 2 chuỗi S1, S2 với chiều dài tương ứng là n, m + Ma trận thay thế S

+ Điểm phạt tuyến tính (Gap penalty) d

Output:

2 chuỗi tương đồng S1‟,S2‟

Bước 1: Khởi tạo

+ F(0,0) =0

+ F(i,0) =0 0≤ i ≤ m + F(0,j) =0 0≤ j ≤ n

Bước 2: Điền giá trị vào ma trận

+ Tính F(i,j) theo cơng thức: {

Bước 3: Tìm ơ (i_max,j_max) có điểm cao nhất.

(0≤ i ≤ m,0≤ j ≤ n)

Bước 4: Traceback

Truy vết: Xuất phát từ ô (i_max, j_max), đến khi gặp F(i, j) = 0 thì dừng

theo quy tắc sau:

F(i-1,j-1) + S(i,j) thì vết (i, j) -> (i-1, j-1) đi theo đường chéo F(i-1,j)+d thì vết (i, j) - > (i-1, j) đi lui

F(i,j-1)+d thì vết (i, j) -> (i, j-1) đi lên

Tạo chuỗi S1’, S2’: Song song với quá trình lưu vết, chuỗi kết quả S1‟, S2‟ được tạo theo quy tắc sau:

Vết (i, j) -> (i-1, j-1): Thêm S1(i) vào S1‟ và thêm S2(j) vào S1‟ Vết (i, j) -> (i-1, j): Thêm „-“ vào S1‟ và thêm S2(j) vào S2‟ Vết (i, j) -> (I, j-1): Thêm S1(i) vào S1‟ và thêm „-„ vào S2‟

Chuỗi S1‟, S2‟ nhận được là 2 chuỗi tương đồng cần tìm. Nếu F(i,j) = {

Ví dụ minh họa.

S1 = “GTCAGAATCGT” S2 =”GTACAGTAGT”

Bước 1: Khởi tạo.

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

Bước 2: Điền giá trị vào ma trận theo công thức

F(i,j)=Max(0, F(i-1,j-1) + S(i,j), F(i-1,j)+d, F(i,j-1)+d) Cho Match = 2 , Mismatch= -1, d= -1

G T C A G A A T C G T 0 0 0 0 0 0 0 0 0 0 0 0 G 0 2 1 0 0 2 1 0 0 0 2 1 T 0 1 4 3 2 1 1 0 2 1 1 4 A 0 0 3 3 5 4 3 3 2 1 0 3 C 0 0 2 5 4 4 3 2 2 4 3 2 A 0 0 1 4 7 6 6 5 4 3 3 2 G 0 2 1 3 6 9 8 7 6 5 5 4 T 0 1 4 3 5 8 8 7 9 8 7 7 A 0 0 3 3 5 7 10 10 9 8 7 6 G 0 2 2 2 4 7 9 9 9 8 10 9 T 0 1 4 3 3 6 8 8 11 10 9 12

Bước 3: Tìm ơ (i_max,j_max) có điểm cao nhất G T C A G A A T C G T 0 0 0 0 0 0 0 0 0 0 0 0 G 0 2 1 0 0 2 1 0 0 0 2 1 T 0 1 4 3 2 1 1 0 2 1 1 4 A 0 0 3 3 5 4 3 3 2 1 0 3 C 0 0 2 5 4 4 3 2 2 4 3 2 A 0 0 1 4 7 6 6 5 4 3 3 2 G 0 2 1 3 6 9 8 7 6 5 5 4 T 0 1 4 3 5 8 8 7 9 8 7 7 A 0 0 3 3 5 7 10 10 9 8 7 6 G 0 2 2 2 4 7 9 9 9 8 10 9 T 0 1 4 3 3 6 8 8 11 10 9 12

Bước 4: Traceback G T C A G A A T C G T 0 0 0 0 0 0 0 0 0 0 0 0 G 0 2 1 0 0 2 1 0 0 0 2 1 T 0 1 4 3 2 1 1 0 2 1 1 4 A 0 0 3 3 5 4 3 3 2 1 0 3 C 0 0 2 5 4 4 3 2 2 4 3 2 A 0 0 1 4 7 6 6 5 4 3 3 2 G 0 2 1 3 6 9 8 7 6 5 5 4 T 0 1 4 3 5 8 8 7 9 8 7 7 A 0 0 3 3 5 7 10 10 9 8 7 6 G 0 2 2 2 4 7 9 9 9 8 10 9 T 0 1 4 3 3 6 8 8 11 10 9 12

Quá trình truy vết ta nhận được:

S1’ = “G T – C A G A A T C G T” S2’ = “G T A C A G - - T A G T”

khỏi tình trạng tối ưu cục bộ là ngẫu nhiên nên có thể thuật tốn sẽ khơng tìm ra được lời giải tốt trong một số lần chạy (phụ thuộc vào việc ấn định các tham số đầu vào).

2.3 Thuật toán Burrows – Wheeler Tranform (BWT )

Số lượng lớn các đoạn trình tự read được tạo ra bởi cơng nghệ đọc trình tự thế hệ mới đã dẫn tới sự phát triển của hàng loạt các thuật toán nhằm giải quyết bài tốn gióng hàng trình tự một cách nhanh chóng, chính xác và ngày càng hiệu quả. Bài tốn Short Read Alignment – bài tốn gióng hàng số lượng lớn các đoạn trình tự „ read „ vào hệ gen tham chiếu được giải quyết bởi thuật tốn cơ bản Smith – Waterman đã được trình bày ở phần trước. Tuy nhiên, với thuật toán Smith – Waterman khi ứng dụng gióng hàng trên số lượng lớn n read (lên tới hàng triệu read) với một hệ gen reference thì số lượng bài toán phải giải là n bài toán. Vượt trội so với thuật toán Smith – Waterman, năm 1994, hai nhà toán học Burrows M và Wheeler D giới thiệu thuật toán Burrows-Wheeler Transform (BWT). BWT đã thành công trong việc giải quyết bài toán Short Read Alignment với tốc độ nhanh và đòi hỏi yêu cầu dung lượng bộ nhớ thấp. Khi áp dụng BWT, hệ gen tham chiếu sẽ được tính tốn và tìm ra 1 chuỗi chuyển đổi BWT. Việc gióng hàng số lượng lớn read trên hệ gen tham chiếu tương đương với tính tốn vị trí của read trên chuỗi chuyển đổi BWT đã có. Khi đó tốc độ, thời gian tìm kiếm được giảm thiểu đáng kể và khối lượng read lên tới hàng triệu hay nhiều hơn nữa cũng không ảnh hưởng đáng kể đến tốc độ tìm kiếm. Với thuật toán Smith – Waterman, số lượng vị trí sai khác khơng được hạn chế, từ đó dẫn đến việc gióng hàng

BWT có thể được phát biểu lại là bài tốn tìm kiếm vị trí xuất hiện của xâu kí tự W trong chuỗi tham chiếu X với tổng số vị trí sai khác (mismatch/ gap) khơng q z vị trí.

Thuật tốn BWT cho bài tốn tìm kiếm xâu kí tự W trong chuỗi tham chiếu X được phát biểu chung thành 2 giai đoạn :

Giai đoạn 1 : Xây dựng chuỗi chuyển đổi BWT dựa trên chuỗi tham chiếu X. Giai đoạn 2 : Quá trình tìm kiếm xâu kí tự W trong X dựa vào chuỗi chuyển đổi

BWT.

Trong các phần tiếp theo trong mục giới thiệu thuật toán BWT, tác giả sẽ lần lượt trình bày từng phần trong hai giai đoạn trên để giải bài toán. Giai đoạn 1 bao gồm nội dung chuyển đổi BWT thuận (mã hóa X thành chuỗi chuyển đổi BWT) và chuyển đổi BWT nghịch (giải mã chuỗi BWT thành chuỗi X ban đầu). Giai đoạn 2 bao gồm thuật tốn tìm kiếm chính xác (exact matching) và thuật tốn tìm kiếm có giới hạn số vị trí sai khác dựa vào chuỗi chuyển đổi BWT (Inexac matching).

2.3.1 Chuyển đổi Burrows-Wheeler thuâ ̣n

Input: Văn bản X gồm n kí tự X[1..n]. trên một bảng chữ cái Σ gồm |Σ| kí tự. Output: Chuỗi chuyển đổi BWT

Chuyển đổi thuâ ̣n về bản chất liên quan đến việc sắp xếp tất cả các phép quay của xâu đầu vào , nhóm các ký tự xuất hiện trong các ngữ cảnh tương tự la ̣i với nhau . Từng bước xác định chuỗi chuyển đổi BWT được thực hiện như sau:

Bƣớc 1: Thêm kí tự “$” làm kí tự kết thúc của xâu

Bƣớc 2: Xâu cần mã hóa được dịch chuyển vịng trịn và tạo thành một ma

trận L*L (với L là độ dài xâu kí tự)

Bƣớc 3: Sắp xếp lại các dòng của ma trận theo thứ tự từ điển

Bước 1: Thêm kí tự “$” vào làm kí tự kết thúc xâu. Ta được X‟ = “ATGTAC$” Bước 2: Dịch chuyển vòng xâu X‟ để nhận được 1 ma trận L * L (L là độ dài xâu)

Bước 3: Sắp xếp lại các dòng của ma trận theo thứ tự từ điển

Hình 2.6 Chuỗi BWT Thu được bằng cách sắp xếp ma trận L * L theo thứ tự từ điển

Cột cuối của ma trận (kí hiệu L) là chuỗi chuyển đổi BWT cần tìm

BWT(“ATGTAC$”) = “CT$ATGA”

Bước 4: Trích xâu từ các kí từ cuối ở mỗi dịng, thơng báo xâu này và cho biết từ gốc là thứ tự thứ mấy trong ma trận nhận được ở bước 2.

Ta có kết quả („CT$ATGA‟,4). Xâu CT$ATGA chính là xâu để thực hiện tìm kiếm trong các bước tiếp theo.

Tuy nhiên, thay vì sử dụng không gian O (n2) để lưu trữ ma trận L * L như đã đươ ̣c đề xuất thì ta có thể tạo ra một mảng R[1. . . n] tham chiếu đến các xâu đã được quay trongvăn bản đầu vào T.

Khởi tạo R[i]=i với i = (1, n) để biểu diễn danh sách chưa được sắp xếp . Sau đó nó được sắp xếp bằng cách sử dụng xâu con bắt đầu tại T[R[i]] như là khóa so sánh.

xuất hiện trước đó).

Ƣu điểm: Sự phân cụm này làm cho quá trình tìm kiếm trở nên tập trung theo

từng kí tự và trở nên dễ dàng hơn

Nhƣơ ̣c điểm: Do chuyển đổi Burrows Wheeler làm việc theo phương pháp từng

khới (block-wise), vì vậy nó khơng thể xử lý văn bản theo từng ký tự một , mà phải đọc một khối (thường là hàng chu ̣c KB ) và sau đó nén nó . Điều này khơng có mô ̣t giới hạn với hầu hết các mục đích, nhưng khơng loa ̣i trừ mơ ̣t sớ ứng du ̣ng phải xử lý dữ liệu xen chương trình chạy (on-the-fly) khi nó đến. Mục đích quan trọng khác là văn bản phải được săp xếp.

Trong suốt luâ ̣n văn này, ta giả thiết viê ̣c sắp thứ tự duy nhất trên các ký tự hoă ̣c các biểu tượng trong văn bản để các xâu con có thể được so sánh bằng các thuậtto án sắp xếp.

Ngoài ra một nhược điểm lớn của phương pháp trên là dung lượng bộ nhớ tốn kém khi phải lưu trữ và sắp xếp ma trận xoay vịng L*L. Văn bản X càng có độ dài lớn thì phương pháp trên càng không khả thi khi thực hiện trên thực tế. Do vậy phương pháp trên đã được cải tiến như sau:

Phƣơng pháp cải tiến:

Bƣớc 1: Cho xâu ban đầu là X. Điền kí tự “$” vào cuối xâu X

Bƣớc 2: Xâu nhận được được hoán vị xoay vịng, đồng thời xóa các kí tự sau kí tự

“$” trong mỗi xâu mới nhận được.

Bƣớc 3: Thực hiện sắp xếp lại các chuỗi nhận được theo thứ tự chữ cái.

X[SA[i] – 1] nếu SA[i] > 0

“$” nếu SA[i] = 0

Ví dụ: X = “agcagcagact”

Bƣớc 1: Thêm kí tự “$” vào cuối xâu X, ta nhận được: X = “agcagcagact$

Bƣớc 2: Xâu nhận được được hốn vị xoay vịng, đồng thời xóa các kí tự sau kí tự “$”

trong mỗi xâu mới nhận được.

Bƣớc 3,4 : Sắp xếp lại các chuỗi nhận được theo thứ tự từ điển. Nhận được mảng SA[]

Hình 2.9 Tính chuỗi chuyển đổi BWT

Như vậy, phương pháp cải tiến để tính tốn chuỗi chuyển đổi BWT tối ưu hơn về mặt thời gian chạy cũng như không gian nhớ.

2.3.2 Chuyển đổi Burrows-Wheeler nghi ̣ch Input: Chuỗi chuyển đổi BWT của văn bản X Input: Chuỗi chuyển đổi BWT của văn bản X Output: Khôi phục lại văn bản X ban đầu

thường hai mảng chỉsố O (n) sẽ cần thiết , cộng với hai mảng O (|Σ|) để đếm các ký tự trong đầu vào. Có nhiều cách để thực hiện viê ̣c giải mã.

Thuật toán chuyển đổi nghịch được thực hiện qua các bước đơn giản như sau: Bước 1: Lấy các kí tự trong xâu cuối cùng , sắp xếp lại theo thứ tự từ điển Bước 2: (Lặp)

- Lấy các kí tự ở xâu cuối cùng, thêm vào các xâu đã có. - Sắp xếp lại theo thứ tự từ điển

Hình 2.10 Minh họa việc giải mã BWT xâu „CT$ATGA‟

Thuật toán kết thúc khi xâu nhận được có đủ độ dài L và xâu văn bản đầu vào là văn bản nhận được cuối cùng khi có kí tự kết thúc “$”. Theo ví dụ trên, văn bản đầu vào tìm được là xâu “ATGTAC$” ở vị trí thứ 2.

Mã giả của phương pháp giải mã:

Def inverseBWT(s):

B = [s1, s2, s3, …., sn]

For I = 1 …n:

Input: Xâu kí tự W, văn bản X

Output: vị trí xuất hiện của xâu W trong văn bản X

Phân tích ví dụ sau: Tìm kiếm những vị trí xuất hiện của chuỗi kí tự W = “gca” trong chuỗi X = “agcagcagact”

B1: Lấy chuỗi kí tự BWT theo phương pháp đã hướng dẫn ở phần trên: Ví dụ:

+ Chuỗi gốc ban đầu: X = “agcagcagact”

Một phần của tài liệu (LUẬN văn THẠC sĩ) ứng dụng thuật toán burrows wheeler transform trong quá trình giải mã hệ gen lúa tại việt nam (Trang 27)

Tải bản đầy đủ (PDF)

(80 trang)