Thuật toán ngôi sao

Một phần của tài liệu Phân tích trình tự trong tin sinh học và ứng dụng trên cơ sở dữ liệu genome tôm sú (Trang 39 - 42)

Có nhiều thuật toán gần đúng với độ phức tạp tính toán khác nhau để giải quyết bài toán sắp hàng đa trình tự. Sau đây chúng ta tìm hiểu thuật toán Ngôi sao

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

(Star) [4] để giải quyết bài toán sắp hàng đa trình tự một cách gần đúng và đơn giản. Tƣ tƣởng chính thuật toán Ngôi sao nhƣ sau: Xuất phát từ một đa sắp hàng ban đầu chỉ gồm duy nhất một trình tự, gọi là trình tự trung tâm, thuật toán Ngôi sao sẽ lần lƣợt sắp hàng các trình tự còn lại vào đa sắp hàng hiện tại để thu đƣợc một đa sắp hàng mới lớn hơn (nhiều hơn một trình tự so với đa sắp hàng hiện tại). quá trình sắp hàng kết thúc khi đa sắp hàng hiện tại chứa tất cả n trình tự đầu vào.

Trình tự trung tâm trong thuật toán Ngôi sao đƣợc lựa chọn sao cho tổng mức độ giống nhau của nó với các trình tự khác là lớn nhất. Cụ thể là, với mỗi trình tự

1,...,

i n

X A X X , tổng mức độ giống nhau (mức độ trung tâm), kí hiệu là Center (Xi) , của Xi so với các trình tự khác đƣợc tính theo công thức sau:

,

,

i i j

j n j i

Center X f X X (2.8)

Trong đó, f X Xi, j là mức độ giống nhau giữa hai trình tự X Xi, j

Thuật toán Ngôi sao đƣợc mô tả nhƣ sau:

Thuật toán Ngôi sao (Star)

Dữ liệu vào: Tập A X1,...,Xn bao gồm n trình tự ADN

Yêu cầu: Sắp hàng các trình tự của tập A để thu đƣợc đa trình tự sắp hàng A với tổng điểm giống nhau là lớn nhất.

Dữ liệu ra: Đa trình tự sắp hàng A X1,...,Xn trong đó Xi là trình tự Xi sau khi đã đƣợc sắp hàng.

Thuật toán

Bước 1: Tìm trình tự trung tâm theo công thức 2.7. Không mất tính tổng quát, giả sử trình tự trung tâm tìm đƣợc là X1, nghĩa là:

Center X1 Max Center Xi ,i 1..n .

Gọi A X1 là sắp hàng hiện tại (chứa duy nhất trình tự trung tâm là X1 ) Bƣớc 2. Lần lƣợt sắp hàng các trình tự còn lại X2,...,Xn vào đa sắp hàng hiện tại A . Việc đƣa trình tự Xs vào đa sắp hàng A đƣợc thực hiện nhƣ sau:

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Bắt cặp trình tự Xsvới trình tự trung tâm đã đƣợc sắp hàng X1 (sử dụng thuật toán quy hoạch động nhƣ mô tả ở phần trên) để thu đƣợc bắt cặp

1

,

s

X X .

Chèn thêm các kí tự ' ' vào các trình tự đã đƣợc sắp hàng X2,...,Xs 1

thuộc A để thu đƣợc đa sắp hàng mới A X1,...,Xs chứa s trình tự. Quy tắc chèn các dấu ' ' vào các trình tự đã đƣợc sắp hàng X2,...,Xs 1 nhƣ sau: Nếu một dấu ' ' đƣợc chèn mới vào trình tự trung tâm X1 khi bắt cặp với Xs, thì một dấu ' ' cũng đƣợc chèn vào vị trí tƣơng ứng trên trình tự X2,...,Xs 1.

Đa sắp hàng A chứa n trình tự là kết quả sắp hàng n trình tự đầu vào A . (adsbygoogle = window.adsbygoogle || []).push({});

Ví dụ: Xét ba trình tự X X1, 2,X3 và ma trận điểm C nhƣ sau:

, 10

x x

C , (match score) với mọi nuclêôtít x.

, 1

x x

C , (mismatch score) với mọi nuclêôtít x.

,x x, 2

C C , (indel score) với mọi nuclêôtít x.

. 1 2 3 4 5 6 7 8 Điểm trung tâm

X1 A A T T T T T T 104

X2 T T T T T T G G 80

X3 G G A A T T T T 80

Bước 1 : Tìm trình tự trung tâm.

Điểm giống nhau giữa các cặp trình tự:

1, 2 52

f X X , f X X1, 3 52, f X2,X3 28

Điểm trung tâm của các trình tự là:

1 1, 2 1, 3 104 Center X f X X f X X 2 2, 1 2, 3 80 Center X f X X f X X 3 3, 1 3, 2 80 Center X f X X f X X

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Vậy X1 là trình tự trung tâm vì điểm trung tâm của nó lớn nh ất.

Bước 2: Sắp hàng các trình tự

Sắp hàng trình tự X2 với trình tự trung tâm X1 thu đƣợc bắt cặp sau đây:

. 1 2 3 4 5 6 7 8 9 10

X1 A A T T T T T T

X2 T T T T T T G G

B ắt cặp trình tự X3 với trình tự X1 ta thu đƣợc bắt cặp sau đây:

. 1 2 3 4 5 6 7 8 9 10 11 12

X1 A A T T T T T T

X3 G G A A T T T T (adsbygoogle = window.adsbygoogle || []).push({});

Lưu ý: do X1 trƣớc khi bắt cặp với X3 có thể chứa các dấu ' ', cho nên bắt cặp giữa X1 và X3 có thể chứa một số cột chứa hai d ấu ' ' (cột 11 và 12 trong ví dụ trên). Chèn thêm các dấu ' ' vào trình tự X2 tại ví trí cột 1 và 2 để thu đƣợc sắp hàng của ba trình tự X X1, 2,X3 nhƣ sau:

. 1 2 3 4 5 6 7 8 9 10 11 12

X1 A A T T T T T T

X2 T T T T T T G G

X3 G G A A T T T T

Độ phức tạp thuật toán Ngôi sao bao gồm độ phức tạp tìm trình tự trung tâm và độ phức tạp sắp hàng các trình tự còn lại với đa sắp hàng hiện tại. Độ phức tạp của bƣớc tìm trình tự trung tâm là 2 2

O n k với k là độ dài của trình tự. Độ phức tạp để sắp hàng một trình tự mới với đa sắp hàng hiện tại là 2

O k nk , vậy độ phức

tạp của Bƣớc 2 là 2 2

O n k nk O nk n k . Vậy tổng độ phức tạp của thuật toán Ngôi sao là 2 2 2 2 2 2

O n k nk n O n k . Với độ phức tạp này, thuật toán Ngôi sao có thể sắp hàng các tập dữ liệu lớn với hàng nghìn trình tự.

Một phần của tài liệu Phân tích trình tự trong tin sinh học và ứng dụng trên cơ sở dữ liệu genome tôm sú (Trang 39 - 42)