Bảng các ký hiệu, từ viết tắt Ký hiệu, CSDL Cơ sở dữ liệu DNA Phân tử mang thông tin di truyền ARN Đại phân tử sinh học NCBI Trung tâm Thông tin Công nghệ sinh học Quốc gia Hoa Kỳ EM
Trang 1HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ
…… ….***…………
ĐINH ĐỨC LƯƠNG
PHƯƠNG PHÁP ĐÁNH CHỈ SỐ CHO TÀI LIỆU XML
TIN SINH HỌC DỰA TRÊN R-TREE
LUẬN ÁN TIẾN SĨ TOÁN HỌC
Hà Nội - 2019
Trang 2…… ….***…………
ĐINH ĐỨC LƯƠNG
PHƯƠNG PHÁP ĐÁNH CHỈ SỐ CHO TÀI LIỆU XML
TIN SINH HỌC DỰA TRÊN R-TREE
LUẬN ÁN TIẾN SĨ TOÁN HỌC
Chuyên ngành: Cơ sở toán học cho tin học
Trang 3Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi, được hoàn thành
dưới sự hướng dẫn của TS Hoàng Đỗ Thanh Tùng và PGS.TS Đặng Hữu Đạo
Các kết quả nêu trong luận án là trung thực và chưa từng được công bố trong bất kỳ công trình nào khác
Tôi xin chịu trách nhiệm về những lời cam đoan của mình
Hà nội, tháng 10 năm 2019
Tác giả
Trang 4Luận án này được hoàn thành với sự nỗ lực không ngừng của tác giả và sựgiúp đỡ hết mình từ các thầy giáo hướng dẫn, bạn bè và người thân.
Đầu tiên, tác giả xin bày tỏ lời tri ân sâu sắc tới PGS.TS Đặng Hữu Đạo và
TS Hoàng Đỗ Thanh Tùng, những thầy giáo đã tận tình hướng dẫn tác giả hoàn
thành luận án này
Tác giả xin gửi lời cảm ơn tới các thầy, cô giáo và cán bộ của Viện Công nghệ thông tin, Học viện Khoa học và Công nghệ (Viện Hàn lâm Khoa học và Công nghệ Việt Nam) đã nhiệt tình giúp đỡ và tạo ra môi trường nghiên cứu tốt để tác giả hoàn thành công trình của mình; trân trọng cảm ơn các thầy, cô và các đồng nghiệp
ở các nơi mà tác giả tham gia viết bài đã có những góp ý chính xác để tác giả có được những công bố như ngày hôm nay
Tác giả xin cảm ơn Ban Giám hiệu trường Cao đẳng Công nghiệp Thực phẩm, các đồng nghiệp nơi tác giả công tác đã ủng hộ, tạo mọi điều kiện tốt nhất để luận án được hoàn thành đúng thời hạn
Cuối cùng, tác giả xin gửi tới bạn bè, người thân lời cảm ơn chân thành nhất
vì đã đồng hành cùng tác giả trong suốt thời gian qua
Hà Nội, tháng 10 năm 2019
Đinh Đức Lương
Trang 5MỤC LỤC
MỤC LỤC i
Danh mục các thuật ngữ iii
Bảng các ký hiệu, từ viết tắt iv
Danh sách bảng v
Danh sách các thuật toán vi
Danh sách hình vẽ vii
MỞ ĐẦU 1
Chương 1 TỔNG QUAN 5
1.1 Tin sinh học và các nguồn dữ liệu 5
1.1.1 Tin sinh học 5
1.1.2 Các nguồn dữ liệu 6
1.1.3 Vấn đề tin sinh học và cơ sở dữ liệu sinh học 10
1.2 Các phương pháp đánh chỉ số dữ liệu sinh học và tin sinh học 13
1.2.1 Chỉ số và mô hình bộ nhớ ngoài 13
1.2.2 Các phương pháp đánh chỉ số cho dữ liệu sinh học 14
1.2.2.1 Các thuật toán so sánh tương đồng thông qua chuỗi đại diện 14 1.2.2.2 Các thuật toán sử dụng sự thay đổi cấu trúc chỉ số 15
1.2.3 Các phương pháp đánh chỉ số cho dữ liệu tin sinh học 17
1.3 Phương pháp đánh chỉ số tài liệu XML 18
1.3.1 Tài liệu XML và Xpath 18
1.3.2 Các phương pháp theo hướng nghiên cứu chuyển đổi dữ liệu XML sang không gian số trước khi thực hiện đánh chỉ số 24
1.3.2.1 Đánh số trên lược đồ 24
1.3.2.2 Phép nối có cấu trúc 25
1.3.2.3 Chuyển đổi lên không gian đa chiều 28
1.3.2.4 Ánh xạ sang cơ sở dữ liệu quan hệ 29
1.4 Phương pháp R-tree 31
1.4.1 Khái niệm R-tree 31
1.4.2 Cấu trúc R-tree 31
1.4.3 Một số thuật toán cơ bản trong phương pháp R-tree 33
1.4.4 Một số phương pháp cải tiến R-tree đánh chỉ số tài liệu XML 41
Trang 61.5 Các vấn đề còn tồn tại 43
1.6 Kết luận 45
Chương 2 PHƯƠNG PHÁP ĐÁNH CHỈ SỐ BIOX-TREE 46
2.1 Mở đầu 46
2.2 Phương pháp đánh chỉ số cải tiến BioX-tree 52
2.2.1 Chuyển đổi tài liệu XML 52
2.2.2 Cấu trúc chỉ số trên cây BioX-tree 54
2.2.3 Các thuật toán 58
2.2.3.1 Thuật toán chèn 58
2.2.3.2 Thuật toán truy vấn 62
2.2.4 Xử lý truy vấn 64
2.2.4.1 Thuật toán cho các truy vấn anh em 64
2.2.4.2 Thuật toán cho các truy vấn khác 65
2.2.5 Đánh giá độ phức tạp của các thuật toán 67
2.3 Kết quả thực nghiệm phương pháp BioX-tree 68
2.3.1 Mô hình và môi trường thử nghiệm 68
2.3.2 Xây dựng chương trình 72
2.3.3 Đánh giá hiệu quả giảm kích thước dữ liệu 79
2.3.4 So sánh kết quả của phương pháp BioX-tree và R-tree 82
2.4 Kết luận chương 2 87
Chương 3 PHƯƠNG PHÁP ĐÁNH CHỈ SỐ MỞ RỘNG BIOX + -TREE 89
3.1 Mở đầu 89
3.2 Phương pháp BioX+ -tree 91
3.2.1 Phân tích không gian dữ liệu chuyển đổi của tài liệu XML 91
3.2.2 Các thuật toán đề xuất 94
3.3 Kết quả thực nghiệm phương pháp BioX+-tree 96
3.3.1 Mô hình và môi trường thử nghiệm 96
3.3.2 So sánh kết quả của phương pháp BioX+-tree và BioX-tree 98
3.4 Kết luận chương 3 104
KẾT LUẬN 105
Danh mục các công trình của tác giả 107
Tài liệu tham khảo 108
Trang 7Danh mục các thuật ngữ
Ngôn ngữ truy vấn dữ liệu XML dựa trên đường dẫn Xpath
Tên một thẻ trong tài liệu XML Tag name
Duyệt cây theo thứ tự trước Post order
Duyệt cây theo thứ tự sau Pre order
Một node trên cây R-tree, BioX-tree, BioX+-tree Node
Một mục thuộc node trên cây R-tree, BioX-tree, BioX+
Truy vấn các node theo sau Following query Truy vấn các node phía trước Preceding query
Trang 8Bảng các ký hiệu, từ viết tắt
Ký hiệu,
CSDL Cơ sở dữ liệu
DNA Phân tử mang thông tin di truyền
ARN Đại phân tử sinh học
NCBI Trung tâm Thông tin Công nghệ sinh học Quốc gia Hoa Kỳ EMBL/EBI Viện tin sinh học Châu Âu
CIB-DDBJ Ngân hàng dữ liệu DNA của Nhật Bản
SQL Ngôn ngữ truy vấn có cấu trúc
.NET, PHP, JAVA Tên một số ngôn ngữ lập trìnhphổ biến
ACID Tính nguyên tử, nhất quán, độc lập và bền vững trong CSDL
quan hệ XML Ngôn ngữ đánh dấu mở rộng
A-D Mối quan hệ tổ tiên - hậu duệ
MBR Hình chữ nhật bao quanh tối thiểu trong R-tree
pre(E) Giá trị duyệt cây theo thứ tự trước của node bối cảnh E post(E) Giá trị duyệt cây theo thứ tự sau của node bối cảnh E
Trang 9Danh sách bảng
Bảng 1.1: Các trục Xpath 22
Bảng 2.1: Thông tin cấu trúc của file trên đĩa 73
Bảng 2.2: Thông tin của BioX-tree 73
Bảng 2.3: Thông tin Block 73
Bảng 2.4: Thông tin phần tử 73
Bảng 2.5: Chức năng của các lớp 74
Bảng 2.6: Kết quả truy vấn anh em BioX-tree 83
Bảng 2.7: Kết quả truy vấn con cái BioX-tree 83
Bảng 2.8: Kết quả truy vấn tổ tiên BioX-tree 85
Bảng 2.9: Kết quả truy vấn hậu duệ BioX-tree 85
Bảng 2.10: Kết quả truy vấn các node theo sau BioX-tree 86
Bảng 2.11: Kết quả truy vấn các node phía trước BioX-tree 87
Bảng 3.1: Kết quả truy vấn anh em BioX+-tree 99
Bảng 3.2: Kết quả truy vấn anh em trước BioX+-tree 100
Bảng 3.3: Kết quả truy vấn anh em sau BioX+-tree 101
Bảng 3.4: Kết quả truy vấn con cái BioX+-tree 102
Bảng 3.5: Kết quả truy vấn phạm vi BioX+-tree 103
Trang 10Danh sách các thuật toán
Thuật toán 2.1: Hai thuật toán sửa đổi trong chuyển đổi tài liệu XML 54
Thuật toán 2.2: Thuật toán chèn 59
Thuật toán 2.3: Thuật toán FindSiblingNode 60
Thuật toán 2.4: Thuật toán CreateNewLeafNode 60
Thuật toán 2.5: Thuật toán truy vấn điểm 63
Thuật toán 2.6: Thuật toán truy vấn phạm vi 63
Thuật toán 2.7: Thuật toán truy vấn anh em 64
Thuật toán 2.8: Thuật toán truy vấn anh em sau 65
Thuật toán 2.9: Thuật toán truy vấn Anh em trước 65
Thuật toán 2.10: Thuật toán truy vấn con 66
Thuật toán 2.11: Thuật toán truy vấn tổ tiên 67
Thuật toán 3.1: Thuật toán Insertion 95
Thuật toán 3.2: Thuật toán truy vấn 96
Trang 11Danh sách hình vẽ
Hình 1.1: Xây dựng và xử lý dữ liệu trong tin sinh học 10
Hình 1.2: Mô hình hadoop kết hợp kho dữ liệu để xử lý dữ liệu thô 12
Hình 1.3: Sơ đồ mô tả các phương pháp đánh chỉ số CSDL sinh học 16
Hình 1.4: Ví dụ về tài liệu XML biểu diễn dưới dạng text và dạng cây 19
Hình 1.5: Ví dụ tài liệu XML tin sinh học 20
Hình 1.6: Cây phân tích cú pháp của Q với 5 node N1 N5 23
Hình 1.7: Ví dụ về cách đánh chỉ số trên cây theo thứ tự duyệt cây theo thứ tự trước, duyệt cây theo thứ tự sau 25
Hình 1.8: Ví dụ minh họa về đánh chỉ số trong XISS 26
Hình 1.9: Một ví dụ sử dụng các phép join 27
Hình 1.10: Ví dụ về vectơ trong không gian 3 chiều 28
Hình 1.11: Biểu diễn cấu trúc cây R-tree 32
Hình 1.12: Biểu diễn 02 chiều của một R-tree 33
Hình 1.13: Trường hợp phân chia node (a) bad split, (b) good split 38
Hình 1.14: Phân chia phần tử thành các nhóm node mới 39
Hình 1.15: Cấu trúc cây XR-tree 41
Hình 1.16: Xây dựng MBR trên không gian 2 chiều của phương pháp AR*-tree 42
Hình 1.17: Mô hình quy trình tổng quát 44
Hình 1.18: Mô hình thể hiện quá trình chuyển đổi dữ liệu và đánh chỉ số trên đĩa cứng 44
Hình 2.1: Phạm vi quét thứ tự duyệt cây theo thứ tự trước và sau ban đầu (vùng xám) và thu nhỏ (vùng trắng) cho truy vấn con cháu được thực hiện theo truy vấn mẫu 49
Hình 2.2: Ví dụ về phân phối các điểm quy đổi cho một tài liệu XML 50
Hình 2.3: Các thành phần được đề xuất cải tiến trong phương pháp BioX-tree 52
Hình 2.4: Ví dụ về biểu diễn điểm dựa trên cặp giá trị (duyệt cây theo thứ tự trước, duyệt cây theo thứ tự sau) 53
Hình 2.5: Ví dụ về MBR trong cây BioX-tree 56
Trang 12Hình 2.6: Hệ thống cây phân cấp theo các tag trong tài liệu XML DNA gạo 57
Hình 2.7: Các node lá thể hiện sự liên kết trên cây cấu trúc BioX-tree 58
Hình 2.8: Ví dụ về quy trình chèn 61
Hình 2.9: Mô hình thử nghiệm phương pháp BioX-tree và R-tree 69
Hình 2.10: Dữ liệu trong file XML DNACorn 70
Hình 2.11: Dữ liệu trong file XML DNARice 70
Hình 2.12: Dữ liệu trong file XML Swissprot 71
Hình 2.13: Dữ liệu trong file XML Allhomologies 72
Hình 2.14: Biểu đồ lớp của chương trình BioX-tree 77
Hình 2.15: Biểu đồ tuần tự của chương trình BioX-tree 78
Hình 2.16: File dữ liệu DNACorn sau chuyển đổi 79
Hình 2.17: File dữ liệu DNARice sau chuyển đổi 80
Hình 2.18: File dữ liệu Swissprot sau chuyển đổi 80
Hình 2.19: File dữ liệu Allhomologies sau chuyển đổi 80
Hình 2.20: So sánh kích thước tài liệu XML và tài liệu chuyển dổi về không gian số 81
Hình 2.21: Biểu đồ so sánh truy vấn anh em giữa BioX-tree và R-tree 83
Hình 2.22: Biểu đồ so sánh truy vấn con cái giữa BioX-tree và R-tree 84
Hình 2.23: Biểu đồ so sánh truy vấn tổ tiên giữa BioX-tree và R-tree 85
Hình 2.24: Biểu đồ so sánh truy vấn hậu duệ giữa BioX-tree và R-tree 86
Hình 2.25: Biểu đồ so sánh truy vấn các node theo sau giữa BioX-tree và R-tree 86
Hình 2.26: Biểu đồ so sánh truy vấn các node phía trước giữa BioX-tree và R-tree87 Hình 3.1: Các thành phần được cải tiến trong phương pháp mở rộng BioX+-tree 91
Hình 3.2: Cây tài liệu XML được đánh số thứ tự 92
Hình 3.3: Các MBR của node lá trong cây BioX-tree 93
Hình 3.4: Mô hình thử nghiệm thuật toán BioX+-tree và BioX-tree 97
Hình 3.5: Biểu đồ so sánh truy vấn anh em BioX+-tree và BioX-tree 99
Hình 3.6: Biểu đồ so sánh truy vấn anh em trước BioX+-tree và BioX-tree 100
Hình 3.7: Biểu đồ so sánh truy vấn anh em sau BioX+-tree và BioX-tree 101
Trang 13Hình 3.8: Biểu đồ so sánh truy vấn con cái BioX+-tree và BioX-tree 102Hình 3.9: Biểu đồ so sánh truy vấn phạm vi BioX+-tree và BioX-tree 103
Trang 14vũ bảo của công nghệ sinh học trong kỷ nguyên này Dữ liệu đó có thể tìm thấy từ các nguồn dữ liệu uy tín như SRA (công khai các trình tự được giải mã), NCBI Genome (các loài đã được giải trình tự), ensembl.org (tổng hợp rất nhiều dữ liệu thành BioMart)…
Các tài liệu XML tin sinh học là dữ liệu gồm có 2 phần, dữ liệu sinh học (DNA, Protein, phân loài,…) và các dữ liệu mô tả dữ liệu sinh học Cấu trúc dữ liệu được định nghĩa theo các thẻ (tag) và các cấu trúc dữ liệu này thường linh hoạt, có thể khác biệt bởi vì chúng được tùy biến theo các cá nhân, tổ chức sinh học thực hiện
Vì có kích thước lớn như vậy, các tài liệu cơ bản phải lưu trữ và khai thác trên đĩa cứng, hoặc trong hệ thống lưu trữ phân tán, trước khi có thế truy xuất 1 phần nhỏ để đưa lên bộ nhớ chính (RAM) mỗi khi cần phân tích sâu hơn Cơ chế truy xuất đĩa cứng là tuần tự và thời gian tiêu tốn chậm hơn rất nhiều lần so với truy xuất trên RAM Do vậy, các phương pháp truy vấn cần truy xuất đĩa cứng luôn tìm cách sao cho tối thiểu số lần cần truy xuất đĩa cứng và tối đa tận dụng bộ nhớ chính, như
là Cache, Buffer
Các truy xuất thực thi theo thuật toán của các truy vấn đặc thù, được thiết kế
để đạt kết quả mong muốn trong thời gian ngắn và phù hợp với truy vấn Ví dụ:
- Truy vấn Xpath cho 01 tài liệu XML (tìm kiếm chính xác)
Trang 151 Trích xuất tất cả các dữ liệu có tags có quan hệ cùng nguồn gốc/anh
em với nhau của 1 loại Chuột Bạch
2 Trích xuất toàn bộ các dữ liệu là hậu duệ của heo giống Châu Phi
- Truy vấn tương đồng cho dữ liệu các đoạn DNA (tìm kiếm xấp xỉ)
1 Tìm kiếm tất cả các Gen tương đồng với 1 đoạn Gen mẫu của một loài mới
Giải pháp truyền thống cho các truy vấn như trên là lựa chọn và cài đặt các phương pháp đánh chỉ số (indexing) phù hợp một số loại dữ liệu và truy vấn đặc thù Các phương pháp này có nhưng gặp nhiều hạn chế với dữ liệu văn bản kích thước lớn như vậy
- Với dữ liệu văn bản, kích thước dữ liệu chỉ số sinh ra thường cũng rất lớn, thậm chí lớn hơn nhiều so với dữ liệu gốc, như vậy gây nên các vấn đề:
1 Lưu trữ dữ liệu chỉ số này là vấn đề nan giải
2 Nén dữ liệu và khai thác dữ liệu đồng thời kém hiệu quả
- Hơn nữa, nếu chỉ số là dữ liệu văn bản thì vấn đề tốc độ truy vấn vẫn là vấn đề khó giải quyết
Do vậy, các nghiên cứu gần đây về đánh chỉ số một tài liệu XML có xu hướng:
- Tách tài liệu XML thành 2 phần dữ liệu và áp dụng các phương pháp đánh chỉ
số khác nhau cho phù hợp với dạng dữ liệu và loại truy vấn đặc thù Cụ thể là:
1 Phương pháp đánh chỉ số dữ liệu cấu trúc (dữ liệu các thẻ) và hỗ trợ các truy vấn đặc thù như Xpath
2 Phương pháp đánh chỉ số dữ liệu sinh học (như các đoạn DNA) và hỗ trợ các truy vấn đặc thù như tìm kiếm các chuỗi DNA tương đồng
- Chuyển đổi dữ liệu văn bản gốc về dạng số nhằm mục đích:
1 Giảm kích thước dữ liệu gốc ban đầu
2 Áp dụng các phương pháp đánh chỉ số phù hợp
Trang 163 Cải thiện tốc độ các truy vấn
Các vấn đề cần giải quyết rất rộng gồm tin học và sinh học, vì vậy nghiên cứu
của luận án tập trung giải bài toán Phương pháp đánh chỉ số hỗ trợ cho các truy vấn đặc thù về tốc độ bằng cách giảm số lần cần truy cập đĩa cứng mà vẫn đạt được kết quả mong đợi
Kết quả luận án đã giải bài toán Phương pháp đánh chỉ số dữ liệu cấu trúc (dữ liệu các thẻ) và hỗ trợ các truy vấn Xpath Ngoài ra, với bài toán Phương pháp đánh chỉ số dữ liệu sinh học (như các đoạn DNA) và hỗ trợ các truy vấn đặc thù như tìm kiếm các chuỗi DNA tương đồng, luận án đã khảo sát được phương pháp và
có định hướng cho nghiên cứu tiếp theo Cụ thể mục tiêu và kết quả của luận án như sau
Mục tiêu thực hiện của luận án:
- Nghiên cứu phương pháp đánh chỉ số dựa trên phương pháp R-tree nhằm tăng hiệu quả các truy vấn Xpath trên dữ liệu XML, thông qua dữ liệu trung gian được chuyển đổi về dạng tọa độ số của các tags Dữ liệu XML mục tiêu là từ một tài liệu XML tin sinh học
- Sử dụng phương pháp chuyển đổi dữ liệu văn bản có cấu trúc XML về dữ liệu dạng số mà biểu diễn được trên không gian 2 chiều (có thể mở rộng lên nhiều chiều) Mục tiêu là nhằm giảm kích thước dữ liệu gốc và áp dụng được phương pháp đánh chỉ số đề xuất
Kết quả đạt đƣợc của luận án nhƣ sau:
- Bằng thực nghiệm đã chỉ ra rằng phương pháp chuyển đổi dữ liệu XML tin sinh học về dữ liệu không gian là có hiệu quả về giảm kích thước với tỷ lệ khá tốt nói chung Tuy nhiên, tỷ lệ nén không có có kểt quả tốt đồng đều giữa các thực nghiệm với dạng tài liệu XML tin sinh học DNA, Protein, và cây phân loài…
Trang 17- Đề xuất được phương pháp đánh chỉ số BioX-tree và phương pháp mở rộng BioX+ tree Các phương pháp đề xuất (cải tiến phương pháp R-tree) đã chứng
tỏ hiệu quả hơn phương pháp R-tree khi áp dụng để đánh chỉ số dữ liệu chuyển đồi từ dữ liệu XML qua các thực nghiệm Đặc biệt, các truy vấn anh em, hoặc các truy vấn có tận dụng truy vấn anh em trong thuật toán, có kết quả tốt Lý thuyết và thực nghiệm đã chứng mình được rằng: các truy vấn đã giảm được các bước duyệt cây dư thừa trên cây chỉ số (lưu trữ trên đĩa cứng), nhờ đó giảm số lần truy xuất trên đĩa cứng để lấy dữ liệu lên bộ nhớ chính, mà vẫn có được kết quả như mong muốn
- Hạn chế của các phương pháp đề xuất là việc cải tiến cấu trúc cây R-tree để hiệu quả hơn với các truy vấn Xpath đã làm suy yếu cấu trúc tối ưu về không gian của phương pháp R-tree gốc Hậu quả là, các truy vấn thông thường của R-tree như truy vấn phạm vị (không phải truy vấn Xpath), hai loại truy vấn Xpath (toàn bộ) các tags trước và sau của một tag bất kỳ có kết quả không tốt
và thất thường, khó dự đoán Tất nhiên, các truy vấn này ít ý nghĩa với các truy vấn Xpath Nhưng để mở rộng phạm vi áp dụng, NCS sẽ tiếp tục nghiên cứu sau này Trong quá trình thực hiện các nghiên cứu, NCS đã đặt tên phương pháp là XR-tree trong các công bố của mình nhưng sau đó phát hiện trùng với tên 1 phương pháp trong một bài báo khác, vì vậy, trong luận án, NCS đã đổi tên thành BioX-tree thay cho XR-tree
Trang 18về hệ thần kinh của động vật, con người đã phát hiện ra các nơ ron thần kinh và cách xung thần kinh được dẫn truyền qua các tế bào thần kinh Kết hợp với những tính toán vật lý, trí tuệ nhân tạo, những lý thuyết sinh học trên được áp dụng vào tin học, để hình thành một mạng tính toán (mạng nơ ron - Neuron network)
Nội dung chính của sinh học tính toán là sử dụng các công cụ tách chiết các thông tin hữu ích từ tập rất lớn các dữ liệu thu nhận được bằng các kỹ thuật sinh học
mà các dữ liệu này thay đổi và được bổ sung liên tục với lưu lượng và mức độ lớn Bài toán đặc trưng trong sinh học tính toán bao gồm việc lắp ráp những trình tự DNA chất lượng cao từ những đoạn ngắn DNA thu nhận được từ kỹ thuật xác định DNA và việc dự đoán quy luật điều hòa gen với dữ liệu từ các mARN, microway hay khối phổ Các lĩnh vực nghiên cứu chính của tin sinh học bao gồm [10][18][23]:
Hệ gen học phân tích trình tự; Tìm kiếm gen; Tìm kiếm các đột biến; Phân loại học phân tử; Phân tích chức năng gen; Bảo tồn đa dạng sinh học; Phân tích hình ảnh mức độ cao; Công cụ phần mềm…
Trang 191.1.2 Các nguồn dữ liệu
Dữ liệu sinh học ngày càng tăng theo cấp số mũ do sự phát triển của các kỹ thuật giải trình tự Như vậy, vấn đề đặt ra là cần phải có biện pháp lưu trữ, quản lý,
sử dụng và chia sẻ nguồn dữ liệu này Hơn thế nữa, với việc hệ thống hóa toàn bộ
dữ liệu trên, chúng ta dễ dàng thực hiện việc chia sẻ những thông tin ấy qua mạng hay kết nối thêm vào những tập dữ liệu phân tán ở nơi khác Trên thế giới, một số
cơ sở dữ liệu lớn, trực tuyến đã được xây dựng để cung cấp thông tin cho các nhà nghiên cứu sinh học Các thông tin này được sắp xếp và lưu trữ bởi một hệ thống các máy chủ rất mạnh của ba ngân hàng gen lớn nhất thế giới hiện nay là: NCBI, EMBL/EBI, CIB-DDBJ… Chúng được gọi là các CSDL sinh học Cơ sở dữ liệu sinh học thường chứa các thông tin về trình tự axit nucleic (DNA, ARN), trình tự axit amin của các phân tử protein, thông tin về cấu trúc và giải phẫu của một số genome, mô hình cấu trúc không gian của các đại phân tử
Cơ sở dữ liệu NCBI:
NCBI - National Center for BioInformatic Information là trung tâm quốc gia
về công nghệ sinh học thuộc viện sức khỏe quốc gia Hoa Kỳ NCBI được thành lập ngày 04/10/1988, đảm nhiệm việc quản lý CSDL trình tự DNA và từ đó còn được gọi là GenBank NCBI là nơi cung cấp, trao đổi thông tin về sinh học phân tử của
Mỹ thông qua những CSDL trực tuyến Ngoài ra, còn tham gia những nghiên cứu
về sinh học tính toán, phát triển các công cụ phân tích bộ gen, protein… Trong NCBI, chứa đựng nhiều CSDL chuyên dụng khác như:
- CSDL tài liệu (Literature Database): Bookshelf, PubMed, PubMed Central: Tìm kiếm những thông tin cơ bản hoặc các chủ đề nghiên cứu mới, miễn phí PubMed chứa phần tóm tắt của hơn 15.000.000 kết quả nghiên cứu trong lĩnh vực sinh y học
- CSDL Nucleotide (Nucleotide databases)
Trang 20+ GenBank: Tập hợp tất cả các trình tự nucleotide và axit amin hiện có Trong lần công bố gần đây nhất, INSDC cho biết CSDL trình tự DNA đã vượt quá 100 TeraByte
+ GenBank® là CSDL trình tự di truyền của NIH Có khoảng 51.674.486.881 base trong 46.947.388 bản trình tự trong các nhánh của GenBank và 53.346.605.784 base trong 10.276.161 bản ghi trình tự ở nhánh WGS vào 8/2005
+ Ngoài ra còn có các CSDL chủ đề trực thuộc GenBank như: dbEST (data base of Expressed Sequence Tags), HomoloGene, MGC (Mamalian Gene Collection), PopSet, TPA: Third Party Annotation (TPA) Sequence
- CSDL Protein (Protein Databases) 3D Domains: Bao gồm các trình tự và cấu trúc 3 chiều của các domain trong các phân tử protein
+ Cơ sở dữ liệu cấu trúc (Structure Databases) 3D Domain: MMDB (Molecular Modeling Database) là CSDL mô hình cấu trúc phân tử 3D, bao gồm các protein và các polynucleotide MMDB chứa hơn 28.000 cấu trúc và được liên kết với phần còn lại của CSDL ở NCBI
- Cơ sở dữ liệu hệ thống học (Taxonomy database) chứa tên của các sinh vật có mặt trong cơ sở dữ liệu di truyền với ít nhất một trình tự nucleotide hoặc protein NCBI cung cấp một hệ thống hệ thống phân loại cùng với các đơn vị phân loại (taxa)
- Cơ sở dữ liệu genome (genome database)
+ Các nhiễm sắc thể ung thư: Cancer Chromosomes: 3 cơ sở dữ liệu NCI/NCBI SKY/M-FISH và CGH
+ Cơ sử dữ liệu các Gene, Genome Project, Genomes: Các gen, các trình tự được lưu trữ trong một hệ thống, để truy cập có thể sử dụng các công cụ như Entrez Gene
Cơ sở dữ liệu EMBL/EBI
Trang 21EBI -European Bioinformatics Institute được thành lập năm 1980 tại Đức ban đầu nó là phòng thí nghiệm nghiên cứu trình tự và xây dựng CSDL nucleotid đầu tiên trên thế giới Với việc cung cấp các dữ liệu điện tử, nó nhanh chóng trở thành một thư viện lớn và mang tính thương mại đồng thời xây dựng nhiều dự án sinh học
và hợp tác toàn cầu trong lĩnh vực này Năm 1992, EBI là một phần của phòng thí nghiệm sinh học phân tử châu âu (EMBL-European Molecular Biology Laboratory Library), địa điểm tại Hinxton, Anh EMBL/EBI có nhiều CSDL chứa đựng trong
nó, nhưng nổi bật là:
- CSDL tài liệu (Literature Databases)
+ Medline: Bao quát tất cả các lĩnh vực của y học, chăm sóc bệnh nhân, nha khoa, thú y, hệ thống chăm sóc sức khỏe và khoa học tiền lâm sàng + Omim: Di truyền Mendel ở người (Online Mendelian Inheritance in Man -OMIM) là một tập hợp của các gen và các rối loạn di truyền
+ Patent Abstracts: Các bản tóm tắt có liên quan đến CNSH của các ứng dụng mô hình lấy từ các sản phẩm dữ liệu của European Patent Office (EPO)
+ Taxonomy: CSDL phân loại của ISDC (International Sequence Database Collaboration) chứa các tên của các sinh vật được trình bày dưới dạng CSDL trình tự
- CSDL Microarray (Microarray Databases)
+ ArrayExpress: Một CSDL cho microarry dựa vào dữ liệu biểu hiện gen + Miame : Thông tin tối thiểu về một thí nghiệm microarry (Minimum Information About a Microarray Experiment (MIAME)
+ Công nghệ microarry tận dụng các nguồn trình tự được tạo ra từ các dự
án xác định trình tự genom để trả lời câu hỏi là các gen nào đang được biểu hiện ở một dạng tế bào nhất định của một sinh vật ở một thời gian nhất định trong những điều kiện nhất định
Trang 22- CSDL Nucleotide (Nucleotide Databases)
+ CSDL trình tự nucleotide của EMBL là một thành viên các nước châu Âu trong 3 CSDL lớn nhất thế giới Có thể truy cập vào hàng trăm trình tự genom hoàn chỉnh cùng với các sản phẩm protein dịch mã nhờ máy chủ của EBI Chứa các
+ ASD là CSDL phân cắt nảy sinh (Alternative Splicing Database) chứa dữ liệu về các exon phân cắt phát sinh cùng với các thông tin bổ sung đi kèm ATD là CSDL đa dạng về các bản phiên mã nảy sinh (Alternate Transcript Diversity Database ATD) Genomes Server cho một cái nhìn tổng quan của các genom hoàn chỉnh ở EBI IPD là CSDL đa hình miễn dịch (Immuno Polymorphism Database IPD), bao gồm các gen đa hình của hệ thống miễn dịch
Cơ sở dữ liệu DDBJ
Cơ sở dữ liệu CIB – DDBJ (Center for Information Biology and DNA Data Bank of Japan) là cơ sở dữ liệu đặt dưới dự quản lý của Trung tâm Thông tin Sinh học, Viện Di truyền Quốc gia Nhật Bản (Japan National Insititute of Genetics) CIB – DDBJ là cơ sở dữ liệu công nghệ sinh học quan trọng và là cơ sở dữ liệu DNA duy nhất ở Nhật Bản Cơ sở dữ liệu này được xây dựng trước hết nhằm phục vụ cho hoạt động khoa học của các nhà sinh học Nhật Bản Tuy nhiên, do hợp tác và liên kết thông tin với hai trung tâm dữ liệu hàng đầu thế giới NCBI và EBI, nên CIB – DDBJ đã trở thành một trong ba trung tâm dữ liệu lớn nhất thế giới hiện nay Cơ sở
dữ liệu này cung cấp trực tuyến cho người sử dụng rất nhiều nhóm thông tin khác nhau, bao gồm cả thông tin thường hay truy cập và khai thác hay các chương trình
xử lý thông tin, ví dụ: SRS, gententry, FASTA BLAST, S&W, Search SQMatch XML, TXSearch GIB, ClustalW, GTOP LIBRA…
Các CSDL này hiện đang có lượng dữ liệu rất lớn, một vài ví dụ:
- Hệ gen người: https://www.ncbi.nlm.nih.gov/genome/?term=homo+sapien
Trang 23- 231 hệ gen của các loài khác nhau:
https://www.ncbi.nlm.nih.gov/genome/genomes/51
- Dữ liệu ở dạng BioMart:
http://asia.ensembl.org/biomart/martview/b91dd594fe1a2b5dcbf405412c265ca
- CSDL dược học: https://www.drugbank.ca/releases/latest
1.1.3 Vấn đề tin sinh học và cơ sở dữ liệu sinh học
Có thể thấy rằng cơ sở dữ liệu sinh học chứa đựng một lượng khổng lồ các thông tin như: chuỗi DNA, protein, chức năng, cây phân loài, và được bổ sung liên tục làm cho kích thước của chúng tăng lên một cách nhanh chóng, đặc biệt với
sự phát triển của các kỹ thuật sinh học hiện nay Cơ sở dữ liệu sinh học có thể được lưu trữ trên máy tính, tuy nhiên, các bài toán tìm kiếm hay truy vấn dữ liệu trên CSDL lớn như trên thường khó thực hiện được bởi các yếu tố liên quan đến không gian và thời gian truy xuất Không những vậy, với một CSDL được cập nhật thường xuyên thì việc phải thực hiện nhiều lần quá trình vào, ra (I/O) trên ổ đĩa lưu trữ sẽ bị ảnh hưởng bởi yếu tố không gian, thời gian Vấn đề đặt ra là, giải pháp cốt lõi nào
có thể giải quyết tốt việc truy vấn thông tin từ các tập dữ liệu lớn nêu trên để có thể thực hiện một cách nhanh chóng các yêu cầu truy vấn vào CSDL nhưng số lượng các thao tác truy cập ổ đĩa máy tính giảm đi đồng thời bảo đảm tránh các sai sót xảy
ra khi thực hiện yêu cầu Hình dưới đây mô tả quy trình tổng quát để xây dựng và
xử lý dữ liệu trong tin sinh học:
Hình 1.1: Xây dựng và xử lý dữ liệu trong tin sinh học
Hiện nay bài toán đánh chỉ số để tăng tốc độ xử lý dữ liệu tin sinh học đang được rất nhiều nhà nghiên cứu quan tâm, và có ý nghĩa lớn trong thực tế
Trang 24Tiền xử lý dữ liệu sinh học
Trong mô hình trên, bài toán tách chiết và xử lý file dữ liệu lớn cũng được đặt
ra, bản thân tác giả cũng có một số nghiên cứu liên quan đến vấn đề này để làm tiền
đề cho các nghiên cứu trong luận án này Tác giả chỉ giới thiệu sơ qua kết quả đã đạt được
Trước đây, việc lưu trữ và xử lý dữ liệu của các hệ thống lớn đều dựa trên công nghệ kho dữ liệu Các kho dữ liệu có khả năng tập hợp dữ liệu từ nhiều nguồn lại với nhau, có thể được chia thành các chủ đề (data mart) nhằm dễ dàng quản lý và khai thác Loại dữ liệu chính chúng có thể xử lý là dữ liệu có cấu trúc [1]
Trong tin sinh học, với lượng dữ liệu khổng lồ và phức tạp như đã nêu ở phần trên, sử dụng công nghệ kho dữ liệu gặp rất nhiều khó khăn như: không xử lý được file có khối lượng lớn, không xử lý được dữ liệu phi cấu trúc, truy vấn theo cách thông thường rất chậm khi số lượng bản ghi lớn
Công nghệ dữ liệu lớn ra đời để xử lý các vấn đề trên, áp dụng chúng vào quá trình xây dựng và xử lý số liệu là điều tất yếu Nền tảng của công nghệ dữ liệu lớn được nhắc đến nhiều nhất hiện nay là: Hadoop và Map Reduce Mặc dù rất hiệu quả trong lưu trữ dữ liệu và xử lý các dữ liệu rất lớn và phức tạp, truy vấn dữ liệu được tối ưu hơn nhiều các hệ quản trị dữ liệu truyền thống Nhưng hadoop cũng đi kèm những hạn chế, như:
- Khó kết nối với các hệ thống có sẵn đang hoạt động trên CSDL quan hệ (SQL Server, MySQL, …)
- Khó khăn cho các nhà quản trị CSDL hay phát triển phần mềm với mô hình dữ liệu không quen thuộc
- Không tận dụng được các công cụ sẵn có và không phải lúc nào cũng cần sử dụng toàn bộ dữ liệu để phân tích
Để giải quyết những hạn chế này, giải pháp được đặt ra là kết hợp công nghệ
dữ liệu lớn để giản lược độ phức tạp và kích thước
Trang 25Việc kết hợp 2 thành phần này đem lại sự dung hòa giữa việc xây dựng hệ thống và sử dụng dữ liệu Các dữ liệu lớn, dữ liệu bán cấu trúc và phi cấu trúc được tập hợp và lưu trữ trên Hadoop Tuy nhiên, việc xử lý khối lượng lớn dữ liệu trực tiếp sẽ không thể đáp ứng yêu cầu tốc độ cao, không tương thích với các công cụ sẵn có, trong khi không phải lúc nào cũng cần xử lý hết toàn bộ các dữ liệu thu thập được
Vì vậy, để giản lược độ phức tạp và kích thước của dữ liệu, hướng tiếp cận được đề xuất là: chiết xuất những dữ liệu quan trọng, chuyển thành dạng có cấu trúc
và lưu trữ sang kho dữ liệu Tại đây, các thuật toán hoặc các công cụ phân tích sẵn
có (trên các nền tảng NET, PHP, JAVA, …) sẽ xử lý dữ liệu và đưa ra kết quả dễ dàng hơn
Hình 1.2: Mô hình hadoop kết hợp kho dữ liệu để xử lý dữ liệu thô
Với các file dữ liệu gen lớn, và các ứng dụng đã được xây dựng sẵn để làm việc trên các chuẩn hoặc CSDL truyền thống Nếu chuyển đổi các ứng dụng này sang thực thi trên nền tảng hadoop sẽ mất thêm rất nhiều thời gian và công sức Nhưng nếu lưu trữ trực tiếp các file có dung lượng quá lớn thì kho dữ liệu truyền thống lại không có khả năng
Dựa vào giải pháp nêu trên, có thể tiến hành lưu trữ những file dữ liệu gen trên hadoop, sau đó sử dụng module chiết xuất ra các thông tin cần thiết như thông tin loài, chuỗi gene, thông tin mẫu,… và đưa chúng lên kho dữ liệu Từ đó công việc phân tích trở nên dễ dàng hơn, với môi trường và các công cụ quen thuộc
Trang 261.2 Các phương pháp đánh chỉ số dữ liệu sinh học và tin sinh học
1.2.1 Chỉ số và mô hình bộ nhớ ngoài
Cơ sở dữ liệu hoàn chỉnh thường không phù hợp với bộ nhớ chính (RAM) của
hệ thống máy tính Do đó, cơ sở dữ liệu hoàn chỉnh thường được lưu trữ trên các ổ đĩa cứng Truy cập vào ổ đĩa này sẽ chậm hơn so với truy cập vào bộ nhớ chính hơn 100.000 lần, đó là nút thắt cổ chai của các hệ quản trị cơ sở dữ liệu
Một ổ cứng bao gồm một số đĩa cứng quay xung quanh một trục trung tâm, mỗi đĩa có hai bề mặt được phủ bằng vật liệu từ tính Trên bề mặt của đĩa được chia thành các vòng tròn đồng tâm gọi là track, mỗi track lại được chia thành các cung đồng tâm gọi là sector, sector chính là đơn vị lưu trữ nhỏ nhất trên ổ cứng
Khi có yêu cầu đọc dữ liệu từ đĩa thì dữ liệu được đọc từ các sector, các sector vật lý sẽ được ánh xạ đến các block logic, tức là 1 block được gắn với một số lượng sector cố định Tác giả gọi kích thước (dung lượng) của một block là B Mỗi 1 lần đọc ghi ổ đĩa (I/O) sẽ chỉ xử lý được B đơn vị dữ liệu
Đo lường hiệu quả của một thuật toán chính là tính toán số lượng I/O để thực
hiện một hành động Nếu N là số lượng các đối tượng trong cơ sở dữ liệu và K là số
lượng đối tượng trả về bởi một câu truy vấn, thì số lượng tối thiểu của các block để lưu trữ cơ sở dữ liệu là B
N n
và số lượng tối thiểu I/O để trả lời cho báo cáo là
k Chúng ta nói rằng một thuật toán sử dụng không gian tuyến tính, nếu nó
sử dụng O(n) block trên đĩa, và nó sử dụng thời gian logarit để trả lời một truy vấn cần thực hiện (logBn + k) I/O Lưu ý rằng logBn trong mô hình này khác với log2n
vì B không phải là hằng số mà là một biến
Chỉ số (index) trong cơ sở dữ liệu là một cấu trúc tra cứu đặc biệt mà công cụ tìm kiếm cơ sở dữ liệu có thể sử dụng để tăng nhanh thời gian và hiệu suất truy xuất
dữ liệu thông qua việc giảm thiểu số lượng các block mà chúng ta cần phải truy cập
Trang 27để trả lời một câu truy vấn, đồng thời giảm thiểu số lượng các block được sử dụng
để lưu trữ một cơ sở dữ liệu nếu có thể
1.2.2 Các phương pháp đánh chỉ số cho dữ liệu sinh học
Như đã trình bày ở phần trên, có thể thấy rằng cơ sở dữ liệu sinh học chứa đựng một lượng khổng lồ các thông tin sự sống và được bổ sung liên tục làm cho kích thước của chúng tăng lên một cách nhanh chóng, đặc biệt với sự phát triển của các kỹ thuật sinh học hiện nay Cơ sở dữ liệu gen có thể được lưu trữ trên máy tính, tuy nhiên, các bài toán tìm kiếm hay truy vấn dữ liệu trên CSDL lớn như trên thường khó thực hiện Giải pháp cốt lõi có thể giải quyết tốt việc truy vấn thông tin
từ các tập dữ liệu lớn là phương pháp đánh chỉ số (Indexing), đây cũng là giải pháp được lựa chọn nhiều nhất và có hiệu quả hơn cả
Rất nhiều các nghiên cứu đã được triển khai để thực hiện đánh chỉ số cho CSDL lớn với mục đích là giải quyết bài toán vào, ra dữ liệu được lưu trữ trên máy tính với các phương pháp tiếp cận cả về không gian và thời gian Qua việc khảo sát nhiều phương pháp, tác giả chia các phương pháp đã được sử dụng thành hai nhóm:
- Nhóm 1: Các phương pháp thực hiện so sánh các trình tự bằng cách so sánh các phân đoạn trong chuỗi có thể và tối ưu hóa sự giống nhau
- Nhóm 2: Các phương pháp có sử dụng sự biến đổi đặc biệt để xây dựng chỉ số
1.2.2.1 Các thuật toán so sánh tương đồng thông qua chuỗi đại diện
Nhóm các thuật toán này mô tả việc thực hiện tìm kiếm và truy vấn bằng cách
so sánh các trình tự thông qua việc so sánh các phân đoạn (chuỗi đại diện) với chuỗi ban đầu nhằm tìm kiếm sự giống nhau trong chuỗi Các thuật toán này thường được
sử dụng để xác định các vị trí (phạm vi) giống nhau giữa hai trình tự DNA hoặc Protein
Hạn chế của nhóm thuật toán này là không hiệu quả khi kích thước của cơ sở
dữ liệu quá lớn Một số thuật toán điển hình như: Smith - Waterman [41] và BLAST [69][88] là các thuật toán nổi tiếng để thực hiện so sánh các trình tự thông
Trang 28qua chuỗi đại diện Ưu điểm của phương các phương pháp này là độ phức tạp trong tính toán là 0(mn) trong đó m và n là độ dài của các chuỗi con Nhược điểm của các phương pháp này là khi cơ sở dữ liệu DNA được bổ sung liên tục và CSDL lớn đến một lúc nào đó sẽ làm giảm hiệu quả tính toán của thuật toán trong việc tìm kiếm và
so sánh Nhiều thuật toán khác, được cải tiến từ thuật toán nổi tiếng BLAST cũng cho phép thực hiện các tính toán một cách nhanh chóng như thuật toán Flash [13] Các thuật toán PattenrnHunter [41] và BLAT [88] Các cải tiến này, cho phép phát hiện tốt hơn trong việc tìm kiếm và thay thế các trình tự trên tập dữ liệu rất lớn và đặc biệt có hiệu quả khi thực hiện nhiều truy vấn nhỏ trong một truy vấn chính Một thuật toán mở rộng của thuật toán PattenrnHunter là Piers [14][88] Một số thuật toán khác như Twee-Hee Ong [41][56] được cải tiến từ thuật toán Fasta, trong thuật toán này, cung cấp cách xử lý trong để tìm kiếm sự tương đồng theo cơ chế lọc và tinh lọc Trong thuật toán, sau mỗi lần lọc rồi tinh lọc, chuỗi truy vấn sẽ làm khóa
để thực hiện tìm kiếm tiếp theo giống như thuật toán FASTA [59] hoặc BLAST [3][6] Tương tự, thuật toán Paper [44][45] là một sự phát triển chi tiết hơn từ Twee-Hee Ong Từ thuật toán Papers, người ta đã phát triển thành các phương pháp Similar multi-step và filter and refine BLAST [74] là kỹ thuật được sử dụng để tìm kiếm vị trí một vùng cục bộ Ngoài các thuật toán nêu trên, có thể kể ra một vài thuật toán khác, đã được công bố như Suffix array scans [65]; RAMdb - Rapid Access Motif database [24] hay Dynamic programming [54][69][77]
1.2.2.2 Các thuật toán sử dụng sự thay đổi cấu trúc chỉ số
Nhóm các thuật toán này thực hiện tìm kiếm và truy vấn bằng cách can thiệp vào cấu trúc chỉ số như wavelet, phân tích ma trận, thống kê bộ gen, thay đổi tần số… Các thuật toán này thường sử dụng phương pháp véc tơ để thực hiện cấu trúc chỉ số Ưu điểm là chúng giúp giảm bớt những vấn đề không mong muốn hoặc làm phá vỡ cấu trúc trong quá trình truy vấn đối với cơ sở dữ liệu gốc
Các thuật toán điển hình như ProperSearch tool [88], phương pháp CAFE [86][87] Ngoài ra, các phương pháp Metric space indexing techniques [88], Kahveci and Singh [41][74], Williams & Zobel [41] và Ozturk and
Trang 29Ferhatosmanoglu [41] là các kỹ thuật đánh chỉ số có sử dụng sự biến đổi đặc biệt dựa trên kỹ thuật wavelets, phân tích ma trận, và thống kê Gen Jeong [41], Jiang [41] là các biến thể của Kahveci and Singh và Ozturk and Ferhatosmanoglu Một số thuật toán khác BIS [57] (BIS - Bitmap indexing structure), IDC [46] (IDC - Increamentally Decreasing Cover) cũng được sử dụng để cho phép đánh chỉ số Trong những phần trên, tác giả đã tìm hiểu và liệt kê các phương pháp có thể thực hiện đánh chỉ số cho CSDL gen Các phương pháp này đều hướng đến việc tìm cách xây dựng cấu trúc chỉ số có khả năng lưu trữ nhỏ và thực hiện truy vấn nhanh giữa hai chuỗi con bằng cách sử dụng phương pháp véc tơ hoặc phương pháp so sánh giữa hai chuỗi Dưới đây là sơ đồ tổng hợp, mô tả các phương pháp tiếp cận và các cải tiến của những phương pháp này với các cấu trúc không gian - thời gian ẩn theo nhóm mà tác giả phân loại và liệt kê ở trên
Hình 1.3: Sơ đồ mô tả các phương pháp đánh chỉ số CSDL sinh học
Trang 301.2.3 Các phương pháp đánh chỉ số cho dữ liệu tin sinh học
Có rất nhiều loại tài liệu tin sinh học được lưu trữ dưới nhiều định dạng khác nhau, trong luận án này, tác giả sẽ tập trung vào dữ liệu dạng XML có kích thước lớn, đây là một trong những chuẩn đầu ra cho người dùng có thể tải về từ các nguồn
dữ liệu nêu phía trên
Cũng như mô hình dữ liệu có cấu trúc, mô hình dữ liệu bán cấu trúc XML cũng có các ngôn ngữ truy vấn riêng, phổ biến nhất là Xpath và Xquery Trong đó, Xpath là dạng đơn giản và cơ bản của Xquery Cơ chế hoạt động của truy vấn XPath thường phân ra 2 dạng: Tuần tự và đánh chỉ số Với dạng tuần tự, dữ liệu XML sẽ không được tiền xử lý trước khi truy vấn Mỗi truy vấn sẽ thực hiện đọc toàn bộ dữ liệu Dạng đánh chỉ số sẽ tiền xử lý dữ liệu XML để xây dựng cấu trúc
dữ liệu khác mà mỗi lần truy vấn không đòi hỏi quét toàn bộ dữ liệu Sau đây là một
ra khỏi phần nội dung và nén riêng biệt, đã cho hiệu quả tốt hơn các phương pháp trước
Dietz [21] là phương pháp đầu tiên sử dụng kỹ thuật mã hóa cấu trúc bằng phương pháp duyệt thứ tự cây theo duyệt cây theo thứ tự trước (post-order) và duyệt
Trang 31cây theo thứ tự sau (pre-order) Li and Moon in XISS [61] đã sử dụng phương pháp
B+-tree để đánh chỉ số phần tử và thuộc tính nhưng cũng có những nhược điểm Các nghiên cứu gần đây đã chuyển các tag phần tử vào không gian 2 chiều, bằng cách sử dụng thứ tự trước cho trục x và thứ tự sau cho trục y Trong không gian này, 4 trục chính cho truy vấn Xpath cho phần tử nội dung gồm có thế hệ sau, tổ tiên, anh em trước và sau (descendant, ancestor, following, and preceding) sẽ chia không gian ra làm 4 vùng, mỗi vùng sẽ đại diện cho 1 trục truy vấn Xpath Có 2 phương pháp đánh chỉ số tiêu biểu cho không gian đa chiều là Grid based và R-tree based
Trong các phần tiếp theo, tác giả sẽ trình bày và phân tích kĩ hơn các ưu nhược điểm của các phương pháp nêu trên
1.3 Phương pháp đánh chỉ số tài liệu XML
1.3.1 Tài liệu XML và Xpath
Tài liệu XML
XML (eXtensible Markup Language) [81] là một mô hình dữ liệu phân cấp có nguồn gốc SGML, nó cho phép mô hình hóa một tài liệu như một cấu trúc cây Giống với HTML cũng có nguồn gốc từ SGML, XML được thiết kế như một ngôn ngữ cấu trúc dữ liệu chung có khả năng mô hình hóa không chỉ các tài liệu tiêu chuẩn mà còn cả dữ liệu bán cấu trúc nói chung XML cung cấp cách thức mô
tả dữ liệu phong phú, linh hoạt và hiệu quả bằng cách đánh dấu dữ liệu bằng các thẻ
mô tả (tag) Tuy nhiên, XML không cung cấp cách thức định vị các phần dữ liệu có cấu trúc cụ thể trong một tài liệu nhất định Vì tài liệu XML liên quan đến DNA trông khá phức tạp và khó hiểu, để hình dung hơn, trong phần lý thuyết này tác giả xin được lấy một ví dụ dễ hiểu và phổ biến về tài liệu XML liên quan đến sách Ví
dụ, trong Hình 1.4, tài liệu sẽ cần được phân tích cú pháp và sau đó tìm kiếm theo từng phần tử để tìm các tag name
Thông thường, để thao tác với tài liệu XML người ta sử dụng thư viện DOM (Document Object Model) tạm dịch là mô hình các đối tượng, DOM định nghĩa một
Trang 32chuẩn truy cập các tài liệu như XML và HTML, được chia làm 3 phần/cấp độ khác nhau:
- Core DOM – mô hình chuẩn cho các tài liệu cấu trúc
- XML DOM – mô hình chuẩn cho các tài liệu XML
- HTML DOM – mô hình chuẩn cho các tài liệu HTML
DOM định nghĩa các đối tượng và các thuộc tính của tất cả các phần tử tài liệu, và các phương thức (giao diện) để truy cập chúng Việc xử lý và làm việc với đối tượng XML rất phức tạp và đa dạng, chính vì vậy thư viện sẽ cung cấp cho chúng ta nhiều phương thức, đối tượng và mỗi thành phần như vậy sẽ có những nhiệm vụ riêng biệt Nhưng chúng chỉ hiệu quả trên các tài liệu nhỏ, đối với các tài liệu lớn quy trình này có thể không thể xử lý và dễ gặp lỗi khi thực thi
Hình 1.4: Ví dụ về tài liệu XML biểu diễn dưới dạng text và dạng cây
Tài liệu XML tin sinh học
Tài liệu XML tinh sinh học cũng được tổ chức giống như các tài liệu XML thông thường nhưng chúng thường có kích thước lớn, có thể vài GB, vài chục GB, thậm chí hàng TB
Trang 33Hình 1.5: Ví dụ tài liệu XML tin sinh học
Các file tài liệu này lớn do:
- Đóng góp từ cộng đồng nghiên cứu liên tục
- Khối lượng dữ liệu sinh học và mô tả sinh học đi kèm thường rất lớn
- Có cấu trúc dữ liệu đa dạng và phức tạp: gen, protein, cây phân loài, phản ứng sinh hóa,
- Tính chia sẻ cộng đồng rộng lớn
XPath
XML là một ngôn ngữ để mô tả và lưu trữ dữ liệu, tuy nhiên với tốc độ phát triển của công nghệ thông tin, nhu cầu của các ứng dụng không chỉ dừng lại ở mức lưu trữ, các hệ thống cần trao đổi thông tin với nhau Để trao đổi thông tin trong các tài liệu XML, người ta cần một chuẩn chung để truy xuất dữ liệu Giải quyết vấn đề
đó, XML Path Language (XPath) được sinh ra XPath là một ngôn ngữ thiết kế ra với mục đích giúp cho ứng dụng có thể di chuyển bên trong XML document và truy xuất các giá trị cũng như thuộc tính (attribute) của các phần tử (element) Để có thể tiếp cận được Xpath nhanh nhất, trước tiên cần hiểu về những ngôn ngữ đặc tả
Trang 34giống như XML, HTML Cấu trúc 1 tài liệu XML có thể hình dung như 1 cái cây với nhiều cành và nhánh nhỏ khác nhau Tất cả các thành phần đó được gọi là phần
tử, mối quan hệ giữa các phần tử này trong Xpath như sau:
- Parent: mỗi node (element, attribute) đều có một node cha mẹ (parent) Ví
dụ ở trên, node book là cha mẹ của các nodes bookid, author, title…
- Children: mỗi node có thể có nhiều và cũng có thể không có node con cái (children) nào Ví dụ ở trên, node bookid là con cái của node book
- Siblings: là các nodes có chung node cha mẹ Ví dụ như các nodes bookid, author, title …
- Ancestors: là các nodes tổ tiên, bao gồm node cha mẹ và các nodes cha mẹ của cha mẹ Ví dụ có thể xem node book là tổ tiên của node last
- Descending: là các nodes hậu duệ, bao gồm node con cái và các node con cái của con cái
Biểu thức đường dẫn Xpath, trục và tham số vị từ
Tìm kiếm thông qua tài liệu XML bắt đầu tại một node bối cảnh trong cây XPath và liên quan đến điều này bằng cách sử dụng các trục và biểu thức đường dẫn
Ví dụ, tài liệu XML trong Hình 1.4 chứa một phần tử book có bookid là 17 Phần
tử book chứa các phần tử có tên là title, author… Trong XPath, phần tử book sẽ được biểu diễn dưới dạng node phần tử có cha là node phần tử bookstore Giả sử
rằng, chúng ta có biểu thức XPath trả về node phần tử con đầu tiên của node bối
cảnh Sử dụng node phần tử bookstore node bối cảnh, biểu thức này sẽ trả về node phần tử book có bookid là 17 Tuy nhiên, nếu chúng ta sử dụng node phần tử title làm node bối cảnh, biểu thức này sẽ trả về node phần tử author
Bây giờ, chúng ta đã thấy cấu trúc của tài liệu XML trong XPath, chúng ta xem xét có thể sử dụng cấu trúc này như thế nào để định vị các phần cụ thể của tài liệu Đường dẫn vị trí là một biểu thức chỉ định cách điều hướng cây XPath từ node này sang node khác Một đường dẫn vị trí bao gồm các bước vị trí, mỗi bước bao
Trang 35gồm “trục”, “kiểm tra node” và “vị từ” Để xác định vị trí một node cụ thể trong tài liệu XML, chúng ta kết hợp nhiều bước vị trí, mỗi bước sẽ tinh chỉnh quá trình tìm kiếm
Một trục cho biết node nào liên quan đến node bối cảnh, nên được đưa vào tìm kiếm Đặc tả XPath [11] liệt kê một họ gồm 13 trục được trình bày chi tiết trong Bảng 1.1 dưới đây:
Bảng 1.1: Các trục Xpath
self Bản thân node bối cảnh
parent Cha mẹ của node bối cảnh, nếu tồn tại
child Con cái của node bối cảnh, nếu tồn tại
ancestor Tổ tiên của node bối cảnh, nếu tồn tại
ancestor-or-self Tổ tiên của node bối cảnh hoặc chính nó
descendant Hậu duệ của node bối cảnh
descendant-or-self
Hậu duệ của node bối cảnh và chính nó
following Các node trong tài liệu XML sau node bối cảnh, không bao gồm
con cháu
following-sibling Các node anh em sau node bối cảnh
preceding Các node trong tài liệu XML trước node bối cảnh, không bao
gồm tổ tiên
preceding-sibling Các anh em trước của node bối cảnh
attribute Thuộc tính của node bối cảnh
namespace Không gian tên node bối cảnh trực thuộc
Trang 36Vị từ cũng có thể được xác định ở mỗi bước trong đường dẫn để hạn chế tập hợp các node xuất phát tại một bước Nói cách khác, các vị từ cho phép phân định chính xác hơn các dữ liệu quan tâm, dẫn đến các kết quả nhỏ hơn và có thể sử dụng nhiều hơn Vị từ được xác định bằng dấu ngoặc vuông và xuất hiện sau đường dẫn Nếu một vị từ đánh giá về giá trị số thay vì giá trị luân lý, kết quả được chuyển đổi thành đúng nếu số đó bằng với vị trí bối cảnh Ví dụ: một biểu thức đường dẫn là: / a / b [3] chỉ chọn câu lệnh thứ ba trong tập trả về b Điều này tương đương với vị từ luân lý / a / b [vị trí () = 3] sử dụng hàm vị trí trả về vị trí bối cảnh Một ví
dụ nữa sẽ cho chúng ta hiểu chi tiết về biểu thức đường dẫn vị từ và XPath [25] Bây giờ, giả sử rằng chúng ta muốn đánh giá truy vấn XPath Q đọc là: descendant:: b/follow-sibling :: * [location ()! = Last ()] trên node bối cảnh đầu vào
a Chúng ta có thể minh họa đánh giá này được thực hiện như thế nào bằng các bước đường dẫn vị trí
Hình 1.6: Cây phân tích cú pháp của Q với 5 node N1 N5
Hình 1.6 là cây phân tích cú pháp của Q với 5 node N1, N5 tương ứng với 5 biểu thức con của Q (N1, node gốc của cây phân tích cú pháp, tương ứng với Q) Sau đó, chúng ta tính toán truy vấn từ node lá N4, N5 và sử dụng phương pháp tiếp cận từ dưới lên để truy ngược lại N3, N2 và N1 là b Đó là trong trường hợp đường dẫn vị trí với trục phía sau
Trang 371.3.2 Các phương pháp theo hướng nghiên cứu chuyển đổi dữ liệu
XML sang không gian số trước khi thực hiện đánh chỉ số
1.3.2.1 Đánh số trên lược đồ
Trong tài liệu XML đầu vào, các thẻ sẽ được sử dụng để phân biệt các trường
dữ liệu, ở đây chúng ta gọi là các tag name Các tag name được lồng vào nhau để
xây dựng nên mối quan hệ tổ tiên - hậu duệ (ancestor – descendant, A-D) Khi đưa vào các thuật toán, chúng ta phải tổ chức dữ liệu khác đi để có thể lưu trữ được,
nhưng vẫn phải đảm bảo được vai trò của các tag name trong mối quan hệ A-D như
trên tài liệu XML
Một số phương pháp đã được đề xuất để xác định cấu trúc node này Chúng ta
sẽ xây dựng các mã định danh duy nhất gọi là NodeID để gán cho các tag name, từ
đó sẽ có các ánh xạ NodeID tag name Khi chuyển đổi tài liệu XML, các dữ liệu
sẽ biến đổi sao cho biểu diễn được trong không gian với hệ trục tọa độ Đề các Bước đầu tiên là tài liệu XML sẽ được xây dựng lên dạng cây với quan hệ phân cấp
cha con (như Hình 1.4), sau đó các tag name tương ứng sẽ được đánh 2 chỉ số theo
quy tắc duyệt cây theo thứ tự trước, duyệt cây theo thứ tự sau (cặp giá trị này sẽ tạo
thành NodeID) và đánh số thứ tự cho từng tag name của tài liệu XML [22][63]:
- Duyệt cây theo thứ tự trước (pre order): là thứ tự đọc tuần tự từ trên xuống dưới của các node, tức là các node sẽ được đánh số tăng dần từ trên xuống dưới cây cho đến hết
- Duyệt cây theo thứ tự sau (post order): là thứ tự đọc tuần tự được đánh số tăng dần từ trái qua phải trên cây
Trang 38Hình 1.7: Ví dụ về cách đánh chỉ số trên cây theo thứ tự duyệt cây theo thứ tự
trước, duyệt cây theo thứ tự sau
Trong [22] đưa ra cách thức kiểm tra mối quan hệ A-D, với 2 node x và y đã cho của cây T, x là tổ tiên của y khi và chỉ khi thỏa mãn biểu thức sau:
x = ancestor(y) <=> pre(x) < pre(y) ^ post(x) > post(y)
1.3.2.2 Phép nối có cấu trúc
Cách đơn giản nhất để cải tiến và đánh giá các truy vấn đường dẫn là chia các biểu thức lớn thành nhiều biểu thức nhỏ hơn (gọi là biểu thức con) và thực hiện tìm kiếm kết quả ở các bước con đó Việc kết nối (join) nhiều kết quả nhỏ lại sẽ cho kết quả cuối cùng, kết quả của phép join là tập các phần tử không sắp xếp thỏa mãn điều kiện A-D giữa các bước Lý thuyết này tương tự phép join giữa các bảng trong CSDL quan hệ, tức là mỗi bảng con thu được sẽ làm một phần kết quả
Ưu điểm của phương pháp này là việc tìm một phần của kết quả thông qua các biểu thức con sẽ đơn giản và dễ hiểu hơn do sẽ chia một công việc khó thành các công việc dễ, cuối cùng chúng được kết hợp lại và vẫn ra kết quả cuối cùng Một số giải pháp sử dụng cách tiếp cận này [63] tập trung vào việc tìm ra nhanh nhất các node yêu cầu và cung cấp một số thuật toán đánh giá mối quan hệ giữa chúng Hạn chế của nó là chúng ta cần xác định mối quan hệ A-D cho từng cặp node,
có thể chúng phải tìm rất nhiều lần và lặp đi lặp lại việc xem xét một phần tử trong các bước khác nhau, điều này gây tốn chi phí tài nguyên và thời gian không cần thiết
Trang 39XML Indexing and Storage System (XISS [63]) là một phương pháp lập chỉ số dựa theo phương pháp đánh số trên lược đồ với 03 cấu trúc chỉ số chính (cho phần
tử, thuộc tính, và chỉ số cấu trúc) kết hợp với một số thuật toán xử lý biểu thức đường dẫn
Về đánh chỉ số, XISS được cải tiến từ cách đánh của Dietz [63], thay vì các số thứ tự duyệt cây theo thứ tự trước, duyệt cây theo thứ tự sau bài báo đã đề nghị sử dụng một giá trị thứ tự cải tiến và một biến phạm vi cho các con cháu, mỗi node sẽ
có hai giá trị <order;size> như sau:
- Đối với node y và node cha mẹ x, order(x) < order(y) và order(y) + size(y)
≤ order(x) + size(x) tức là khoảng [order(y); order(y) + size(y)] nằm trong khoảng [order(x); order(x) + size(x)]
- Đối với 2 node anh em x và y, nếu x là anh em trước của y trong duyệt cây theo thứ tự trước thì order(x) + size(x) < order(y)
- Đối với node x, size(x) ≥ ∑y size(y) cho tất cả các node y là con trực tiếp của x
Điều kiện đảm bảo mối quan hệ A-D trên phương pháp này đưa ra như sau,
với hai node x và y đã cho trên cây T, x là một tổ tiên của y khi và chỉ khi thỏa mãn biểu thức: order(x) < order(y) ≤ order(x) + size(x)
Hình 1.8: Ví dụ minh họa về đánh chỉ số trong XISS
Trang 40Sau khi đã đánh chỉ số, chỉ số dựa trên tên (name index) trong XISS được triển khai lên cây B+-tree, đây là dữ liệu khóa để truy cập đến chỉ số phần tử và thuộc tính, nó đảm bảo tính tuần tự và định danh duy nhất được gọi là (NID)
Khi cần phải xử lý biểu thức truy vấn đường dẫn phức tạp, trước tiên thuật toán phân tách nó thành một số biểu thức con đơn giản hơn, các biểu thức con này tạo ra các kết quả trung gian và được join lại thành kết quả cuối cùng Các biểu thức con có thể là 1 phần tử đơn hoặc 1 thuộc tính, 1 phần tử với 1 thuộc tính (EA), 2 phần tử (EE), 1 bao đóng Kleene (+,*) hoặc là một kết hợp của 2 biểu thức con Ứng với mỗi tình huống trên, bài báo sẽ đề xuất một thuật toán join:
- EA-Join: phép nối này dùng khi nối danh sách các phần tử và danh sách các thuộc tính (là kết quả trung gian từ các biểu thức con), cả 2 danh sách được duyệt tuần tự
- EE-Join: phép nối nối 2 danh sách các phần tử Cả EA và EE đều sử dụng cách tiếp cận theo 2 giai đoạn: (1) hợp nhất các kết quả và (2) kiểm tra mối quan hệ A-D
- KC-Join: bao đóng Kleene được sử dụng khi một biểu thức đường dẫn chứa 0,1 hoặc nhiều lần xuất hiện một biểu thức con (sử dụng + hoặc *)
Nó sử dụng tuần tự EE-Join cho các kết quả cho đến khi phép join không tạo ra được tập kết quả lớn hơn
Hình 1.9: Một ví dụ sử dụng các phép join