ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN HOÀNG ANH NGHIÊN CỨU THUẬT TOÁN TÌM KIẾM CHUỖI DNA SỬ DỤNG PHƯƠNG PHÁP TÌM KIẾM TƯƠNG TỰ NHANH Ngành: Hệ thống thông tin Chuyên ng
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN HOÀNG ANH
NGHIÊN CỨU THUẬT TOÁN TÌM KIẾM CHUỖI DNA SỬ DỤNG PHƯƠNG PHÁP TÌM KIẾM TƯƠNG
TỰ NHANH
LUẬN VĂN THẠC SĨ HỆ THỐNG THÔNG TIN
HÀ NỘI – 2016
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN HOÀNG ANH
NGHIÊN CỨU THUẬT TOÁN TÌM KIẾM CHUỖI DNA SỬ DỤNG PHƯƠNG PHÁP TÌM KIẾM TƯƠNG
TỰ NHANH
Ngành: Hệ thống thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60 48 01 04
LUẬN VĂN THẠC SĨ HỆ THỐNG THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: Tiến sĩ Nguyễn Thị Hậu
HÀ NỘI – 2016
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan nội dung của luận văn “Nghiên cứu thuật toán tìm kiếm chuỗi DNA sử dụng phương pháp tương tự nhanh” là sản phẩm do tôi thực hiện
dưới sự hướng dẫn của TS Nguyễn Thị Hậu Trong toàn bộ nội dung của luận văn,những điều được trình bày hoặc là của cá nhân hoặc là được tổng hợp từ nhiềunguồn tài liệu Tất cả các tài liệu tham khảo đều có xuất xứ rõ ràng và được tríchdẫn hợp pháp
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quyđịnh cho lời cam đoan của mình
Hà Nội, ngày 20 tháng 9 năm 2016
TÁC GIẢ
Nguyễn Hoàng Anh
Trang 4Một lần nữa tôi xin được gửi lời cảm ơn đến tất cả các thầy cô giáo, bạn bè vàgia đình đã giúp đỡ tôi trong thời gian vừa qua Tôi xin kính chúc các thầy cô giáo,các anh chị và các bạn mạnh khỏe và hạnh phúc.
Hà Nội, ngày 20 tháng 9 năm 2016
TÁC GIẢ
Nguyễn Hoàng Anh
Trang 5MỤC LỤC
LỜI CAM ĐOAN 3
LỜI CẢM ƠN 4
DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT 7
GIỚI THIỆU 8
CHƯƠNG 1 TỔNG QUAN VỀ CÁC THUẬT TOÁN TÌM KIẾM CHUỖI DNA 13
1.1 Phương pháp tìm kiếm chuỗi DNA sử dụng mô hình Markov ẩn 13
1.2 Phương pháp liên kết nhạy cảm đầy đủ 15
1.3 Phương pháp tìm kiếm tương tự nhanh 21
1.4 Phương pháp sử dụng mô hình phù hợp gần đúng 25
1.5 Phương pháp sử dụng mô hình kết hợp chính xác và gần chính xác 31
CHƯƠNG 2 N-GRAM VÀ PHƯƠNG PHÁP TÌM KIẾM CHUỖI TƯƠNG TỰ NHANH ÁP DỤNG N-GRAM 35
2.1 Mô hình N-Gram 35
2.1.1 Một số khái niệm 35
2.1.2 Mô hình ngôn ngữ N-gram 36
2.1.3 Khó khăn khi xây dựng mô hình ngôn ngữ N-gram : 37
2.1.4 Các phương pháp khắc phục cụm N-Gram phân bố không đều 38
2.2 Phương pháp tương tự nhanh áp dụng N-gram tìm kiếm chuỗi DNA 39
2.2.1 Phân đoạn DNA 39
2.2.2 Các “từ DNA” 40
2.2.3 Quá trình tìm kiếm chuỗi và hiển thị kết quả 40
2.3 Bảng kết quả các lần thử phương pháp tìm kiếm chuỗi tương tự nhanh áp dụng N-Gram 48
2.3.1 Định dạng chuỗi cơ sở dữ liệu 48
Trang 62.3.2 Bảng kết quả các lần thử phương pháp tìm kiếm chuỗi tương tự nhanh áp dụng
N-Gram 50
2.4 Đánh giá phương pháp tìm kiếm chuỗi tương tự nhanh áp dụng N-Gram51 2.4.1 Cải thiện thời gian tìm kiếm 51
2.4.2 Tiết kiệm bộ nhớ trong quá trình tìm kiếm 52
CHƯƠNG 3 THỰC NGHIỆM SO SÁNH PHƯƠNG PHÁP TÌM KIẾM TƯƠNG TỰ NHANH DỰA TRÊN N-GRAM VỚI PHƯƠNG PHÁP BLAST VÀ PHƯƠNG PHÁP SMITH-WATERMAN 53
3.1 Môi trường thực nghiệm 54
3.2 Thực nghiệm đánh giá phương pháp tìm kiếm tương tự nhanh áp dụng N-Gram với phương pháp BLAST và phương pháp Smith-Water Man 56
3.3 Phân tích và đánh giá kết quả thực nghiệm 58
KẾT LUẬN 60
TÀI LIỆU THAM KHẢO 62
Trang 7DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT
SNP Single nucleotide polymorphisms Tính đa hình của phân tử
nucleotit Mỗi SNP biểu diễn một biến đổi trong mộtkhối chuỗi DNA
BLAST Basic Local Alignment Search
Tool
Công cụ tìm kiếm cục bộtheo mẫu có sẵn
HTS High – Throughput Sequencing Trình tự chuỗi đa lượng
7
Trang 8GIỚI THIỆU
Việc phát hiện ra DNA là một bước ngoặt lớn trong khoa học sinh học nóiriêng và cuộc sống của con người nói chung Hiện nay, các nhà khoa học đã tìm rarất nhiều cấu trúc DNA và giải thích được nhiều câu hỏi về di truyền ở các loài,các căn bệnh, dị tật di truyền, khoa học hình sự,… và ngày càng phát hiện thêm rấtnhiều cấu trúc DNA mới, điều đó đã và đang tạo ra một khối lượng khổng lồ dữliệu các chuỗi gen phục vụ cho y sinh học hiện đại Kích thước dữ liệu ngày càngtăng đặt ra vấn đề về chi phí cho không gian lưu trữ và tốc độ truy cập, truyền tải.DNA (DeoxyriboNucleic Acid) là tên hóa học chỉ các phân tử mang cấu trúc gentrong tất cả các thực thể sống DNA gồm một chuỗi được tạo nên từ 4 loại đơn vịnucleotide, mỗi loại gồm: 1 đơn vị đường carbon 5 (2’-deoxyribose), 1 nhóm phốtphát (phosphate) và 1 trong 4 thành phần cơ bản Adenine, Cystosine, Guanine vàThymine gọi là các bazơ Mỗi phân tử đường được gắn với ¼ thành phần cơ bản.Mỗi thành phần cơ bản là 1 base Số lượng base ở người là khoảng 3 tỷ, đó là con
số vô cùng lớn Dạng đơn giản nhất của DNA trong 1 tế bào là 1 cấu trúc dây xoắnđôi, trong đó 2 sợi DNA đơn xoắn quanh nhau theo hình xoắn ốc thuận tay phải
Bộ gen của con người gồm khoảng 3 tỉ đặc trưng trên 23 cặp nhiễm sắc thể (NST)
Do đó, cơ sở dữ liệu hệ gen là vô cùng lớn và phức tạp Để lưu trữ, truy cập và xử
lý dữ liệu này một cách hiệu quả là một nhiệm vụ rất khó khăn DNA có chức năngchính là lưu trữ, bảo quản và truyền đạt thông tin di truyền về cấu trúc và toàn bộcác loại protein của cơ thể sinh vật, do đó quy định các tính trạng của cơ thể sinhvật
DNA có chức năng chính là lưu giữ truyền đạt và bảo quản thông tin ditruyền giữa các thế hệ Có rất nhiều ứng dụng từ việc tìm kiếm chuỗi DNA cảtrong khoa học và đời sống con người, chẳng hạn như:
Sự di truyền trí thông minh: Các nhà khoa học tiến hành lấy mẫu (có thể lấy là tế bào máu, niêm mạc miệng, tế bào má, tóc có chân, móng tay, móng chân,
cuống rốn sau khi rụng ) và nghiên cứu chuỗi gen của những người có chỉ sốthông minh cao, sau đó tìm ra những đặc điểm chung Tiến hành nghiên cứu trêntập lớn các mẫu để xác định các chuỗi gen quyết định trí thông minh Từ đó có thểứng dụng vào sinh học, y học cho con người Qua nghiên cứu cụ thể, các nhà khoahọc nhận thấy rằng, 75% trí thông minh của con người do gen quyết định [1]
Trang 9 Kiểm tra quan hệ cùng huyết thống: Phương pháp này hiện nay được ứngdụng phổ biến trong đời sống thường được gọi là xét nghiệm DNA Xét nghiệmDNA là một lĩnh vực đòi hỏi độ chính xác cao Mỗi kết quả của một xét nghiệmDNA huyết thống có thay đổi cuộc sống của một hoặc nhiều người, do vậy cầnphải đảm bảo việc xét nghiệm được thực hiện chính xác nhất có thể Tất cả các quátrình tư thu mẫu, tách chiết DNA, phân tích DNA và đọc kết quả đều được làm vàkiểm soát theo một quy trình chuẩn, từ đó các kết quả có độ chính xác và ổn địnhcao nhất Thông thường, có thể lấy hai mẫu xét nghiệm của hai người (hoặc sinhvật khác) từ tóc, tế bào trên da, mẫu máu… Sau đó xét nghiệm các chuỗi gen xem
có độ tương đồng cao hay không Thông thường nếu các mẫu DNA của mẹ, con và
bố nghi vấn khớp với nhau trong từng gene thì độ chính xác có quan hệ huyếtthống là 99.9999% có thể kết luận hai mẫu gen có cùng huyết thống [2]
Phát hiện các loại gen gây bệnh: Bác sỹ lấy mẫu máu từ các bệnh nhân bịbệnh, tìm kiếm các bắt cặp trình tự có độ tương đồng cao Sau đó, so sánh các bắtcặp trình tự cao đó với mẫu gen của người bình thường để xem các điểm khác nhaucủa các mẫu gen đó Từ đó đưa ra kết luận về các mẫu gen có thể gây bệnh Tậphợp các mẫu gen có thể gây bệnh đưa vào cơ sở dữ liệu để làm mẫu gen thử chocác lần nghiên cứu sau
Khoa học hình sự: Các điều tra viên lấy các mẫu (tóc, máu, da…), dấu vết tại hiện trường Sau đó, mang đi giám định Tiếp theo, tiến hành so sánh với
án kêu gọi được nhiều nguồn tài chính lên tới 5 triệu đô la Mỹ [3]
Trang 10 Lý thuyết tiến hóa: Các nhà sinh vật tiến hành lẫy mẫu gen từ các sinhvật hóa thạch So sánh với mẫu gen của các loài có hình thù, độ lớn, màu sắc, cácsinh
vật nghi ngờ cùng loài… Nếu các mẫu gen của các loài đó giống nhau hoặc có mức
độ tương đồng cao có thể kết luận các sinh vật đó cùng loài hoặc tiến hóa từ mứcthấp lên mức cao hơn [4]
………
Đặc trưng phức tạp của một chuỗi DNA nằm ở chỗ đó là một chuỗi các chỉ
số độ dài khác nhau biểu diễn một phạm vi có thể dự đoán được của các thànhphần cơ bản cấu tạo nên DNA Những đặc trưng phức tạp này cho phép tìm kiếmnhững cấu trúc lặp bên trong một nhiễm sắc thể hoặc qua nhiều nhiễm sắc thể Vàcũng chính những đặc trưng này được sử dụng để tìm ra khoảng cách tiến hóa vàcấu trúc nên cây phát sinh loài Nên khó có thể đưa ra 1 thuật toán tối ưu để tìmkiếm, giải trình tự các đoạn DNA hiệu quả nhất Nhiều thuật toán tìm kiếm dànhriêng cho chuỗi DNA đã được phát triển từ khoảng 30 năm trước
Hiện nay, kỹ thuật tìm kiếm dữ liệu chuỗi DNA được sử dụng rộng rãi trongsinh học Có hàng trăm thuật toán đã được đề xuất cho tìm kiếm dữ liệu DNAnhưng nhìn chung các thuật toán tìm kiếm thường được sử dụng là:
Phương pháp áp dụng Mô hình Markov ẩn[5] là phương pháp sử dụng môhình thống kê, tính toán xác suất Thuật toán dùng phương pháp mô hình hóa quátrình tìm kiếm chuỗi trong đó có sử dụng các tham số quan sát được và các tham sốkhông biết trước – mô hình Markov Sau đó sẽ xác định các tham số không biếttrước từ các tham số quan sát được Các tham số của mô hình được rút ra sau đó cóthể sử dụng để thực hiện các phân tích kế tiếp Phương pháp này đã được sử dụngrộng rãi trong tin sinh học tuy nhiên chi phí thời gian lớn và các hàm tính toánphức tạp
Phương pháp liên kết nhạy cảm đầy đủ: Vd: thuật toán Smith&Waterman[6]Phương pháp này được sử dụng để tìm sự giống nhau hoặc có độ tương đồng caocủa hai chuỗi Bằng cách lập ma trận, tính độ đo để tìm ra sự giống hoặc có độtương đồng cao của tất cả độ dài các phân đoạn của hai xâu, hai chuỗi protein hoặcnucleotide Với chuỗi đã được tìm kiếm và có độ tương đồng cao trước đó, phươngpháp có thể mở rộng phạm vi tìm kiếm về hai phía (trước hoặc sau) Phương phápnày có ưu điểm là độ chính xác cao Tuy nhiên chi phí thời gian lớn Phương pháp
Trang 11 Phương pháp sử dụng mô hình phù hợp gần đúng: Vd: Bowtie[8] (là kỹthuật tìm kiếm chuỗi phù hợp với một mô hình gần đúng (chứ không phải là chínhxác) Vấn đề phù hợp được hiểu thành hai ý: tìm kiếm chuỗi phù hợp gần đúng vớicác phân đoạn một chuỗi cho trước và tìm kiếm chuỗi từ điển gần đúng với mẫucần truy vấn Mô hình này sử dụng cách tiếp cận brute-force để tính “độ chỉnh sửa”chuỗi mẫu sao cho gần đúng với tất cả các chuỗi con của chuỗi cần truy vấn, sau
đó chọn các chuỗi với “độ chỉnh sửa” tối thiểu Tuy nhiên, thuật toán này sẽ cóthời gian chạy O(n3m) Ở đây m là độ dài chuỗi mẫu, n là độ dài chuỗi cần truyvấn.)
Phương pháp sử dụng mô hình kết hợp chính xác và gần chính xác: Vd:mpscan[9] Phương pháp sử dụng mô hình đánh dấu tập mẫu, tức là chia chuỗi cầntruy vấn thành các chuỗi mẫu con nhỏ với chiều dài cố định Sau đó, so sánh cácchuỗi con đã được chia đó với chuỗi trong cơ sở dữ liệu để tìm kiếm sự tươngđồng, có thể thực hiện xử lý đồng thời nhiều mẫu Phương pháp này thường đượcdùng và rất có hiệu quả trong việc tìm kiếm một tập lớn các chuỗi DNA ngắn trongmột CSDL các chuỗi DNA Phương pháp điển hình của dạng này là Mpscan.Chương trình của Mpscancó thể đọc được bản đồ ngay trên giao diện Có khả năngtìm kiếm ngược, bổ sung mẫu Tuy nhiên, thời gian thực hiện ở mức độ trungbình) Là công cụ đánh dấu tập mẫu đạt hiệu quả chính xác cao cho việc giải trình
tự DNA
Trong khuôn khổ luận văn, người viết chỉ trình bày một số thuật toán tiêu biểucho từng phương pháp đã nêu và hầu hết các phương pháp đều nhằm các mục đíchchính đó là tìm kiếm, giải trình tự chuỗi DNA nhanh và chính xác nhất có thể đểtiết kiệm không gian lưu trữ, bộ nhớ, đưa ra kết quả cũng như truy cập thông tin
Trang 12nhanh chóng Trong khuôn khổ bài viết này, người viết chỉ nêu một số phươngpháp tìm kiếm cơ bản và đưa ra phương pháp tìm kiếm mới với mong muốn cảithiện tốc độ tìm kiếm một chuỗi DNA trong một cơ sở dữ liệu chuỗi có sẵn
Bố cục luận văn được chia thành 3 chương Chương 1 trình bày về tổng quancác phương pháp sử dụng để tìm kiếm chuỗi DNA Thuật toán tìm kiếm cụ thể màngười viết tập trung nghiên cứu là thuật toán tìm kiếm chuỗi DNA sử dụng phươngpháp tìm kiếm tương tự nhanh áp dụng N-Gram được trình bày ở chương 2.Chương 3 của luận văn mô tả môi trường thực nghiệm so sánh thuật toán tương tựnhanh áp dụng N-gram với phương pháp tìm kiếm khác và một số phân tích đánhgiá của người viết về kết quả đạt được Cuối cùng là kết luận về hiệu quả cũng nhưhạn chế còn tồn tại và hướng phát triển trong tương lai cho việc nghiên cứu và cảitiến phương pháp tìm kiếm chuỗi DNA
Trang 131.1 Phương pháp tìm kiếm chuỗi DNA sử dụng mô hình Markov ẩn
Mô hình Markov ẩn được bắt đầu xây dựng và công bố từ những năm 1960, đây
là mô hình toán học về thống kê, tính toán xác suất Nhiều năm sau đó (1980) môhình được bắt đầu được nghiên cứu để ứng dụng trong lĩnh vực nhận dạng Thuậttoán tìm kiếm chuỗi sử dụng mô hình Markov ẩn dùng phương pháp mô hình hóaquá trình tìm kiếm chuỗi trong đó có sử dụng các tham số quan sát được và cáctham số không biết trước – mô hình Markov Sau đó sẽ xác định các tham sốkhông biết trước từ các tham số quan sát được Các tham số của mô hình được rút
ra sau đó có thể sử dụng để thực hiện các phân tích kế tiếp Với mô hình Markov
ẩn cấu trúc mô hình có thể thay đổi dễ dàng cho phù hợp với từng ứng dụng cụ thể
Phương pháp tìm kiếm chuỗi DNA sử dụng mô hình Markov ẩn
Thuật toán:
Cho 2 chuỗi:
Chuỗi quan sát: x = x1x2 xL.
Chuỗi so sánh: y = y1y2 yL, (ở mỗi vị trí xn thì có tương ứng yn )
Xn là số vị trí của giá trị có thể từ tập quan sát O = {O1O2, ,ON}
Yn nhận giá trị từ tập trạng thái S = {1,2, ,M} N và M biểu thị vị trí quan sát và
số lượng các trạng thái trong mô hình
Cho chuỗi trạng thái ẩn xuất hiện đồng thời trong chuỗi Markov Điều này cónghĩa là trạng thái đầu vào j sau sẽ phụ thuộc vào trạng thái i trước đó Trạng tháinày có thể sẽ không đổi
P{y n +1=j|y n =i, y n −1=i n −1, ,y 1 =i 1 }=P{y n +1=j| y n =i}=t(i,j)
Trang 14với mọi i, j ∈ S và n≥1 [5]
Trang 15Các trạng thái chuyển từ trạng thái i sang trạng thái j gọi là trạng thái chuyểntiếp Gọi hàm chuyển tiếp là t(i,j) Trạng thái bắt đầu Y1 có thể ở bất kỳ i ∈ S Ở vịtrí quan sát xn=x có thể chỉ phụ thuộc vào trạng thái yn Do vậy:
P{x n =x|y n =i,y n −1,x n −1, }=P{x n =x|y n =i}=e(x|i) [5]
Với mọi x ∈ O, mọi i ∈ S, và mọi n ≥ 1; e(x|i) là hàm giá trị x tạo ra tại trạng
Trang 16Với
P{x|y,Θ}=e(x1|y1)e(x2|y2)e(x3|y3) e(x L |y L)
P{y|Θ}=π(y1)t(y1,y2)t(y2,y3) t(y L −1,y L)
Như vậy dựa vào mô hinh khi biết chuỗi trạng tháivà đầu vào ta có thể biết đượcchuỗi quan sát
Ví dụ minh họa cho mô hình Markov ẩn:
Hình 1.1: Mô hình Markov ẩn [5]
a Sắp xếp các chuỗi ban đầu.
Trang 17b Mô hình Markov ẩn (bỏ khoảng trống giữa các trạng thái).
c Mô hình hóa sự liên kết theo Mô hình Markov ẩn
Mô hình Markov ẩn hiệu quả cho mô hình hóa thông tin về các chuỗi liên kết,phù hợp cho các cấu trúc chuỗi mẫu vì mô hình này có cấu trúc trái sang phảituyến tính mà không chứa bất kỳ chu kỳ nào Mô hình sử dụng ba loại trạng thái:ẩn(delete), quan sát được(insert) và kết quả(match)
Ví dụ: Việc so sánh hai chuỗi sinh học theo Mô hình Markov ẩn sẽ sắp xếp cácchuỗi dựa trên sự giống nhau, tính toán số điểm liên kết của chúng, và đánh giá cácliên kết thống kê được Tuy nhiên, để tìm ra sự liên kết tốt giữa các trình tự, chúng
ta phải đưa ra được một bảng xếp hạng dựa trên sự giống nhau của các chuỗi Căn
cứ vào bảng này, chúng ta có thể chọn các liên kết nhằm tối đa hóa điểm số liênkết
Hình 1.2 Ví dụ về mô hình cặp HMM [5]
Mô hình cặp -HMM tạo ra cặp liên kết chuỗi Hai chuỗi DNA x và z đượcđồng thời tạo ra bởi các cặp-HMM, các dãy trạng thái cơ bản là y Các trạng thái yxác định chỉ 1 liên kết duy nhất giữa x và z
Ưu điểm: Phương pháp này đã được sử dụng rộng rãi trong tin sinh học vì độ
chính xác cao Cách mô hình hóa dễ sử dụng
Nhược điểm: Chi phí thời gian lớn và các hàm tính toán phức tạp.
1.2 Phương pháp liên kết nhạy cảm đầy đủ
Phương pháp này được sử dụng để tìm sự giống nhau hoặc có độ tương đồngcao của hai chuỗi Bằng cách lập ma trận, tính độ đo để tìm ra sự giống hoặc có độ
Trang 18tương đồng cao của tất cả độ dài các phân đoạn của hai xâu, hai chuỗi protein hoặcnucleotide Với chuỗi đã được tìm kiếm và có độ tương đồng cao trước đó, phươngpháp có thể mở rộng phạm vi tìm kiếm về hai phía (trước hoặc sau) Phương phápnày có ưu điểm là độ chính xác cao Tuy nhiên chi phí thời gian lớn Phương phápđặc trưng của dạng này là phương pháp Smith & Waterman do hai nhà khoa họcT.F.Smith & M.S.Waterman công bố năm 1981 [6] Hiện nay, do những cải tiến vềmáy tính và thuật toán tìm kiếm, phương pháp này có thể tìm kiếm đồng thời nhiềuchuỗi cùng lúc khoảng (1000 chuỗi) [18]
Thuật toán Smith & Waterman
Thuật toán Smith-Waterman là một thuật toán quy hoạch động dùng để tìmkiếm cơ sở dữ liệu phát triển bởi T.F Smith và M.S 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 Thuật toán
sử dụng bảng ma trận để đánh giá sự tương đồng của hai chuỗi Tìm kiếm lần lượt
từ đầu đến cuối trong hai chuỗi xem mức độ tương đồng ở mức nào (tương đồnghoặc không tương đồng) Với các mức độ tương đồng khác nhau sẽ có những chỉ
số độ đo khác nhau
Đặc điểm của thuật toán Smith-Waterman là thuật toán so sánh các cặp chuỗicục bộ dựa trên quy hoạch động để tính điểm cho quá trình so sánh.Giải thuật nàygiú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 Smith-Waterman thực hiện so sánh đối xứng ở dạng cục
bộ, khác với giải thuật so sánh đối xứng toàn cục (ví dụ: Needleman- Wunsch),giải thuật sắp hàng hay so sánh đối xứng cục bộ chỉ thực hiện việc so sánh đốixứng trên một số phần của các trình tự được so sánh
Độ tương tự s(a,b) được đưa ra bởi các cặp (a,b) Để tìm cặp tương đồng (a,b) talập ma trận H Đặt:
H kO = H oL , = 0 for 0 ≤ k ≤ n and 0 ≤ l ≤ m [6]
Hij thể hiện mức độ tương đồng của ai,bj Hij được tính bằng công thức:
Hij=max{Hi-1,j-1 + s(ai,bj).max(Hi-k,j - wk}.max{ Hi,j-l - wl},0} (1)
k≥1 l≥1
với l ≤ i ≤ n và l ≤ j ≤ m [6]
Công thức Hij tính bởi các giá trị ở cuối các đoạn tại bất kỳ giá trị ai và bj nào.(1) Nếu ai và bj có liên kết, độ tương tự tính như sau:
Trang 19Hi-1,j-1 + s(ai.bj)(2) Nếu ai tại vị trí cuối của dãy xóa k, độ tương tự tính bằng công thức
Hi-k,j - Wk(3) Nếu bj là vị trí cuối của vị trí xóa có độ dài l, độ tương tự xác định bởi
Hi-k,j – Wl(4) Giá trị 0 đã bao gồm biểu thị cho mức độ không tương đồng, nó chỉ rarằng mức độ không tương đồng cho đến giá trị ai và bj
Giá trị H càng cao thì mức độ tương đồng của Hij càng lớn Đầu tiên ta tìm chỉ
số cao nhất của ma trận Sau đó, duyệt ngược trở lại Ta sẽ tìm được mức độ tươngđồng của 2 chuỗi cần chọn
Thuật toán:
- Đầu vào : Hai chuỗi S1 và S2 với chiều dài tương ứng là n, m Ma trận thay thếS.Gap d
Đầu ra : Hai chuỗi S1’, S2’
Bước 1 : Khởi tạo :
+ H(0,0) = 0
+ H(i,0) = 0 0 ≤ i ≤ m
+ H(0,j) = 0 0 ≤ j ≤ n
Bước 2 : Điền giá trị vào ma trận Tính H(i, j) theo công thức
H(i, j) = MAX (0, H(i-1,j-1) + S(i,j), H(i-1,j)+d, H(i,j-1) + d) (1) [6]Mỗi khi tính H(i, j) lưu lại chỉ số của số hạng ở vế phải (1)
Bước 3 : Tìm ô (i_max, j_max) có điểm cao nhất (0 i m, 0 j n)
Bước 4 : Quay lại bước 2
Xuất phát từ ô (i_max, j_max).Dựa vào những chỉ số đã lưu ở bước 2 để tìm giátrị cho đến khi gặp ô H(i,j) = 0 thì dừng
Nếu đường đi theo chiều ngang hay từ ô (i,j-1) sang ô (i,j) thì thêm “-“ vào S2’
Trang 22Ví dụ về ma trận thực hiện so sánh chuỗi của Smith & Waterman:
Hình 1.3 Bảng ma trận độ đo trong ví dụ 2 chuỗi của Smith & Waterman [2]
Chuỗi A-A-U-G-C-C-A-U-U-G-A-C-G-G
và chuỗi C-A-G-C-C-U-C-G-C-U-U-A-G
Ở hình 1.3 chỉ số (3-3) là chỉ số cao nhất của ma trận Duyệt theo đường chéo,lấy giá trị cao nhất Nếu có giá trị thấp, xét các vùng lân cận để lấy chỉ số cao.Duyệt ngược trở lại Lấy giá trị cao nhất Lặp lại bước này Cuối cùng ta có độtương đồng của 2 chuỗi là:
-G-C-C - U-C-G-
-G-C-C-A-U-U-G-Ưu điểm: Do phải duyệt và so sánh lần lượt thứ tự từng nucleotide nên phương
pháp này có độ chính xác cao
Trang 23Nhược điểm: Chi phí thời gian lớn do phải lập ma trận đánh giá mức độ tương
đồng, lập chỉ số so sánh giá trị của các phần tử trong ma trận của các chuỗi Thuậttoán cũng phải so sánh các giá trị ở chuỗi mẫu với chuỗi dữ liệu
1.3 Phương pháp tìm kiếm tương tự nhanh
Phương pháp này sử dụng giải thuật so sánh chuỗi cần truy vấn với CSDLchuỗi có sẵn dựa trên việc đánh giá chuỗi cơ sở dữ liệu với chuỗi truy vấn theo mộtngưỡng nhất định (đánh giá, cho điểm theo chỉ số cụ thể) Dựa vào bảng kết quảđánh giá, sẽ đưa ra kết quả về mức độ tương đồng của hai chuỗi Mặc dù có thờigian xử lý nhanh nhưng phương pháp này có độ chính xác không bằng phươngpháp liên kết nhạy cảm đầy đủ Thuật toán điển hình của phương pháp này làBLAST (hiện nay phương pháp BLAST được dùng rất phổ biến và có nhiều biếnthể để so sánh với từng trường hợp cụ thể)
Thuật toán BLAST
BLAST ban đầu tìm kiếm các chuỗi con ngắn với chiều dài cố định có tínhtương tự cao Sau đó, dựa vào kết quả trước, mở rộng phạm vi tìm kiếm để tìmnhững bắt cặp trình tự có điểm số cao giữa chuỗi truy vấn và các chuỗi trong cơ sở
dữ liệu Ở thuật toán bắt cặp trình tự tối ưu của Smith-Waterman, phương pháp đó
sẽ rất chậm khi tìm kiếm trong một cơ sở dữ liệu gen quá lớn như Ngân hàng Gen
(GenBank) Giải thuật BLAST dùng một hướng tiếp cận heuristic, dù ít chính xác
hơn Smith-Waterman nhưng lại cho tốc độ nhanh hơn Tốc độ và sự chính xáctương đối của BLAST là những cải tiến kĩ thuật quan trọng của các chương trìnhBLAST và những điều đó cho thấy lí do vì sao công cụ này lại là công cụ tìm kiếmphổ biến nhất trong tin sinh học.[7]
Đầu vào:
- Chuỗi truy vấn (chuỗi đích)(Định dạng ở dạng FASTA hoặc Genbank)
- Cơ sở dữ liệu chuỗi (Định dạng ở dạng FASTA hoặc Genbank)
Trang 24Đầu ra:
- Những bắt cặp trình tự có điểm số cao khi so sánh chuỗi truy vấn với CSDLchuỗi Kết quả có thể ở các định dạng khác nhau như: HTML, văn bản, XML…VD: Ở trang chủ của NBCI định dạng đầu ra ở dạng HTML
BLAST sẽ tìm kiếm các chuỗi con trong chuỗi truy vấn giống với các chuỗicon trong cơ sở dữ liệu chuỗi Thông thường, khi sử dụng, chuỗi truy vấn là nhỏhơn rất nhiều so với cơ sở dữ liệu, ví dụ: chuỗi truy vấn có thể chỉ gồm 1 nghìnnucleotide trong khi cơ sở dữ liệu chuỗi có hàng tỉ nucleotide Thuật toán củaBLAST có 2 phần, một phần tìm kiếm và một phần đánh giá thống kê dựa trên kếtquả tìm được
Thuật toán tìm kiếm của BLAST bao gồm 3 bước sau:
B
ư ớ c 1 : Chương trình sẽ tìm kiếm các chuỗi con ngắn với chiều dài cố định L
có tính tương tự cao (không cho phép khoảng trống gaps) giữa chuỗi truy vấn và
các chuỗi trong cơ sở dữ liệu Những chuỗi con với chiều dài L được BLAST gọi
là một “từ” Thông thường chương trình chọn giá trị một “từ” cho Protein là 3 vàDNA là 11 Những chuỗi con này được đánh giá và cho điểm dựa trên ma trận thaythế (Substitutions matrix) BLOSUM hoặc PAM, những chuỗi con nào có số điểm
lớn hơn một giá trị ngưỡng V (threshold value) thì được gọi là tìm thấy và được
BLAST gọi là Hit Ví dụ, khi cho sẵn các chuỗi GATTAG và FCATAC và một
“từ” có chiều dài L = 3, BLAST sẽ xác định chuỗi con TAG và TAC với số điểm
theo ma trận PAM là 3 + 2 + 3 = 8 và gọi chúng là một Hit [7]
B
ư ớ c 2 : BLAST tiếp tục tìm kiếp những cặp Hit tiếp theo dựa trên cơ sở những
Hit đã tìm được trong bước 1 Những cặp Hit này được BLAST giới hạn bởi mộtgiá trị cho trước d, gọi là khoảng cách giữa những Hit Những cặp Hits có khoảngcách lớn hơn d sẽ bị BLAST bỏ qua Giá trị d phụ thuộc vào độ dài L ở bước 1,(VD: L = 2 thì có thể chọn d = 18)
Trang 25ước 3 : Cuối cùng BLAST mở rộng những cặp Hits đã tìm được theo cả hai
chiều và đồng thời đánh số điểm Quá trình mở rộng kết thúc khi điểm của các cặpHit không thể mở rộng thêm nữa Một điểm chú ý ở đây là phiên bản gốc của
BLAST không cho phép chỗ trống (gap) trong quá trình mở rộng, nhưng ở phiên
bản mới hơn đã cho phép chỗ trống Những cặp Hits sau khi mở rộng có điểm số
cao hơn một giá trị ngưỡng S (threshold value) thì được BLAST gọi là "cặp điểm
số cao" (High-scoring Segment Pair) HSP.
Ví dụ, với chuỗi AGTTAHTQ và ACFTAQAC với Hit TAH và TAQ sẽ được
toán một giá trị trông đợi E-Score (Expect-Score) phụ thuộc vào Bit-Score Giá trị
E-Score này thể hiện xác suất ngẫu nhiên của các bắt cặp, giá trị càng thấp càngchứng tỏ những bắt cặp này được phát sinh theo quy luật tự nhiên, ít phụ thuộc vàotính ngẫu nhiên [7]
Trang 26Hình 1.4 Thiết lập “từ” với ba “ký tự” để truy vấn theo danh sách [5]
Ngày nay, có rất nhiều chương trình được mở rộng từ BLAST (thường được gọichung là “họ BLAST”) chẳng hạn như:
- Nucleotide-Nucleotide BLAST (BLASTn): Chương trình này, khi đưa vàomột DNA truy vấn, sẽ trả về các chuỗi DNA gần giống nhất từ cơ sở dữ liệu DNA
sẽ được tạo ra Sau đó, những protein này được kết hợp thành một "profile" dưới
dạng chuỗi trung bình (average sequence) Một câu truy vấn tới một cơ sở dữ liệu
protein sẽ được thực thi nhờ profile này, và một nhóm lớn hơn các protein đượctìm thấy Nhóm lớn này lại được dùng để tạo ra một profile khác, và quá trình này
cứ lặp lại Bằng cách thêm các protein liên quan vào việc tìm kiếm, PSI-BLAST
Trang 27trở nên tốt hơn trong việc lựa ra các mối quan hệ tiến hóa cách xa nhau hơn là phần
mềm chuẩnprotein-protein BLAST.
- Nucleotide 6frame translation protein (BLASTx): Chương trình so sánh cácsản phẩm chuyển đổi (trừu tượng) sang 6-khung của một chuỗi nucleotide truy vấn(cả 2 dải) với một cơ sở dữ liệu chuỗi protein Quá trình này có thể rất chậm
- Nucleotide-nucleotide 6-frame translation (tblastx): Chương trình này chậmnhất trong họ BLAST Nó chuyển chuỗi nucleotide truy vấn thành mọi 6 khung(frame) có thể và so sánh các proteins tạo thành Mục tiêu của tblastx là tìm kiếmmối quan hệ rất xa giữa các chuỗi nucleotide
- Protein-nucleotide 6-frame translation (tblastn): Chương trình này chuyển cơ
sở dữ liệu đích thành mọi 6-khung (frame) và so sánh với chuỗi protein truy vấn
- Large number of query sequence (MegaBLAST): Khi so sánh một số lượnglớn các chuỗi đầu vào qua chỉ một BLAST dạng dòng lệnh, "megablast" là nhanhhơn rất nhiều so với chạy BLAST nhiều lần
Ưu điểm: Do chỉ việc phải so sánh chuỗi cần truy vấn với thư viện hoặc CSDL
chuỗi có sẵn Sau đó, đối sánh chuỗi ở thư viện hoặc cơ sở dữ liệu với chuỗi truyvấn theo một ngưỡng nhất định nên phương pháp có thời gian xử lý nhanh
Nhược điểm: Phương pháp này có độ chính xác không cao (VD: so với phương
pháp liên kết nhạy cảm đầy đủ phương pháp này độ chính xác không bằng)
1.4 Phương pháp sử dụng mô hình phù hợp gần đúng
Kỹ thuật tìm kiếm chuỗi phù hợp với một mô hình gần đúng (chứ không phải làchính xác) Vấn đề phù hợp được hiểu thành hai ý: tìm kiếm chuỗi phù hợp gầnđúng với các phân đoạn một chuỗi cho trước và tìm kiếm chuỗi từ điển gần đúngvới mẫu cần truy vấn Mô hình này sử dụng cách tiếp cận brute-force để tính “độchỉnh sửa” chuỗi mẫu sao cho gần đúng với tất cả các chuỗi con của chuỗi cần truyvấn, sau đó chọn các chuỗi với “độ chỉnh sửa” tối thiểu Tuy nhiên, thuật toán này
Trang 28sẽ có thời gian chạy O(n3m) Ở đây m là độ dài chuỗi mẫu, n là độ dài chuỗi cầntruy vấn) Phương pháp điển hình của mô hình phù hợp gần đúng là phương pháptìm kiếm chuỗi Bowtie, được nhà khoa học Langmead và cộng sự đăng lần đầutiên trên tạp chí Curr Protoc Bioinformatics vào năm 2010 [8]
Phương pháp tìm kiếm chuỗi Bowtie
Phương pháp Bowtie (do Langmead và cộng sự đề xuất năm 2010) là phươngpháp nhanh và tiết kiệm bộ nhớ Mô hình của phương pháp là mô hình sử dụngmột tập đầu vào với số lượng lớn các liên kết từ gen mẫu (tách mẫu thành các đoạnngắn- mục đích để đọc thông tin, đưa ra các chỉ số tạo bảng đánh giá Sau đó, từbảng đánh giá, mô hình sẽ đánh thứ tự các chuỗi con được tách Cuối cùng, so sánhchuỗi được tách đó với các đoạn gen mẫu theo các chỉ số đã đưa ra từ ban đầu.Vd: gen người Các thành phần chương trình chứa các công cụ đánh giá chỉ sốcho các thành phần bộ gen tham khảo, sau đó đọc các trình tự ngắncủa bộ gen mẫutheo các chỉ số đã được đưa ra Đây là bước đầu tiên trong nhiều nhiều bước ở quytrình so sánh gen theo phương pháp này Phương pháp có thêm chức năng pháthiện biến thể gen Mỗi lần đọc chuỗi DNA, đầu vào có thể gồm nhiều giá trị chỉ số,các giá trị này đã được đánh giá bởi tiến trình trước đó Trình tự các chuỗi con sẽđược đánh thứ tự Các giá trị thứ tự này được tham chiếu đến chuỗi gốc
Thuật toán: [8]
B
ư ớ c 1: Xác định điểm chung từ các mẫu
Từ tập các mẫu đầu vào, sắp xếp và tìm điểm chung giữa các tập chuỗi
Trang 29ư ớ c 2: Phân loại và đo độ ảnh hưởng
Từ các tập mẫu, tính toán và đưa ra độ dài chuỗi dài nhất có thể từ các mẫu
B
ư ớ c 3 : Tìm kiếm và đưa ra kết quả Kết quả hiển thị là tập các chuỗi cần so
sánh có bắt cặp trình tự với chuỗi mẫu Thứ tự các chuỗi được sắp xếp theo thứ tựnhư sau: Chuỗi có ít bắt cặp trình tự đứng trước Các chuỗi có độ dài bắt cặp trình
tự lớn đứng sau (theo hình kim tự tháp)
Trang 30Một đoạn mã nguồn của thuật toán [8]
sub quote_params {
my %params_2_quote = (' rg' => 1, ' rg-id' => 1,
'-S' => 1, '-U' => 1, '-1' => 1, '-2' => 1 );
độ và không gian lưu trữ Để đòi hỏi điều này, người dùng đã phải xây dựng hoặc
có được một chỉ số thích hợp trước khi quá trình đọc liên kết đến các mẫu Khi mộtchỉ số được xây dựng, nó có thể được truy vấn nhiều lần Chỉ số cho bộ gen tham
Trang 31chiếu thường được sử dụng có thể tải về từ trang web Bowtie tại bio.sf.net Chương trình sử dụng các giao thức:
http://bowtie-+ Giao thức cơ bản sẽ sắp xếp một bộ các lần “đọc” cho một gen mẫu
+ Giao thức đánh chỉ số (Indexing Protocol – Alternate Protocol 1) sẽ xây dựngchỉ số cho gen mẫu
+ Giao thức “The Consensus and SNP Calling” nhận các giá trị từ đầu ra củacông cụ SAM tools (Li et al 2009) sẽ đánh giá chuỗi có tương đồng hay không.+ Các giao thức tùy chọn dòng lệnh (Alternate Protocol 3) thể hiện một loạtcác tùy chọn liên kết thường được sử dụng
+ Các giao thức hỗ trợ (Support) hướng dẫn cách lưu trữ và cài đặt phần mềmBowtie
+ Giao thức hỗ trợ 1 (Support Protocol 1) hướng dẫn cách “build” phần mềmBowtie từ mã nguồn
+ Giao thức hỗ trợ 2 (Support Protocol 2) hướng dẫn cách tạo chỉ số “pre-build”
từ website bowtie (giao thức hỗ trợ 3) Mỗi giao thức này có thể chạy trên các môitrường khác nhau: Unix (môi trường Unix), Linux, Mac OS X và Windows
Chương trình Bowtie viết dưới dạng mã nguồn mở và có thể được sử dụng miễnphí Có thể download tại địa chỉ: h t t p : // www o p e n so u rce o r g/ li c e n s e s / ar t i st i c -
license-1.0.php
Hình 1.5 Hình ảnh một phiên chương trình Bowtie
Trang 32Các dòng cuối mô tả:
+ Số chuỗi được xử lý.
+ Thông tin chạy chương trình, đầu ra chuẩn sẽ thể hiện tính hợp lệ.
+ Thông báo về phương pháp thực hiện - phương pháp Bowtie.
+ Có thể có thêm thông tin về chuỗi tìm kiếm
Hình 1.6 Ví dụ quá trình chạy phương pháp Bowtie với đầu ra định dạng SAM.
Mô hình này sử dụng cách tiếp cận brute-force để tính “độ chỉnh sửa” chuỗi mẫusao cho gần đúng với tất cả các chuỗi con của chuỗi cần truy vấn, sau đó chọn cácchuỗi với “độ chỉnh sửa” tối thiểu
Ưu điểm: Có thể tìm kiếm cùng lúc nhiều mẫu Độ chính xác cao.
Nhược điểm: Thuật toán này có chi phí thời gian chạy O(n3m) (với m là độ dàichuỗi mẫu, n là độ dài chuỗi cần truy vấn) Sử dụng nhiều bộ nhớ trong quá trìnhtìm kiếm
Trang 33bổ sung mẫu Tuy nhiên, thời gian thực hiện ở mức độ trung bình).
Phương pháp điển hình của thuật giải này là Mpscan Phương pháp này do cácnhà khoa học (Eric Rivals, Leena Salmela, Petteri Kiiskinen, Petri Kalsi, andJorma Tarhio) từ đại học LIRMM, CNRS and Université de Montpellier 2,Montpelier, Pháp đăng lần đầu vào năm 2009 Chương trình này tìm kiếm đồngthời các tập mẫu ngắn Các mẫu này có thể tìm đồng thời cùng lúc Quá trình tìmkiếm đồng thời có thể lên tới 100000 mẫu [9]
5: while true do
6: if first bit in E is one then