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 nhanh chó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
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 2LỜ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 3MỤC LỤC
LỜI CAM ĐOAN 2
DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT 5
GIỚI THIỆU 6
CHƯƠNG 1 TỔNG QUAN VỀ CÁC THUẬT TOÁN TÌM KIẾM CHUỖI DNA 7
1.1 Phương pháp tìm kiếm chuỗi DNA sử dụng mô hình Markov ẩn 7 1.2 Phương pháp liên kết nhạy cảm đầy đủ 8
1.3 Phương pháp tìm kiếm tương tự nhanh 9
1.4 Phương pháp sử dụng mô hình phù hợp gần đúng 10
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 10 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 12
2.1 Mô hình N-Gram 12
2.1.1 Một số khái niệm 12
2.1.2 Mô hình ngôn ngữ N-gram 12
2.1.3 Công thức tính “xác suất thô” 12
2.1.4 Khó khăn khi xây dựng mô hình ngôn ngữ N-gram : 13
2.2 Phương pháp tương tự nhanh áp dụng N-gram tìm kiếm chuỗi DNA 13
2.2.1 Phân đoạn DNA 13
2.2.2 Các “từ DNA” 13
2.2.3 Quá trình tìm kiếm chuỗi và hiển thị kết quả 14
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 16
Trang 42.3.1 Định dạng chuỗi cơ sở dữ liệu 16 2.3.2 Bảng kết quả các lần thử phương pháp tìm kiếm chuỗi tương
áp dụng N-Gram với phương pháp BLAST và phương pháp Water Man 21 KẾT LUẬN 22 TÀI LIỆU THAM KHẢO 23
Trang 5Smith-DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT
DNA Deoxy Ribonucleic Acid Phân tử mang cấu trúc
nhiên NCBI National Center for
Biotechnology Information
Trung tâm quốc gia thông tin công nghệ sinh Differential Direct coding Mã hóa trực tiếp phần
khác biệt HMM Hidden Markov Modeling Mô hình Markov ẩn 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 6 Sự di truyền trí thông minh [1]
Kiểm tra quan hệ cùng huyết thống [2]
Phát hiện các loại gen gây bệnh [3]
Ứng dụng trong khoa học hình sự [4]
Lý thuyết tiến hóa………
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]
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 tìm kiếm tương tự nhanh: Vd: BLAST [7]
Phương pháp sử dụng mô hình phù hợp gần đúng: Vd: Bowtie[8]
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]
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 7CHƯƠNG 1 TỔNG QUAN VỀ CÁC THUẬT TOÁN TÌM KIẾM
CHUỖI DNA 1.1 Phương pháp tìm kiếm chuỗi DNA sử dụng mô hình Markov ẩn
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ể
Hình 1.1: Mô hình Markov ẩn cho tìm tiếm chuỗi DNA [5]
a Sắp xếp các chuỗi ban đầu.
b 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
Ư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.
Trang 81.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ó độ 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 đặ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]
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
Ư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 9Nhượ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ể) 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ể) 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 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
Hình 1.4 Thiết lập “từ” với ba “ký tự” để truy vấn theo danh sách [5]
Ư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)
Trang 10Thuậ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
Bướ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)
Ư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(n3
Trang 11các chuỗi con đã được chia đó với chuỗi trong cơ sở dữ liệu để tìm kiếm sự tương đồng Phương pháp đạt hiệu quả chính xác cho việc giải trình tự DNA/RNA, có thể thực hiện xử lý 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/RNA ngắn trong một CSDL các chuỗi DNA
Phương pháp điển hình của thuật giải này là Mpscan [9] 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
Ƣu điểm: Phương pháp này 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 Có 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
Nhƣợc điểm: So với các phương pháp khác, thời gian thực hiện của
phương pháp này ở mức độ trung bình
Trang 12CHƯƠNG 2 N-GRAM VÀ PHƯƠNG PHÁP TÌM KIẾM CHUỖI
TƯƠNG TỰ NHANH ÁP DỤNG N-GRAM.
2.1.2 Mô hình ngôn ngữ N-gram
Mô hình ngôn ngữ là cho biết xác suất của một câu w1w2 wm là bao
nhiêu Theo công thức Bayes: P(AB) = P(B|A) * P(A) [11]
Với:
+ P(A): Xác suất xảy ra sựkiện A
+ P(B): Xác suất xảy ra sự kiện B
+ P(B|A): Xác suất (có điều kiện) xảy ra sự kiện B
Một cụm N-gram là 1 dãy con gồm n phần tử liên tiếp nhau của 1 dãy các phần tử cho trước
2.1.3 Công thức tính “xác suất thô”
Gọi C(wi-n+1 wi-1w) là tần số xuất hiện của cụm wi-n+1 wi-1w trong tập văn bản huấn luyện
Gọi P(wi|wi-n+1 wi-1) là xác suất wi đi sau cụm wi-n+1 wi-2wi-1
Ta có công thức tính xác suất như sau:
P(w i |w i-n+1 w i-1 ) = C(w i-n+1 w i-1 w i )
Trang 13tính “xác suất thô” để phân biệt với các cách tính xác suất theo các thuật
toán hiệu quả hơn
2.1.4 Khó khăn khi xây dựng mô hình ngôn ngữ N-gram :
Phân bố không đều
Khi các N-gram phân bố thưa, nhiều cụm n-gram không xuất hiện hoặc chỉ có số lần xuất hiện nhỏ, việc ước lượng các câu có chứa các cụm n-gram này sẽ có kết quả tồi Với V là kích thước bộ từ vựng, ta sẽ có Vn cụm N-gram có thể sinh từ bộ từ vựng
Kích thước bộ nhớ của mô hình ngôn ngữ :
Khi kích thước tập văn bản huấn luyện lớn, số lượng các cụm N-gram và kích thước của mô hình ngôn ngữ cũng rất lớn (tăng theo hàm mũ)
2.2 Phương pháp tương tự nhanh áp dụng N-gram tìm kiếm chuỗi DNA
Việc đánh chỉ số tuần tự (sequence index) được sử dụng trong các kỹ thuật tìm kiếm nhanh, giúp chúng ta chỉ cần truy xuất kết quả dựa vào bảng các chỉ số đã được thống kê
2.2.1 Phân đoạn DNA
Trong tài liệu này, chúng ta sử dụng ví dụ chuỗi DNA để giải thích chi tiết kỹ thuật tìm kiếm Bằng việc chia chuỗi DNA thành các chuỗi có độ dài nhỏ hơn, giống như việc chia một cuốn sách thành các chương mục, không
có quy định về việc chia một chuỗi DNA có độ dài bằng bao nhiêu thì hợp
lý, thông thường người ta chia thành các chuỗi có độ dài 100, 500, 1000,
10000 …, sau đó ta đánh ID cho từng đoạn đó Trong tài liệu này ta chia một chuỗi DNA dài thành các đoạn có độ dài 500 ký tự
2.2.2 Các “từ DNA”
Trang 14Với ngôn ngữ tự nhiên giống như tiếng anh, việc xác định câu từ là việc
dễ dàng nhờ có khoảng trống hoặc các dấu ngắt câu Nhưng với chuỗi DNA, không hề có khoảng trống để phân biệt, để có thể tách thành các chuối ngắn hơn, cách đơn giản nhất ta dùng phương thức n-gram ví dụ:
T = “ABCDE”
1-gram chia chuỗi T thành tập {A, B, C, D, E}
2-gram chia chuỗi T thành tập {AB, BC, CD, DE}
Trong bài viết này, ta chọn 12-gram để phân chia tập
2.2.3 Quá trình tìm kiếm chuỗi và hiển thị kết quả
Đầu vào chương trình gồm hai chuỗi:
- Chuỗi tìm kiếm là chuỗi được nhập từ bàn phím
- Chuỗi từ điển – Chuỗi được trích ra từ cơ sở dữ liệu chuỗi có sẵn Đầu tiên chương trình xắp xếp thứ tự các “từ” chứa trong các chuỗi tìm kiếm DNA sao cho đầu vào là các chuỗi có độ dài được xác định cụ thể Sau
đó, phân tích chuỗi tìm kiếm thành các “từ”, mỗi “từ” có độ dài bằng giá trị
n trong n-gram, trong mô hình này n = 12 Với mỗi từ được tách ra sẽ được ghi vào tệp Index – tệp lưu thông tin: tên chuỗi, vị trí của chuỗi đó trong chuỗi từ điển Mỗi từ có thể xuất hiện ở đoạn con DNA khác nhau
Lấy giao của các tập trên chúng ta có vị trí chuỗi cần tìm, giá trị này là tập các chuỗi con có thể chứa chuỗi đầu vào
Chương trình được thực hiện qua hai bước chính:
Tiền xử lý:
+ Duyệt lần lượt các file gen FASTA đầu vào Chia đoạn gen mẫu thành các đoạn nhỏ Mỗi đoạn gồm 500 ký tự A, T, G, C Đồng thời đánh dấu DocID cho mỗi đoạn Với mỗi file FASTA sẽ tạo ra các file sau:
Trang 15*.n-gram: file tách các chuỗi DNA thành các dạng N-Gram và tần suất xuất hiện của chuỗi n-gram đó trong file FASTA Nội dung các file được sắp xếp theo trình tự file có tần suất xuất hiện cao ở trước, tần suất xuất hiện thấp ở sau
*.div: file chia nhỏ nội dung file FASTA thành nhiều doc
*.idx: Đầu vào tạo file này là file *.div Nội dung gồm docID (số thứ tự đếm tăng dần), vị trí offset của doc trong file *.div
*.seg: đầu vào là file *.div và *.idx Nội dung bao gồm docId và chia nội dung của từng docId theo dạng n-gram
*.frd: đầu vào là file *.seg: tạo forward index Nội dung gồm docId và nội dung từng đoạn chia trong file *.seg
*.inv.idx và *.inv: đầu vào là file *.frd và *.idx: tạo invert index Nội dung file *.inv.idx bao gồm nội dung đoạn chia trong file *.frd + offset bên file *.inv Nội dung file *.inv bao gồm đoạn chia trong file *.frd và docId
Tìm kiếm và đƣa ra kết quả:
+ Lấy danh sách của từng segment trong file *.n-gram Do file *.n-gram
đã được sắp xếp nên danh sách này cũng được sắp xếp theo tần suất xuất hiện
+ Lấy 3 danh sách offset, docId, segment để đưa ra vị trí chuỗi cần tìm Hiển thị kết quả:
Trang 16+ DocId nào có số lần xuất hiện chuỗi cần tìm kiếm nhiều nhất thì đưa ra trước
+ Kết quả đưa ra màn hình hiển thị gồm Tổng số kết quả được tìm thấy, DocId, tên loại gen, vị trí đoạn tìm thấy trong mẫu gốc, thời gian tìm kiếm
Hình 2.9 Hiển thị kết quả trên màn hình
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
2.3.1 Định dạng chuỗi cơ sở dữ liệu
Trong bài viết, các tệp cơ sở dữ liệu được sử dụng để tìm kiếm chuỗi con trong đó đều được định dạng theo chuẩn FASTA Định dạng FASTA là một định dạng tệp văn bản, thể hiện cho một trong hai loại chuỗi dưới dạng số hóa: chuỗi nucleotide hoặc amino axit Một tệp ở định dạng FASTA gồm nhiều dòng Dòng đầu tiên (còn gọi là dòng tiêu đề) dùng để mô tả thông tin chuỗi trong ngân hàng CSDL Ký tự đầu tiên của dòng này là ký tự ">" (dấu