Trong khuôn khổ luận văn thạc sĩ, tôi chọn đề tài nghiên cứu: “Cây quản lí đoạn và ứng dụng”, nghiên cứu về cấu trúc dữ liệu cây quản lí đoạn và thực hiện một phương pháp tiếp cận mới,
Trang 1Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN&TRUYỀN THÔNG
PHẠM THỊ NGA
CÂY QUẢN LÍ ĐOẠN VÀ ỨNG DỤNG
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên - 2015
Trang 2Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này của tự bản thân tôi tìm hiểu, nghiên cứu Các tài liệu tham khảo được trích dẫn và chú thích đầy đủ Nếu không đúng tôi xin hoàn toàn chịu trách nhiệm
Tác giả luận văn
Phạm Thị Nga
Trang 3Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
LỜI CẢM ƠN
Lời đầu tiên tôi xin được bày tỏ lòng biết ơn chân thành đến Ban Giám Hiệu, các thầy giáo, cô giáo phòng Sau đại học trường Đại học Công Nghệ Thông Tin & Truyền Thông, các thầy giáo ở Viện Công Nghệ Thông Tin đã giảng dạy và tạo mọi điều kiện cho tôi học tập, nghiên cứu và hoàn thành luận văn này
Đặc biệt, tôi xin bày tỏ sự kính trọng và lòng biết ơn sâu sắc đến PGS TSKH Vũ Đình Hòa, người đã tận tình hướng dẫn và giúp đỡ tôi trong suốt quá trình học tập, nghiên cứu và hoàn thành luận văn
Tôi chân thành cảm ơn các thầy cô tổ Tin học, trường Trung học phổ thông chuyên Lam Sơn, Thanh Hóa, nơi tôi công tác đã tạo điều kiện và hỗ trợ tôi trong suốt thời gian qua
Tôi cũng xin chân thành cảm ơn người thân, bạn bè đã giúp đỡ và động viên tôi trong suốt thời gian học tập cũng như trong thời gian thực hiện luận văn
Xin chân thành cảm ơn !
Thanh Hóa, ngày 10 tháng 04 năm 2015
Trang 4
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
MỤC LỤC
Trang
Lời cam đoan i
Lời cảm ơn iii
Mục lục iv
Danh mục các bảng v
Danh mục các hình vii
Danh mục các kí hiệu, chữ viết tắt viii
MỞ ĐẦU 1
Chương 1 TỔNG QUAN VỀ SINH HỌC PHÂN TỬ, TIN SINH HỌC VÀ BÀI TOÁN TÌM GIAO CÁC ĐOẠN GEN 4
1.1 Một số khái niệm cơ bản của sinh học phân tử 4
1.1.1 Ở cấp độ tế bào 4
1.1.2 Ở cấp độ phân tử 7
1.1.3 Phiên mã và dịch mã 11
1.2 Tổng quan về tin sinh học 12
1.3 Bài toán tìm giao các đoạn gen 15
Chương 2 ỨNG DỤNG CỦA CÂY QUẢN LÍ ĐOẠN ĐỂ TÌM GIAO CÁC ĐOẠN GEN 17
2.1 Đặc tả bài toán tìm giao các đoạn gen 17
2.2 Thuật toán tìm kiếm tuần tự 18
2.3 Cây quản lí đoạn 19
2.3.1 Cấu trúc cây quản lí đoạn 22
2.3.2 Các thao tác trên cây quản lí đoạn 23
2.4 Thuật toán tìm giao của các đoạn gen sử dụng cây quản lí đoạn 28
2.4.1 Xây dựng rừng cây quản lí đoạn lưu trữ thông tin các đoạn gen 29 2.4.2 Tìm kiếm các đoạn gen giao nhau 34
Trang 5Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Chương 3 MÃ HÓA, THỬ NGHIỆM CHƯƠNG TRÌNH TÌM GIAO
CÁC ĐOẠN GEN 36
3.1 Chuẩn bị dữ liệu 36
3.2 Mã hóa chương trình tìm giao các đoạn gen 37
3.2.1 Ngôn ngữ và môi trường lập trình 37
3.2.2 Chức năng cửa sổ truy vấn gen 39
3.2.3 Chức năng tìm giao hai tập các đoạn gen 41
3.3 Kiểm thử chương trình 43
3.3.1 Sử dụng cửa sổ truy vấn tìm giao giữa các đoạn gen của virus Ebola với hệ gen người 43
3.3.2 Tìm giao giữa hệ gen người và hệ gen chuột 44
3.3.3 Tìm giao giữa hệ gen chuột nhắt và hệ gen chuột cống 46
3.4 Đánh giá độ phức tạp và kết quả thực hiện chương trình 48
3.4 Mở rộng hướng nghiên cứu 49
KẾT LUẬN 51 TÀI LIỆU THAM KHẢO
PHỤ LỤC
Trang 6Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
DANH MỤC CÁC BẢNG
Trang
Bảng 3.1 Kết quả kiểm thử cửa sổ truy vấn 44Bảng 3.2 Kết quả kiểm thử tính đúng đắn chương trình tìm giao giữa hai hệ gen 45Bảng 3.3 Thời gian (s) trung bình chạy chương trình 47
Trang 7Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
DANH MỤC CÁC HÌNH
Trang
Hình 1.1 Xếp bộ nhiễm sắc thể người 5
Hình 1.2 Gen được cấu tạo từ ADN, một nhiễm sắc thể chứa nhiều gen 6
Hình 1.3 Cấu trúc phân tử ADN và ARN 8
Hình 1.4 Học thuyết trung tâm của sinh học phân tử 12
Hình 2.1 Hình vẽ thể hiện giao của hai tập các đoạn gen 18
Hình 2.2 Sơ đồ khối mô tả thuật toán tìm kiếm tuần tự 19
Hình 2.3 Ví dụ về một cây quản lí đoạn 21
Hình 2.4 Ví dụ về cửa sổ truy vấn 22
Hình 2.5 Các bước tìm giao của một đoạn gen với các đoạn gen trong một hệ gen 28
Hình 2.6 Cấu trúc nút và cây quản lí đoạn lưu thông tin các đoạn gen của một nhiễm sắc thể 31
Hình 3.1 Giao diện mô phỏng cách lấy dữ liệu hệ gen người từ UCSC Table Browser 37
Hình 3.2 Giao diện lựa chọn chức năng 39
Hình 3.3 Giao diện cửa sổ truy vấn gen 39
Hình 3.4 Giao diện hộp thoại chỉ định tệp dữ liệu về đoạn gen 40
Hình 3.5 Giao diện chức năng tìm giao hai tập các đoạn gen 42
Hình 3.6 Giao diện hộp thoại lưu kết quả các đoạn gen giao nhau vào tệp 42
Trang 8Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
DANH MỤC CÁC KÍ HIỆU, CHỮ VIẾT TẮT
ADN Axit deoxyribonucleic :
ARN Axit ribonucleic :
BED Browser Extensible Data :
mARN messenger ARN :
NST nhiễm sắc thể :
PTB Polypyrimidine Tract-Binding protein
rARN ribosomal ARN :
Trang 9MỞ ĐẦU
1 Lý do chọn đề tài
Từ những năm 2001 trở lại đây, sự tiến bộ về công nghệ và sự phổ cập của các hệ thống phần mềm tiên tiến đã đưa đến những sự thay đổi cách đào tạo chuyên gia trong lĩnh vực tin học Các kiến thức giải thuật được coi là đỉnh cao trước đây bây giờ đã trở thành “bảng cửu chương” mà ai cũng phải biết và phải thuộc Những giải thuật ít dùng và phức tạp thì không nhất thiết phải biết hoặc nhớ vì bất cứ ai và lúc nào cũng có thể tra cứu, tìm kiếm chúng trên internet khi cần thiết Thử thách bây giờ là ở chỗ ta có thể tìm ra những giải pháp hữu hiệu giải quyết một cách có hiệu quả các bài toán, các vấn đề có
mô hình toán học đơn giản nhưng có kích thước lớn hay không?
Để đạt được mục đích đó, người lập trình phải tận dụng tối đa khả năng
mà phần cứng và hệ điều hành cung cấp, khai thác tối đa khả năng của công
cụ lập trình, sử dụng linh hoạt các cấu trúc dữ liệu Trong đó, cây quản lí đoạn (interval tree) là một cấu trúc dữ liệu quan trọng, có nhiều ứng dụng trong hình học tính toán, truy vấn cơ sở dữ liệu và xử lí tín hiệu
Bên cạnh đó, tin sinh học là một lĩnh vực mới, giải quyết các bài toán sinh học bằng các phương pháp của khoa học tính toán với nguồn dữ liệu khổng lồ Việc so sánh các bộ dữ liệu đa dạng di truyền là căn bản để hiểu hệ gen sinh học Các nhà nghiên cứu phải khám phá nhiều bộ dữ liệu lớn về các đoạn gen (ví dụ như gen, sắp trình tự) để đặt các kết quả thí nghiệm của họ trong một bối cảnh rộng hơn và thực hiện những khám phá mới Mối quan hệ giữa các tập hợp dữ liệu về gen thường được đo bằng cách xác định các đoạn giao nhau, nghĩa là, chúng chồng lên nhau và do đó chia sẻ một đoạn gen chung Với những tiến bộ trong công nghệ sắp trình tự ADN, phương pháp
Trang 10hiệu quả để đo mối quan hệ có ý nghĩa thống kê giữa nhiều bộ tính năng di truyền là rất quan trọng đối với những phát hiện trong tương lai
Trong khuôn khổ luận văn thạc sĩ, tôi chọn đề tài nghiên cứu: “Cây quản
lí đoạn và ứng dụng”, nghiên cứu về cấu trúc dữ liệu cây quản lí đoạn và thực
hiện một phương pháp tiếp cận mới, nhanh chóng và linh hoạt để tìm giao giữa các đoạn gen bằng cách sử dụng cấu trúc dữ liệu này
2 Đối tượng và phạm vi nghiên cứu
Cây quản lí đoạn và ứng dụng để tìm giao các đoạn gen
3 Những nội dung nghiên cứu chính
Chương 1 Tổng quan về sinh học phân tử, tin sinh học và bài toán tìm
giao các đoạn gen
Chương này trình bày một số khái niệm cơ bản của sinh học phân tử, tổng quan về tin sinh học và bài toán tìm giao của các đoạn gen trong sinh học
Chương 2 Ứng dụng của cây quản lí đoạn để tìm giao các đoạn gen
Chương này trình bày cấu trúc và các thao tác trên cấu trúc dữ liệu cây quản lí đoạn và ứng dụng nó để giải bài toán tìm giao các đoạn gen
Chương 3 Mã hóa, thử nghiệm chương trình tìm giao các đoạn gen
4 Phương pháp nghiên cứu
Phương pháp nghiên cứu lí thuyết: Tổng hợp tài liệu, suy diễn, quy nạp, các phương pháp hình thức,
Phương pháp thực nghiệm: xử lí thống kê, đối sánh,
Phương pháp trao đổi khoa học, tổng hợp các kết quả của các nhà nghiên cứu liên quan đến lĩnh vực nghiên cứu, lấy ý kiến chuyên gia
Trang 115 Ý nghĩa khoa học của đề tài
Đề tài đưa ra một phương pháp nhanh chóng, hiệu quả và linh hoạt để tìm giao các đoạn gen Điều này mang ý nghĩa thiết thực trong việc hỗ trợ các nhà khoa học, những người làm công tác nghiên cứu, tìm tòi có một công cụ hữu ích, thuận tiện nhanh chóng tìm ra câu trả lời về số đoạn gen giao nhau,
vị trí giao nhau trên đường đi tìm mối quan hệ giữa các chủng loài, mối quan
hệ giữa các tập hợp gen Việc giải bài toán tìm giao các đoạn gen cho ta một công cụ lượng hóa (đo) mối quan hệ có ý nghĩa thống kê giữa các đặc tính di
truyền, giải mã các đầu mối tiến hóa, chẩn đoán cấu trúc và chức năng của các
gen Từ đó, việc giải bài toán theo cách thức nhanh chóng, hiệu quả sẽ có những đóng góp nhất định cho việc phát triển tin sinh học trong tương lai
Trang 12Chương 1
TỔNG QUAN VỀ SINH HỌC PHÂN TỬ, TIN SINH HỌC VÀ BÀI
TOÁN TÌM GIAO CÁC ĐOẠN GEN
1.1 Một số khái niệm cơ bản của sinh học phân tử
1.1.1 Ở cấp độ tế bào
Mỗi sinh vật đều gồm các tế bào Có khoảng 13
6 10 tế bào trong cơ thể người (có ước tính khác cho rằng con số này là 100.000 tỉ) [5] với khoảng 320 kiểu khác nhau, chẳng hạn như tế bào não có nhiệm vụ giữ gìn trí nhớ và tri thức, tế bào tim làm cho tim ta đập nhịp nhàng, tế bào ruột làm ra chất nhầy, v.v Những tế bào này có thời gian tồn tại nhất định Chẳng hạn như tế bào tinh trùng nam chỉ sống khoảng vài tháng, trong khi đó tế bào trứng của phái
nữ có thể tồn tại đến 50 năm
Mặc dù khác nhau về chức năng, các tế bào đều có cấu trúc giống nhau: trong mỗi tế bào đều có một nhân nằm chính giữa chứa tất cả các chỉ thị di truyền Những chỉ thị này là chức năng của tế bào, và cũng để phân biệt cá thể này với cá thể khác
Hạt nhân tế bào chứa ADN gói trong các cặp nhiễm sắc thể Nhiễm sắc thể là thể vật chất di truyền tồn tại trong nhân tế bào bị bắt màu bằng thuốc nhuộm kiềm tính, có số lượng, hình dạng, kích thước, cấu trúc đặc trưng: nhiễm sắc thể có khả năng tự nhân đôi, phân li, tổ hợp ổn định qua các thế hệ Nhiễm sắc thể khác nhau giữa các sinh vật khác nhau, có thể bao gồm từ 100.000 đến 10.000.000.000 nucleotit trong một chuỗi dài [10]
Mỗi tế bào người có 46 nhiễm sắc thể, được tổ chức thành 23 cặp, đánh
số từ 1 đến 23, được sắp xếp theo kích thước Hình 1.1 mô tả cách xếp bộ nhiễm sắc thể người
Trang 13Một gen là một đoạn của ADN với trình tự bazơ đặc trưng - cụ thể, gọi là
mã di truyền để xác định chức năng của tế bào
Gen có chức năng gửi các tín hiệu hóa học đi đến tất cả các nơi trong cơ thể Những tín hiệu này có chứa đầy đủ các thông tin, các chỉ thị cụ thể cho các cơ quan trong cơ thể ta phải hoạt động ra sao Việc tìm hiểu số lượng gen cũng như cơ cấu tổ chức của gen trong cơ thể con người là một điều tất yếu để mang lại những tiến bộ mới và quan trọng của y sinh học Nhưng không phải gen nào cũng có chức năng rõ ràng Trong thực tế, có khoảng 47% gen chẳng
có chức năng gì cụ thể (hay chúng ta chưa biết chức năng của chúng)
Trang 14Hình 1.2 Gen được cấu tạo từ ADN, một nhiễm sắc thể chứa nhiều gen
Một hệ gen hay bộ gen là tập hợp toàn bộ ADN của cơ thể, bao gồm tất
cả các gen của cơ thể đó Mỗi bộ gen chứa tất cả thông tin cần để xây dựng và duy trì cơ thể đó Ở người, một bản sao của toàn bộ hệ gen, có hơn 3 nghìn tỉ cặp bazơ, được chứa trong nhân tế bào
Năm 2003, các nhà khoa học đã hoàn thiện việc giải mã bộ gen người Mỗi chúng ta đều có khoảng 30.000 gen trong cơ thể Chẳng hạn như chúng
ta đều mang trong người những gen như VDR, COLIA1, apoE4, v.v Nhưng cái khác biệt giữa hai người là biến thể gen, chứ không phải gen Gen thực ra chỉ là một thực thể với một cái tên, hay nói theo ngôn ngữ toán, là một biến
số Chẳng hạn như chiều cao, giới tính, v.v là những biến số Mỗi biến số có nhiều giá trị: chiều cao của người này là 158cm, của nhiều người khác có thể cao hơn hay thấp hơn Mỗi biến thể gen được cấu tạo từ hai thành tố: một thành tố được nhận từ cha, và một từ mẹ Chẳng hạn như gen VDR có hai thành tố T và G, và do đó có 3 biến thể: TT, TG và GG Người này có biến thể TG, người khác có thể mang trong người biến thể TT,v.v
Các nghiên cứu gần đây cho thấy, sự chồng chéo gen là mối quan hệ phổ biến ở virus, vi khuẩn và khá hiếm ở sinh vật nhân chuẩn Có một số báo cáo
mô tả chồng chéo gen trong động vật có vú, sinh vật có xương sống, một số
Trang 15nghiên cứu đã minh họa sự chồng chéo gen khác nhau theo các mảnh và có sự phân bố khác nhau trong lịch sử tiến hóa [8]
âm Trong hai mạch đơn liên kết với nhau thì các bazơ liên kết với nhau theo nguyên tắc bổ sung: G của mạch này liên kết với C của mạch kia, A của mạch này liên kết với T của mạch kia, nên A-T và C-G là các cặp bazơ (bp) trong trình tự ADN Có khoảng 3 tỷ cặp A-T, G-C cho một phân tử ADN
Trang 16Hình 1.3 Cấu trúc phân tử ADN và ARN ARN được sinh ra trong tế bào từ thông tin của một đoạn ADN Nó là
một đa phân tử được cấu tạo từ nhiều đơn phân, mỗi đơn phân là một nucleotide gồm 3 thành phần: phosphate, đường ribose, và một trong bốn bazơ hữu cơ A, U, G, C ARN có cấu trúc mạch đơn Trên phân tử ARN các nucleotide liên kết với nhau bằng liên kết cộng hoá trị giữa đường ribose của nucleotide này với phân tử phosphate của nucleotide kế tiếp, tạo nên một chuỗi poly-nucleotide Có 3 loại ARN chính là: mARN, rARN, tARN Trong đó:
mARN là ARN thông tin, chiếm 5-10%, sao chép đúng một đoạn mạch ADN theo nguyên tắc bổ sung nhưng A thay cho T tạo thành cặp A-U, G-C Nó đóng vai trò là bản phiên thông tin di truyền từ gen cấu trúc, trực tiếp tham gia tổng hợp protein dựa trên cấu trúc và trình
tự các bộ ba trên mARN
Trang 17 rARN chiếm 70-80%, là thành phần cấu tạo nên ribose, liên kết với các phân tử protein tạo trên các ribose tiếp xúc với mARN và chuyển dịch từng bước trên mARN, mỗi bước là một bộ ba nhờ đó mà lắp ráp chính xác các axit amin vào chuỗi polipeptide theo đúng thông tin di truyền được quy định từ gen cấu trúc
tARN chiếm 10-20%, có chức năng vận chuyển, lắp ráp chính xác các axit amin vào chuỗi polipeptide dựa trên nguyên tắc đối mã di truyền giữa bộ ba đối mã trên tARN với bộ ba phiên mã trên mARN Nó là một mạch poly-nucleotide nhưng cuộn lại một đầu, ở một đầu của tARN có bộ ba đối mã gồm 3 nucleotide đặc hiệu đối diện với axit amin mà nó vận chuyển, đầu đối diện có vị trí gắn axit amin đặc hiệu Virus cúm là một loại ARN virus, là nguyên nhân gây ra bệnh cúm ở người và động vật Virus cúm được chia thành ba loại chính là cúm A, cúm B,
và cúm C Cúm A và cúm B có 8 loại gen giống nhau, cúm C có 7 loại gen Với khả năng biến đổi và lan truyền nhanh từ động vật sang động vật, từ động vật sang người, và đặc biệt là từ người sang người, virus cúm là một trong những loài virus nguy hiểm nhất cho nền kinh tế cũng như sức khỏe con người trên toàn thế giới từ trước đến nay Do mức độ đặc biệt nghiêm trọng của virus cúm, các nghiên cứu về virus cúm đã được tiến hành nhiều năm nay Các nhà khoa học từng bước hiểu được cấu trúc, cơ chế biến đổi và lây truyền của virus cúm, qua đó tìm ra các loại vacxin phòng chống Do khả năng biến đổi nhanh của virus cúm, cho nên quá trình nghiên cứu và sản xuất các loại vacxin để cách phòng chống các chủng virus cúm mới được tiến hành thường xuyên
Protein là các phân tử cơ bản thực hiện chức năng của tế bào Nó được tạo thành từ một hay nhiều dãy amino axit theo một thứ tự đặc biệt; thứ tự này được xác định bởi dãy các nucleotides trong gen mã hóa cho protein Các
Trang 18proteins cần thiết cho cấu trúc, chức năng và điều chỉnh tế bào, mô và tổ chức, mỗi protein có một vai trò đặc biệt Vài thí dụ về proteins là: protein cấu trúc -
có thể coi như các khối tạo dựng cơ sở của sinh vật; enzymes - thực hiện (làm xúc tác) một số lớn các phản ứng sinh hóa học, tạo ra sự trao đổi chất; protein màng - chìa khóa của sự duy trì môi trường tế bào, điều hòa dung tích tế bào,v.v Các proteins là phân tử quyết định tính trạng của sinh vật (thông minh hay không, màu mắt, )
Amino axit được cấu thành từ các bazơ trên trình tự ADN Có tất cả 20 amino axit chính Cấu trúc amino axit bao gồm: một nguyên tử carbon ở trung tâm, nguyên tử carbon này được gắn với nguyên tử hydro và được gọi là nguyên tử C-α; nguyên tử C-α liên kết với 3 thành phần khác là nhóm amino (NH2), nhóm carboxylic (COOH) và gốc amino axit ký hiệu là R Các gốc amino axit khác nhau sẽ tạo ra các amino axit với tính chất hóa học khác nhau
Cấu trúc của axit nucleic (gồm ADN, ARN) và protein thường được chia thành 4 loại:
Cấu trúc bậc một: dãy của các nucleotide hay các amino axit nối với nhau theo một thứ tự tuyến tính bất kỳ Do các nucleotide chỉ khác nhau thành phần bazơ hữu cơ, nên đại phân tử ADN, ARN như là một trình tự sinh học gồm các bazơ A, C, G, T (U) Điều này rất thuận lợi khi biểu diễn các đại phân tử ADN, ARN trên máy tính bằng chuỗi ký
tự chứa các ký tự chữ A, C, G, T, U Trình tự này được trình bày theo chiều 5'-3' và xác định cấu trúc hóa trị của toàn bộ phân tử
Cấu trúc bậc hai: xác định bởi tập hợp của các cặp bazơ tương tác với nhau trong cùng một phân tử hoặc với các phân tử khác ADN là một chuỗi xoắn kép gồm 2 mạch đơn, các nucleotide trong mạch đơn này bắt cặp với nucleotide trong mạch còn lại theo nguyên tắc bổ sung A-
Trang 19T, G-C ARN có dạng mạch đơn, có dạng tương tác phức tạp hơn Với phân tử protein, khi các amino axit gần nhau liên kết với nhau thông qua liên kết hydro giữa nhóm amin (NH) của amino axit này với nguyên tử oxy của amino axit khác sẽ tạo nên vòng xoắn của chuỗi polypeptide Sự xoắn gấp của dãy các amino axit tạo nên cấu trúc bậc hai
Cấu trúc bậc ba: do xoắn gấp, nhiều phần của dãy phân tử protein có
sự tiếp xúc với nhau, tạo ra nhiều lực hút và lực đẩy giữa chúng, tạo cho phân tử có được một cấu trúc 3D tương đối bền vững và cố định
Cấu trúc bậc bốn: một protein có thể được tạo ra từ nhiều hơn một dãy amino axit Thí dụ như haemoglobin được tạo ra từ bốn dãy trong đó mỗi dãy có khả năng bó lại một phân tử
Tìm ra cấu trúc của ADN, ARN và protein là bài toán khó và tốn kém hiện nay
1.1.3 Phiên mã và dịch mã
Biểu hiện gen, ám chỉ mọi quá trình liên quan đến việc chuyển đổi thông tin di truyền chứa trong gen (một đoạn/chuỗi ADN) để chuyển thành các axít amin (hay protein), mỗi loại protein sẽ thể hiện một cấu trúc và chức năng riêng của tế bào Tuy nhiên, cũng tồn tại các gen không mã hóa cho protein (ví dụ: gen rARN, gen tARN)
Quá trình tổng hợp proteins dựa trên thông tin được mã hóa trong gens gồm ba giai đoạn chính: phiên mã, ghép mã, dịch mã (hình 1.4)
Hiện nay, chúng ta có một sự hiểu biết quá cơ bản về trình tự gen mã hóa thành một protein cụ thể Chúng ta cũng thiếu thông tin cần thiết để hiểu một cách đầy đủ về vai trò của ADN trong những căn bệnh cụ thể, hoặc để hiểu được chức năng của hàng ngàn protein được sản sinh ra Ngoài ra, sự đột biến
Trang 20là sự thay đổi một hay nhiều bazơ trong phân tử ADN Điều này có thể dẫn đến sự biến đổi đặc trưng hoặc dẫn đến bệnh di truyền Mà càng phong phú,
đa dạng về sự sống đang tồn tại, hiểu biết của con người lại càng ít ỏi Do đó cần có các phương pháp dùng để tập hợp, lưu trữ, khôi phục, phân tích, tìm ra mối tương quan của một lượng thông tin khổng lồ, phức tạp và ngành tin sinh học ra đời từ đó
Hình 1.4 Học thuyết trung tâm của sinh học phân tử
1.2 Tổng quan về tin sinh học
Tin sinh học là một lĩnh vực khoa học sử dụng các công nghệ của các ngành toán học ứng dụng, tin học, thống kê, khoa học máy tính, trí tuệ nhân tạo, hóa học và hóa sinh để giải quyết các vấn đề, dữ liệu liên quan đến sinh học phân tử
Các lĩnh vực nghiên cứu chính của tin sinh học gồm: hệ gen học phân tích trình tự (sắp dãy), tìm kiếm gen, tìm kiếm các đột biến, phân loại học phân tử, bảo tồn đa dạng sinh học, phân tích chức năng gen hay biểu hiện nhận diện chuỗi polypeptid, dự đoán cấu trúc, hệ thống sinh học kiểu mẫu, phân tích hình ảnh mức độ cao, công cụ phần mềm
Trang 21Bài toán dự đoán cấu trúc bao gồm dự đoán cấu trúc axit nucleic, protein
là bài toán quan trọng của tin sinh học Dự đoán cấu trúc axit nucleic nhằm xác định cấu trúc cấp hai và cấu trúc cấp ba thông qua trình tự của nó (cấu trúc cấp một) Cấu trúc cấp hai có thể được dự đoán từ một hoặc một số trình
tự axit nucleic Việc dự đoán cấu trúc cấp hai của axit nucleic phụ thuộc chủ yếu vào việc xếp cặp và tương tác của các cặp bazơ Nhiều phân tử ADN, ARN có thể có một số cấu trúc ba chiều, tuy vậy để dự đoán những cấu trúc này vẫn còn là điều khó khăn, trừ khi xác định được rõ ràng trình tự và chức năng phân lớp Các phương pháp nghiên cứu cấu trúc ADN, ARN là tương tự nhau, tuy nhiên vẫn có sự khác biệt nhỏ trong cách tiếp cận do ADN tạo thành
từ hai chuỗi nucleotide theo nguyên tắc bổ sung, trong khi đó ARN có nhiều khả năng gấp trong quá trình phiên mã tạo thành cấu trúc cấp ba, cấp bốn phức tạp như trong các ribosome, spliceosome, hoặc tARN Từ đó dẫn đến việc phân tích, so sánh các phương thức dự đoán cấu trúc cấp hai của ARN trong khi phiên mã, dịch mã là vấn đề cần giải quyết
Mục đích của tin sinh học là cung cấp cho những nhà khoa học cách thức
lý giải: sự tiến triển sinh học bình thường, những trục trặc trong quá trình phát triển này dẫn đến bệnh tật và cách thức tiếp cận để cải thiện việc khám phá thuốc điều trị
Chức năng chính của tin sinh học là xây dựng các ngân hàng dữ liệu để lưu trữ và quản lý dữ liệu sinh học phân tử; tìm ra các phương pháp để xác định mối quan hệ về mặt sinh học giữa các dữ liệu; xây dựng các công cụ để phân tích từ đó có những hiểu biết rõ hơn về nguồn dữ liệu sinh học
Phát triển các cơ sở dữ liệu về thông tin sinh học là một nhiệm vụ quan trọng, để có được một kho lưu trữ lớn Hiện nay, cơ sở dữ liệu về tin sinh học được lưu trữ rất nhiều trên các ngân hàng cơ sở dữ liệu như: DDBJ (Ngân hàng cơ sở dữ liệu sinh học ADN của Nhật), GenBank (ngân hàng cơ sở dữ
Trang 22liệu sinh học của Mỹ), EMBL (cơ sở dữ liệu dự đoán tương tác protein), miRBase (ngân hàng cơ sở dữ liệu về các microARN), NCBI-Unigen, TRANSFAC, EBI,v.v… , đây là những kho dữ liệu khổng lồ được cập nhật hàng ngày và miễn phí đối với tất cả mọi người trên thế giới [1] Cho đến nay, nhiều bộ gen đã được giải mã gần như hoàn toàn Có thể nói chưa bao giờ thông tin sinh học trở nên phong phú và đa dạng như hiện nay Để tìm kiếm và khai phá thông tin trong khối lượng dữ liệu đồ sộ như vậy, công nghệ thông tin đã được ứng dụng vào sinh học một cách khá triệt
Vấn đề lớn đối với tin sinh học hiện nay là làm sao để các thông tin về các trình tự sinh học phục vụ thiết thực hơn nữa cho sự sống, không dừng ở mức độ lưu trữ thông tin Từ đó hướng đến việc chuyển đổi thông tin trình tự sinh học sang các tri thức hóa sinh và lý sinh; giải mã các đầu mối tiến hóa; chẩn đoán cấu trúc và chức năng của các cơ thể sống
Trên thế giới, đã có nhiều phần mềm tin sinh học hỗ trợ các nhà nghiên cứu, các nhà khoa học xử lý trình tự, dự đoán cấu trúc bậc hai ADN, ARN, protein; có các công cụ tiện ích giúp thực hiện các thao tác tìm kiếm, tổ chức, sắp xếp dữ liệu đồ sộ về các hệ gen, chú giải hệ gen như: PC-gens, Discovery Studio gen, DNASIS, DNAMAN, VECTOR NTI, AnnHyb, DNA Club, Plasmid Processor, Oligos, BEDTools v.v…
Trong nước, sự đóng góp của các nhà sinh học cũng khá phong phú như: Viện Công nghệ Sinh học thuộc Viện Khoa học và Công nghệ Việt Nam,
Trang 23Phòng Kỹ thuật di truyền, Phòng Công nghệ ADN ứng dụng, Phòng Hoá sinh protein, Phòng Vi sinh vật học phân tử, Viện Sinh học Nhiệt đới Tuy nhiên,
sự đóng góp của các nhà tin học vào lĩnh vực này còn khá khiêm tốn Cũng đã
có nhiều nhóm nghiên cứu xây dựng trang web, phần mềm để xử lý và hiển thị thông tin sinh học Tuy kết quả còn hạn chế nhưng đây là một đóng góp đáng kể cho ngành tin sinh học đang mới hình thành ở Việt Nam
1.3 Bài toán tìm giao các đoạn gen
Việc so sánh các bộ dữ liệu đa dạng di truyền là căn bản để hiểu hệ gen sinh học Các nhà nghiên cứu phải khám phá nhiều bộ dữ liệu lớn về các đoạn gen để đặt các kết quả thí nghiệm của họ trong một bối cảnh rộng hơn, tìm lời giải cho các giả thuyết khoa học, từ đó thực hiện những khám phá mới
Mối quan hệ giữa các tập hợp dữ liệu về gen thường được đo bằng cách xác định các đoạn giao nhau, nghĩa là, chúng chồng lên nhau và do đó chia sẻ một đoạn gen chung Việc tìm ra phương pháp hiệu quả để đo mối quan hệ có
ý nghĩa thống kê giữa nhiều bộ tính năng di truyền là rất quan trọng đối với những phát hiện trong tương lai
Sự chồng chéo gen là mối quan hệ phổ biến ở virus, vi khuẩn và khá hiếm ở sinh vật nhân chuẩn Có một số báo cáo mô tả chồng chéo gen trong động vật có vú, sinh vật có xương sống, một số nghiên cứu đã minh họa sự chồng chéo gen khác nhau theo các mảnh và có sự phân bố khác nhau trong lịch sử tiến hóa [8]
Bài toán đặt ra là: cho hai tập các đoạn gen, mỗi đoạn gen cho biết tên nhiễm sắc thể, vị trí đầu đoạn gen, vị trí cuối đoạn gen trên nhiễm sắc thể này Hãy tìm ra các đoạn gen giao nhau của tập thứ nhất với tập thứ hai, chỉ xét các gen giao nhau của cùng một nhiễm sắc thể
Vậy bài toán con của bài toán trên là: cho một tập các đoạn gen, và một đoạn gen g bao gồm: tên nhiễm sắc thể, vị trí đầu đoạn gen, vị trí cuối đoạn
Trang 24gen trên nhiễm sắc thể này Hãy cho biết các đoạn gen trong cùng nhiễm sắc thể và có giao với đoạn gen g, chỉ rõ vị trí giao nhau của chúng Bài toán này
có thể xem như là bài toán đã phát biểu ở trên trong trường hợp tập thứ hai chỉ gồm một đoạn gen duy nhất
Hiện nay, BEDtools được đề xuất như là một công cụ tích hợp tiện ích tìm giao của hai tập các đoạn gen Tuy nhiên, nó vẫn còn một số hạn chế: tốc
độ và hiệu quả chưa cao, chưa linh hoạt Về khả năng linh hoạt của công cụ này, trong trường hợp người dùng muốn thực hiện nhiều truy vấn tìm giao của một hay một số đoạn gen với một tập các đoạn gen cố định thì nó chưa đáp ứng tốt ngay được Vì vậy, luận văn tiến hành nghiên cứu cấu trúc dữ liệu cây quản lí đoạn, và áp dụng nó, đưa ra một phương pháp linh hoạt, nhanh chóng
để truy vấn tìm giao của một hay một số đoạn gen với một hệ gen từ trước, từ
đó mở rộng áp dụng để tìm giao giữa hai tập các đoạn gen
Như vậy, chương này đã trình bày một số khái niệm cơ bản của sinh học phân tử, tin sinh học và nêu lên bài toán tìm giao của hai tập các đoạn gen
Trang 25Chương 2
ỨNG DỤNG CỦA CÂY QUẢN LÍ ĐOẠN ĐỂ TÌM GIAO CÁC
ĐOẠN GEN
2.1 Đặc tả bài toán tìm giao các đoạn gen
Xét bài toán: cho một tập các đoạn gen và một cửa sổ truy vấn, mỗi truy vấn cung cấp thông tin một đoạn gen g bao gồm: tên nhiễm sắc thể, vị trí đầu đoạn gen, vị trí cuối đoạn gen trên nhiễm sắc thể này Hãy cho biết các đoạn gen trong tập ban đầu cùng nhiễm sắc thể và có giao với đoạn gen g, chỉ rõ vị trí giao nhau của chúng, số lượng đoạn gen giao với g
Cụ thể về dữ liệu vào và kết quả ra của bài toán là:
Dữ liệu vào:
Tệp gen1.inp gồm một số dòng, mỗi dòng là thông tin về một đoạn gen gồm: [Tên nhiễm sắc thể] [vị trí đầu đoạn gen] [vị trí cuối đoạn gen]
Thông tin về một đoạn gen cần tìm kiếm gồm: [Tên nhiễm sắc thể] [vị trí đầu đoạn gen] [vị trí cuối đoạn gen]
Trong đó:
[Tên nhiễm sắc thể] là một chuỗi kí tự xác định tên của nhiễm sắc thể,
ví dụ: chr3, chrY, chr2_random, scaffold10671,
[Vị trí đầu đoạn gen], [vị trí cuối đoạn gen]: là hai số nguyên dương xác định vị trí đầu và vị trí cuối của đoạn gen trên nhiễm sắc thể đang xét Giá trị này có thể là một số nguyên lớn, có thể có tới 11-12 chữ
số
Thông tin về đoạn gen cần tìm kiếm sẽ được cấp cho chương trình theo hai dạng thức:
Trang 26 Cửa sổ truy vấn: người dùng nhập thông tin truy vấn là thông tin một đoạn gen, gồm 3 thuộc tính kể trên
Tệp dữ liệu: người dùng nhập thông tin về tập gen cần tìm giao với các đoạn gen trong tệp thứ nhất thông qua tệp dữ liệu có cấu trúc giống tệp gen1.inp
Kết quả ra: Thông tin về các đoạn gen giao nhau, mỗi đoạn giao được liệt kê
theo cấu trúc: [tên nhiễm sắc thể] [vị trí đầu đoạn giao] [vị trí cuối đoạn giao]
và số lượng đoạn gen giao nhau với g
Hình 2.3 mô phỏng hai tập gen A, B; tìm giao của các đoạn gen của tập
A với các đoạn gen của tập B, chỉ rõ phạm vi phần đoạn giao và những đoạn gen của A có giao với B
Hình 2.1 Hình vẽ thể hiện giao của hai tập các đoạn gen
2.2 Thuật toán tìm kiếm tuần tự
Phương pháp đơn giản nhất là với mỗi đoạn gen trong tệp thứ hai, ta thực hiện truy vấn tìm kiếm trong tất cả các đoạn gen ở trong tệp thứ nhất Gọi chrName, chrStart, chrEnd lần lượt là tên nhiễm sắc thể, vị trí đầu và
vị trí cuối đoạn gen, g là một đoạn gen cần tìm kiếm trong tập thứ hai, ta có thể biểu diễn thuật toán tìm kiếm tuần tự dựa trên sơ đồ khối sau:
Trang 27Nhập thông tin các đoạn gene của tập thứ nhất
Nhập thông tin một đoạn gene cần tìm kiếm
g.chrName, g.chrStart, g.chrEnd
i = i + 1
i > n Sai
Hình 2.2 Sơ đồ khối mô tả thuật toán tìm kiếm tuần tự
Độ phức tạp tính toán là O(n) cho mỗi truy vấn, với n là số đoạn gen có trong tệp thứ nhất Như vậy, tệp thứ hai có m đoạn gen, tương ứng có m truy vấn, thì độ phức tạp toàn bộ chương trình là O(n.m)
2.3 Cây quản lí đoạn
Cây quản lí đoạn [3], còn gọi là cây chứa khoảng [2], là một cấu trúc dữ liệu để lưu trữ một tập các khoảng trên trục số Đây là một cấu trúc dữ liệu quan trọng, có nhiều ứng dụng trong hình học tính toán, truy vấn cơ sở dữ liệu, cửa sổ truy vấn và xử lí tín hiệu [7], [9]
Mục này đơn giản hóa cấu trúc cây quản lý đoạn để giải quyết bài toán truy vấn, nó chỉ là một hạn chế của cây quản lí đoạn trong trường hợp cụ thể
Có 3 loại khoảng trên trục số: khoảng đóng (đoạn), khoảng mở và khoảng nửa mở
Trang 28[ , ] { : }( , ] { : }[ , ) { : }( , ) { : }
Cây quản lí đoạn trong phạm vi này chỉ làm việc với đoạn
Với hai đoạn i1 [ 1, 1];s f i2 [ 2, 2]s f đúng một trong ba mệnh đề dưới đây thỏa mãn:
i i gối nhau (overlap), tức là hai đoạn 1, 2 i i có điểm chung, 1, 2
i nằm bên trái 1 i :2 f1s2,
i nằm bên phải 1 i :2 f2 s1
Cây quản lí đoạn bản chất là một cây nhị phân tìm kiếm, mỗi nút chứa một đoạn và khóa so sánh là đầu mút trái của mỗi đoạn Nói cách khác, nếu duyệt cây theo thứ tự giữa ta sẽ liệt kê được tất cả các đoạn theo thứ tự tăng dần của đầu mút trái Nói như vậy nghĩa là ta chỉ quan tâm tới cách biểu diễn cây quản lí đoạn bằng cấu trúc liên kết thay vì biểu diễn bằng mảng, xem hình 2.1
Tại mỗi nút p, thông tin nút ngoài việc lưu trữ một đoạn trên trục số, ta lưu trữ thêm một trường rightmost: giá trị lớn nhất của các đầu mút phải của các đoạn nằm trong nhánh cây gốc p Hình 2.3 là ví dụ về cây quản lí thông
tin của 10 đoạn: [16, 21]; [8, 9]; [25, 30]; [5, 8]; [15, 23]; [17, 19]; [26, 26]; [0, 3]; [6, 10]; [19, 20]
Trang 29Hình 2.3 Ví dụ về một cây quản lí đoạn
Một trong những ứng dụng của cây quản lí đoạn đó là nó rất thuận tiện, phù hợp khi thiết kế các cửa sổ truy vấn hay trong các bài toán truy vấn phạm
vi [7] Hình 2.4 dẫn chứng hai ví dụ về cửa sổ truy vấn: cửa sổ truy vấn thông tin trên bản đồ định vị trên màn hình thiết bị định vị trên xe ô tô (hình 2.4a) và cửa sổ truy vấn thông tin chi tiết các đối tượng trên một phần bảng mạch điện
tử (hình 2.4b) gồm các đối tượng nằm trong, đối tượng nằm ngoài, đường biên,
a)
Trang 30b)
Hình 2.4 Ví dụ về cửa sổ truy vấn
Cấu trúc cây quản lí đoạn và một số thao tác thường sử dụng trên cấu trúc dữ liệu này có thể được mô tả như sau:
2.3.1 Cấu trúc cây quản lí đoạn
Cấu trúc nút của cây quản lí đoạn có thể được biểu diễn bằng một bản ghi gồm các trường, cụ thể như sau:
s, f lần lượt là giá trị đầu mút trái và đầu mút phải của đoạn [s, f],
left: chứa liên kết (con trỏ) tới nút con trái, tức là chứa một thông tin
đủ để biết nút con trái của nút đang xét là nút nào Nếu nút đang xét không có nút con trái, trường này được gán một giá trị đặc biệt (nil)
right: chứa liên kết (con trỏ) tới nút con phải, tức là chứa một thông
tin đủ để biết nút con phải của nút đang xét là nút nào Nếu nút đang
Trang 31xét không có nút con phải, trường này được gán một giá trị đặc biệt (nil)
rightmost: giá trị lớn nhất của các đầu mút phải của các đoạn nằm trong nhánh cây con có gốc là nút đang xét Trường rightmost của mỗi nút p^ được tính theo công thức truy hồi:
Khi một nút p^ được chèn vào thành một nút lá hay bị xóa khỏi cây quản
lí đoạn, tất cả các trường rightmost trong p^ và các nút tiền bối của p^ phải
được cập nhật lại
Cũng giống như cây nhị phân tìm kiếm, đối với cây quản lí đoạn, ta chỉ
cần phải quan tâm giữ lại nút gốc root, bởi từ nút gốc đi theo các hướng liên kết left, right ta có thể duyệt mọi nút khác trên cây [4]
2.3.2 Các thao tác trên cây quản lí đoạn
2.3.2.1 Tạo nút mới
Một nút mới chứa đoạn [a, b] được tạo ra bằng các thao tác sau:
function newNode(a, b: real): pnode;
Trang 322.3.2.2 Dựng cây – Chèn đoạn
Việc khởi tạo cây quản lí đoạn rỗng không khác gì cây nhị phân tìm
kiếm, tức là chỉ cần cho root = nil Ta sẽ xem xét chi tiết cách chèn một nút chứa đoạn [a, b] vào cây quản lí đoạn gốc T sao cho sau khi chèn nút đó vào
thì vẫn đảm bảo cấu trúc cây quản lí đoạn Thao tác này được thực hiện một cách đệ quy:
Nếu cây rỗng thì tạo nút mới chứa đoạn [a, b] và cho nút này làm gốc của cây
Nếu nút T có T^.s > a thì ta tìm chỗ chèn ở cây con trái, ngược lại thì
chèn đoạn vào cây con phải
Cập nhật T^.rightmost := b nếu T^.rightmost < b
Thời gian thực hiện giải thuật chèn một đoạn hay một nút vào cây quản
lí đoạn là O(h) với h là chiều cao của cây Trong trường hợp tồi nhất, cây quản lí đoạn là một cây nhị phân suy biến có n nút thì h = n Nếu sử dụng cây
nhị phân tìm kiếm tự cân bằng như: cây AVL, cây đỏ đen, cây splay, treap