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.. Phương pháp liên kết n
Trang 11
ĐẠ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
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
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ều nguồ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ích dẫ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
DNA Deoxy Ribonucleic Acid Phân tử mang cấu trúc gen
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ột khối chuỗi DNA
CPU Cental Processing Unit Bộ xử lý trung tâm
RAM Random access memory Bộ nhớ truy cập ngẫu nhiên NCBI National Center for
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
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ói riê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 ra rấ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ất nhiề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àng tă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 gen trong 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ốt phá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ăng chí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ể sinh vật
DNA có chức năng chính là lưu giữ truyền đạt và bảo quản thông tin di truyề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ên tậ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à khoa họ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 ứng dụng phổ biến trong đời sống thường được gọi là xét nghiệm DNA Xét nghiệm DNA 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ệm DNA 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ần phả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 định cao nhất Thông thường, có thể lấy hai mẫu xét nghiệm của hai người (hoặc sinh vậ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ết thố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ắt cặ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 nhau củ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ập hợ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ử cho cá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 cơ sở
dữ liệu chuỗi DNA đã lưu Từ đó có thể biết được những ai đã có mặt tại hiện trường vào thời điểm xảy ra vụ việc Tiến hành lấy lời khai các nhân chứng Căn
cứ vào đó có thể kết luận được hung thủ, thời gian, quá trình xảy ra vụ án ADN thường được sử dụng để xác định tội phạm theo một trong hai cách Trường hợp nghi ngờ: Một mẫu DNA của người đó được so sánh với bằng chứng từ hiện trường vụ án Kết quả của sự so sánh này có thể giúp xác định liệu các nghi can phạm tội Trường hợp nghi ngờ chưa được xác định, bằng chứng sinh học từ hiện trường vụ án có thể được phân tích và so sánh với hồ sơ phạm tội trong cơ sở dữ liệu ADN để giúp xác định thủ phạm bằng chứng hiện trường vụ án cũng có thể được liên kết với những cảnh tội phạm khác thông qua việc sử dụng các cơ sở dữ liệu ADN Hiện nay, với trình đô khoa học phát triển, các lớp đào tạo điều tra viên được mở, giúp các học viên tiếp cận công nghệ mới một cách nhanh chóng Có dự
á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 sinh vậ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ác sinh 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ức thấ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ành phầ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ếm nhữ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ìm kiế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ành riê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 trong sinh học Có hàng trăm thuật toán đã được đề xuất cho tìm kiếm dữ liệu DNA như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ế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 Phương pháp này đã được sử dụng rộ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án phứ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 cao 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ó độ 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ặc nucleotide Với chuỗi đã được tìm kiếm và có độ tương đồng cao trước đó, phương phá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áp nà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đặc trưng của dạng này là phương pháp Smith & Waterman do hai nhà khoa học T.F.Smith & M.S.Waterman công bố năm 1981 [6]
Phương pháp tìm kiếm tương tự nhanh: Vd: BLAST [7] gần giống với phương pháp liên kết nhạy cảm đầy đủ, thậm chí vẫn có thể sử dụng khi có những giải pháp tốt hơn 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 truy vấn theo một ngưỡng nhất định Mặc dù có thời gian xử lý nhanh hơn nhưng phương pháp này có độ chính xác không bằng phương pháp liên kết nhạy cảm đầy
đủ
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í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 đúng vớ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 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 truy vấ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ần truy 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ác chuỗ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 được dù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 trong mộ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ăng tìm kiếm ngược, bổ sung mẫu Tuy nhiên, thời gian thực hiện ở mức độ trung bì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ểu cho 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 đích chí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ương phá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ải thiệ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 quan cá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ương phá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 đánh giá 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ải tiến phương pháp tìm kiếm chuỗi DNA
Trang 13CHƯƠNG 1 TỔNG QUAN VỀ CÁC THUẬT TOÁN TÌM KIẾM CHUỖI
DNA
Ở phần trước, người viết đã giới thiệu sơ lược về cấu trúc DNA, các ứng dụng của DNA trong đời sống Khái quát, một số phương pháp thường được sử dụng để tìm kiếm chuỗi DNA Chương này, người viết sẽ trình bày cụ thể hơn về các thuật toán tìm kiếm chuỗi: Đặc trưng chung của các dạng tìm kiếm, các phương pháp nổi bật của từng dạng, ưu điểm, nhược điểm của các dạng tìm kiếm chuỗi
1.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ật toá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ó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ế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ái nà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 14Cá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ển tiế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 15b 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ải tuyế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ác chuỗ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ác liê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ên kế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 y xá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 đồng cao 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 16tươ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ặc nucleotide Với chuỗi đã được tìm kiếm và có độ tương đồng cao trước đó, phương phá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áp nà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ọc T.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ều chuỗ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ìm kiế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 đồng hoặ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ỗi cụ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à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 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 đối xứ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) ta lậ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)
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 17Hi-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ỉ ra rằ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 20Ví 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-A-U-U-G- -G-C-C - U-C-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 21Nhượ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ật toá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 CSDL chuỗ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ột ngưỡ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ời gian xử lý nhanh nhưng phương pháp này có độ chính xác không bằng phương phá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ến thể để 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ính tương tự cao Sau đó, dựa vào kết quả trước, mở rộng phạm vi tìm kiếm để tìm nhữ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ác tươ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ình BLAST 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ếm phổ 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 22Đầ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 CSDL chuỗ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ỗi con 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ìn nucleotide trong khi cơ sở dữ liệu chuỗi có hàng tỉ nucleotide Thuật toán của BLAST 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ết quả 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 thay thế (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ột giá trị cho trước d, gọi là khoảng cách giữa những Hit Những cặp Hits có khoảng cá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 23Bướ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ặp Hit 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àng chứ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ào tính ngẫu nhiên [7]
Trang 24Hì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ọi chung là “họ BLAST”) chẳng hạn như:
- Nucleotide-Nucleotide BLAST (BLASTn): Chương trình này, khi đưa vào mộ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 được tì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 25trở 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ác sả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ậm nhấ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ếm mố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ượng lớn các chuỗi đầu vào qua chỉ một BLAST dạng dòng lệnh, "megablast" là nhanh hơ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 truy vấ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 đúng vớ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 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
Trang 26sẽ 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 truy 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áp tìm kiếm chuỗi Bowtie, được nhà khoa học Langmead và cộng sự đăng lần đầu tiê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ương pháp nhanh và tiết kiệm bộ nhớ Mô hình của phương pháp là mô hình sử dụng mộ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ạn ngắ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ánh chuỗ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ẫu theo các chỉ số đã được đưa ra Đây là bước đầu tiên trong nhiều nhiều bước ở quy trình so sánh gen theo phương pháp này Phương pháp có thêm chức năng phát hiệ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 27Bướ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 28Mộ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ột chỉ số được xây dựng, nó có thể được truy vấn nhiều lần Chỉ số cho bộ gen tham
Trang 29chiếu thường được sử dụng có thể tải về từ trang web Bowtie tại http://bowtie- bio.sf.net Chương trình sử dụng các giao thức:
+ 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ựng chỉ số cho gen mẫu
+ Giao thức “The Consensus and SNP Calling” nhận các giá trị từ đầu ra của cô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ạt cá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ềm Bowtie
+ Giao thức hỗ trợ 1 (Support Protocol 1) hướng dẫn cách “build” phần mềm Bowtie 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ôi trườ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ễn phí Có thể download tại địa chỉ: http://www.opensource.org/licenses/artistic- license-1.0.php
Hình 1.5 Hình ảnh một phiên chương trình Bowtie
Trang 30Cá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ẫ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
Ư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ài chuỗi mẫu, n là độ dài chuỗi cần truy vấn) Sử dụng nhiều bộ nhớ trong quá trình tìm kiếm
Trang 31Phươ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ác nhà khoa học (Eric Rivals, Leena Salmela, Petteri Kiiskinen, Petri Kalsi, and Jorma 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 đồng thờ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ìm kiế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