Cây quản lí đoạn và ứng dụng

65 272 0
Cây quản lí đoạn và ứng dụng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

i ĐẠ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 ĐOẠN ỨNG DỤNG LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Nguyên - 2015 Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn ii LỜI CAM ĐOAN Tôi xin cam đoan luận văn tự thân tìm hiểu, nghiên cứu Các tài liệu tham khảo trích dẫn thích đầy đủ Nếu không xin hoàn toàn chịu trách nhiệm Tác giả luận văn Phạm Thị Nga Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn iii LỜI CẢM ƠN Lời xin bày tỏ lòng biết ơn chân thành đến Ban Giám Hiệu, 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, thầy giáo Viện Công Nghệ Thông Tin giảng dạy tạo điều kiện cho học tập, nghiên cứu hoàn thành luận văn Đặc biệt, xin bày tỏ kính trọng 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 giúp đỡ suốt trình học tập, nghiên cứu hoàn thành luận văn Tôi chân thành cảm ơn 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 công tác tạo điều kiện hỗ trợ suốt thời gian qua Tôi xin chân thành cảm ơn người thân, bạn bè giúp đỡ động viên suốt thời gian học tập thời gian thực luận văn Xin chân thành cảm ơn ! Thanh Hóa, ngày 10 tháng 04 năm 2015 Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn iv MỤC LỤC Trang Lời cam đoan i Lời cảm ơn iii Mục lục iv Danh mục bảng v Danh mục hình vii Danh mục kí hiệu, chữ viết tắt viii MỞ ĐẦU Chƣơng TỔNG QUAN VỀ SINH HỌC PHÂN TỬ, TIN SINH HỌC BÀI TOÁN TÌM GIAO CÁC ĐOẠN GEN 1.1 Một số khái niệm sinh học phân tử 1.1.1 Ở cấp độ tế bào 1.1.2 Ở cấp độ phân tử 1.1.3 Phiên mã dịch mã 11 1.2 Tổng quan tin sinh học 12 1.3 Bài toán tìm giao đoạn gen 15 Chƣơng ỨNG DỤNG CỦA CÂY QUẢN ĐOẠN ĐỂ TÌM GIAO CÁC ĐOẠN GEN 17 2.1 Đặc tả toán tìm giao đoạn gen 17 2.2 Thuật toán tìm kiếm 18 2.3 Cây quản đoạn 19 2.3.1 Cấu trúc quản đoạn 22 2.3.2 Các thao tác quản đoạn 23 2.4 Thuật toán tìm giao đoạn gen sử dụng quản đoạn 28 2.4.1 Xây dựng rừng quản đoạn lưu trữ thông tin đoạn gen 29 2.4.2 Tìm kiếm đoạn gen giao 34 Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn v Chƣơng MÃ HÓA, THỬ NGHIỆM CHƢƠNG TRÌNH TÌM GIAO CÁC ĐOẠN GEN 36 3.1 Chuẩn bị liệu 36 3.2 Mã hóa chương trình tìm giao đoạn gen 37 3.2.1 Ngôn ngữ môi trường lập trình 37 3.2.2 Chức cửa sổ truy vấn gen 39 3.2.3 Chức tìm giao hai tập đ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 đoạn gen virus Ebola với hệ gen người 43 3.3.2 Tìm giao hệ gen người hệ gen chuột 44 3.3.3 Tìm giao hệ gen chuột nhắt hệ gen chuột cống 46 3.4 Đánh giá độ phức tạp kết thực 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 Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn vi DANH MỤC CÁC BẢNG Trang Bảng 3.1 Kết kiểm thử cửa sổ truy vấn 44 Bảng 3.2 Kết kiểm thử tính đắn chương trình tìm giao hai hệ gen 45 Bảng 3.3 Thời gian (s) trung bình chạy chương trình 47 Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn vii DANH MỤC CÁC HÌNH Trang Hình 1.1 Xếp nhiễm sắc thể người Hình 1.2 Gen cấu tạo từ ADN, nhiễm sắc thể chứa nhiều gen Hình 1.3 Cấu trúc phân tử ADN ARN Hình 1.4 Học thuyết trung tâm sinh học phân tử 12 Hình 2.1 Hình vẽ thể giao hai tập đoạn gen 18 Hình 2.2 Sơ đồ khối mô tả thuật toán tìm kiếm .19 Hình 2.3 Ví dụ quản đoạn 21 Hình 2.4 Ví dụ cửa sổ truy vấn 22 Hình 2.5 Các bước tìm giao đoạn gen với đoạn gen hệ gen 28 Hình 2.6 Cấu trúc nút quản đoạn lưu thông tin đoạn gen nhiễm sắc thể 31 Hình 3.1 Giao diện mô cách lấy liệu hệ gen người từ UCSC Table Browser 37 Hình 3.2 Giao diện lựa chọn chức 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 định tệp liệu đoạn gen 40 Hình 3.5 Giao diện chức tìm giao hai tập đoạn gen 42 Hình 3.6 Giao diện hộp thoại lưu kết đoạn gen giao vào tệp 42 Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn viii DANH MỤC CÁC KÍ HIỆU, CHỮ VIẾT TẮT A adenine : ADN Axit : deoxyribonucleic ARN Axit : ribonucleic BED Browser : Extensible Data C cytosine : G guanine : mARN messenger : ARN NST nhiễm : sắc thể PTB Polypyrimidine Tract-Binding protein rARN ribosomal : ARN T thymine, : thymidine tARN transfer : ARN U uracil : UCSC University : of California Santa Cruz Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn MỞ ĐẦU Lý chọn đề tài Từ năm 2001 trở lại đây, tiến công nghệ phổ cập hệ thống phần mềm tiên tiến đưa đến thay đổi cách đào tạo chuyên gia lĩnh vực tin học Các kiến thức giải thuật coi đỉnh cao trước trở thành “bảng cửu chương” mà phải biết phải thuộc Những giải thuật dùng phức tạp không thiết phải biết nhớ lúc tra cứu, tìm kiếm chúng internet cần thiết Thử thách chỗ ta tìm giải pháp hữu hiệu giải cách có hiệu toán, vấn đề có mô hình toán học đơn giản có kích thước lớn hay không? Để đạt mục đích đó, người lập trình phải tận dụng tối đa khả mà phần cứng hệ điều hành cung cấp, khai thác tối đa khả công cụ lập trình, sử dụng linh hoạt cấu trúc liệu Trong đó, quản đoạn (interval tree) cấu trúc liệu quan trọng, có nhiều ứng dụng hình học tính toán, truy vấn sở liệu xử tín hiệu Bên cạnh đó, tin sinh học lĩnh vực mới, giải toán sinh học phương pháp khoa học tính toán với nguồn liệu khổng lồ Việc so sánh liệu đa dạng di truyền để hiểu hệ gen sinh học Các nhà nghiên cứu phải khám phá nhiều liệu lớn đoạn gen (ví dụ gen, trình tự) để đặt kết thí nghiệm họ bối cảnh rộng thực khám phá Mối quan hệ tập hợp liệu gen thường đo cách xác định đoạn giao nhau, nghĩa là, chúng chồng lên chia sẻ đoạn gen chung Với tiến công nghệ trình tự ADN, phương pháp hiệu để đo mối quan hệ có ý nghĩa thống kê nhiều tính di truyền quan trọng phát tương lai Trong khuôn khổ luận văn thạc sĩ, chọn đề tài nghiên cứu: “Cây quản đoạn ứng dụng”, nghiên cứu cấu trúc liệu quản đoạn thực phương pháp tiếp cận mới, nhanh chóng linh hoạt để tìm giao đoạn gen cách sử dụng cấu trúc liệu Đối tƣợng phạm vi nghiên cứu Cây quản đoạn ứng dụng để tìm giao đoạn gen Những nội dung nghiên cứu Chương Tổng quan sinh học phân tử, tin sinh học toán tìm giao đoạn gen Chương trình bày số khái niệm sinh học phân tử, tổng quan tin sinh học toán tìm giao đoạn gen sinh học Chương Ứng dụng quản đoạn để tìm giao đoạn gen Chương trình bày cấu trúc thao tác cấu trúc liệu quản đoạn ứng dụng để giải toán tìm giao đoạn gen Chương Mã hóa, thử nghiệm chương trình tìm giao đoạn gen Phƣơng pháp nghiên cứu  Phương pháp nghiên cứu thuyết: Tổng hợp tài liệu, suy diễn, quy nạp, phương pháp hình thức,  Phương pháp thực nghiệm: xử thống kê, đối sánh,  Phương pháp trao đổi khoa học, tổng hợp kết nhà nghiên cứu liên quan đến lĩnh vực nghiên cứu, lấy ý kiến chuyên gia 43 Các xử lí, thao tác: lớp đối tượng, hàm thủ tục sử dụng chức cửa sổ truy vấn gen, khác chỗ ta phải duyệt qua tất đoạn gen tệp thứ hai, với đoạn thực truy vấn tìm giao đoạn gen với đoạn gen tệp thứ nhiễm sắc thể với Trong trường hợp cần tìm giao đoạn gen hai tệp liệu có dung lượng lớn, ta thường gặp phải rắc rối việc sử dụng nhiều nhớ, xếp trước liệu đầu vào theo nhiễm sắc thể Tức liệu đoạn gen cần xếp theo trình tự định, chẳng hạn tăng dần theo vị trí bắt đầu đoạn gen Trên thực tế, sử dụng liệu hệ gen từ ngân hàng sở liệu gen liệu thường xếp sẵn từ trước 3.3 Kiểm thử chƣơng trình 3.3.1 Sử dụng cửa sổ truy vấn tìm giao đoạn gen virus Ebola với hệ gen ngƣời Phát hệ gen virus Ebola gồm đoạn gen Dữ liệu đủ để kiểm thử tính đắn chương trình cách thủ công Vì thế, sử dụng liệu đoạn gen biết virus Ebola để kiểm thử cho chương trình truy vấn cửa sổ tìm giao đoạn gen hệ gen người hợp Kết truy vấn trả cách nhanh chóng, đắn Dữ liệu vào:  Tệp liệu hệ gen người, gồm 60726 đoạn gen chứa 23 nhiễm sắc thể Xét riêng nhiễm sắc thể có 5677 đoạn gen  đoạn gen virus Ebola cần xác định có giao với đoạn gen nhiễm sắc thể số hệ gen người Kết ra: Kết kiểm thử với truy vấn đoạn gen bảng 3.1: 44 Bảng 3.1 Kết kiểm thử cửa sổ truy vấn Số lượng đoạn gen giao đoạn Đoạn gen g virus Ebola gen g với đoạn gen nhiễm sắc thể số hệ gen người 55 3026 3031 4407 4389 5894 5899 8305 8287 9740 9884 11518 11500 18282 14 3.3.2 Tìm giao hệ gen ngƣời hệ gen chuột Gen chồng chéo hệ gen động vật có vú tượng bất ngờ hàng trăm cặp protein mã hóa gen chồng chéo báo cáo Gen chồng chéo chia thành loại khác dựa định hướng phiên mã trình tự phân đoạn chia sẻ vùng mã hóa chồng chéo [6] Năm 2005, nhà khoa học Anh cấy thành công nhiễm sắc thể số 21 người vào chuột để gây bệnh Down nhằm phục vụ nghiên cứu phát triển phương pháp điều trị cho người bị rối loạn gen Thông thường, hầu hết người có 23 cặp nhiễm sắc thể Người bị bệnh Down (thiểu trí tuệ) lại có ba nhiễm sắc thể 21 thay cho hai nhiễm sắc thể bình thường Nhóm nghiên cứu tạo giống chuột mang thể giống nhiễm sắc thể số 21, có 200 gen người, cách lấy nhiễm sắc thể từ tế bào người cấy vào tế bào phôi chuột Qua vài hệ, giống chuột có triệu chứng bệnh Down rối loạn 45 trí nhớ, rối loạn chức não rối loạn cấu tạo tim Việc cấy ghép thành công giúp nhà khoa học nghiên cứu sâu vấn đề mà bệnh nhân Down gặp phải Hội chứng Down ảnh hưởng tới 1/800 ca sinh nở, gây chậm chễ việc phát triển thể chất thần kinh Những người bị bệnh gặp vấn đề tim, thính giác có nguy cao mắc bệnh máu trắng trí nhớ Nghiên cứu đánh giá tiến kỹ thuật quan trọng nghiên cứu bệnh Down bệnh khác không bình thường nhiễm sắc thể Vì thế, tiến hành kiểm thử chương trình hai tập liệu đoạn gen hệ gen người hệ gen chuột, xem xét đoạn giao cặp nhiễm sắc thể, mục đích đánh giá tính đắn chương trình tìm giao hai tập đoạn gen, kết mô tả bảng 3.2 Khoảng 90% gen chuột có gen tương ứng người, mô tả tài liệu [6] Bảng 3.2 Kết kiểm thử tính đắn chương trình tìm giao hai hệ gen Hệ gen người Hệ gen chuột Số lượng đoạn gen (số đoạn gen) (số đoạn gen) giao chr1 5677 chr1 3893 5662 chr2 3780 chr2 1877 2692 chr3 3132 chr3 2237 3383 chr4 2122 chr4 1754 1256 chr5 2519 chr5 1763 2616 chr6 3177 chr6 1278 2180 chr7 2925 chr7 1646 2735 chr8 1883 chr8 1542 1862 chr9 2428 chr9 1085 1501 chr10 2325 chr10 2193 3717 46 chr11 3323 chr11 770 1591 chr12 2767 chr12 849 1353 chr13 1061 chr13 949 949 chr14 2126 chr14 948 1378 chr15 2689 chr15 986 1461 chr16 2382 chr16 792 1750 chr17 3241 chr17 862 1810 chr18 884 chr18 693 945 chr19 3408 chr19 701 1486 chr20 1432 chr20 840 1266 chr21 2170 chr21 1439 1565 3.3.3 Tìm giao hệ gen chuột nhắt hệ gen chuột cống Chuột chia thành khoảng 35 họ Mỗi họ có khoảng 350 loài Trong loài có chuột nhắt hay chuột nhà chuột cống Xã hội chuột tự nhiên tổ chức theo kiểu phân tán để tồn Nhờ có chuột, hàng loạt loại thuốc đời để trị bệnh cho người Về di truyền học, chuột cống có 22 cặp nhiễm sắc thể với 2,75 triệu cặp bazơ nitơ chuột nhắt có 20 cặp nhiễm sắc thể với 2,6 triệu cặp (người có 2,9 triệu) Cặp nhiễm sắc thể cuối cặp nhiễm sắc thể giới tính Khoảng 90% gen chuột cống có gen tương ứng chuột nhắt [6] Tiến hành chạy thử chương trình với liệu vào hai tập liệu hệ gen chuột nhắt chuột cống, tính số lượng gen giao theo nhiễm sắc thể, quan sát thời gian thực chương trình cho kết bảng 3.3 Mục đích thử nghiệm: đánh giá thời gian, hiệu chạy chương trình 47 Bảng 3.3 Thời gian (s) trung bình chạy chương trình Số lượng Thời gian (s) Thời gian (s) chạy thuật toán chạy thuật toán Hệ gen Hệ gen đoạn gen chuột nhắt chuột cống giao dùng quản tìm kiếm đoạn chr1 1697 chr1 3893 1769 0.453 chr2 2782 chr2 1877 936 0.593 chr3 1508 chr3 2237 1238 0.449 chr4 1950 chr4 1754 661 0.353 chr5 1736 chr5 1763 1187 0.250 chr6 1634 chr6 1278 1091 0.460 chr7 2808 chr7 1646 1698 0.182 chr8 1490 chr8 1542 1288 0.154 chr9 1645 chr9 1085 1009 0.228 chr10 1506 chr10 2193 1709 0.209 chr11 2344 chr11 770 931 0.106 chr12 1019 chr12 849 342 0.020 chr13 1160 chr13 949 681 0.094 chr14 1116 chr14 948 593 0.059 chr15 1075 chr15 986 525 0.033 chr16 970 chr16 792 555 0.040 chr17 1501 chr17 862 936 0.076 chr18 745 chr18 693 539 0.040 chr19 908 chr19 701 513 0.192 18201 3.991 Tổng cộng 31.918 48 3.4 Đánh giá độ phức tạp kết thực chƣơng trình Tuy trường hợp xấu nhất, mà đoạn cần tìm giao bao cây, chương trình có độ phức tạp tương đương với việc duyệt thông thường Nhưng với liệu thực tế, chương trình nhanh chóng loại tập đoạn không phù hợp trả kết thời gian cho phép Việc đọc liệu từ tệp tiêu tốn thời gian tốc độ đọc tệp chậm khả xử lý, độ phức tạp O(n) Việc thêm đoạn vào chương trước đề cập O(lgn), thao tác xây dựng O(nlg(n)), xây dựng rừng quản đoạn itContainer O(n.k.lg(n)) với k số nhiễm sắc thể khác tập gen số quản đoạn khác dựng từ tệp ban đầu Tốc độ xử lý chương trình: liệu gen có việc tìm giao hai đoạn không 3s kết chấp nhận được, điều có ý nghĩa thực tiễn cao việc đưa công cụ lượng hóa mối quan hệ có ý nghĩa thống kê đặc tính di truyền, giải mã đầu mối tiến hóa, chẩn đoán cấu trúc chức gen.Việc so sánh liệu đa dạng di truyền để hiểu hệ gen sinh học Các nhà nghiên cứu sử dụng công cụ để khám phá nhiều liệu lớn đoạn gen, để đặt kết thí nghiệm họ bối cảnh rộng hơn, tìm lời giải cho giả thuyết khoa học, từ thực khám phá Mối quan hệ tập hợp liệu gen thường đo cách xác định đoạn giao nhau, nghĩa là, chúng chồng lên chia sẻ đoạn gen chung Việc tìm phương pháp hiệu để đo mối quan hệ có ý nghĩa thống kê nhiều tính di truyền quan trọng phát tương lai 49 3.4 Mở rộng hƣớng nghiên cứu Chương trình thử nghiệm áp dụng hai trường hợp tìm giao đoạn gen đưa đoạn gen giao tập Ta sử dụng câu trúc quản đoạn cài đặt để thực thêm số công việc sau:  Tìm đoạn gen tập A không giao với đoạn gen tập B  Tìm đoạn gen tập B không giao với đoạn gen tập A  Tìm số cặp ba zơ giao đoạn giao (độ dài đoạn gen giao nhau)  Tính xác suất đoạn gen giao tổng số đoạn gen Con số có ý nghĩa toán thống kê đặc tính di truyền  Tìm đoạn gen tập đoạn gen có vị trí gần so với đoạn gen biết trước  Bài toán mở rộng phạm vi trường hợp liệu đoạn gen phức tạp, người dùng có nhu cầu lưu trữ tìm kiếm thuộc tính giải gen  Tìm giao nhiều tập đoạn gen cách đồng thời Chẳng hạn, nhu cầu tìm giao tập đoạn gen virus sởi qua mùa bệnh khác (các năm khác nhau, năm có hệ gen khác nhau) Hay tìm giao đoạn gen tập liệu hệ gen chủng virus cúm (có tới hàng trăm loại virus cúm).v.v Ngành sinh tin học ngành hấp dẫn nhiều nhà nghiên cứu nước tham gia Với khám phá cấu trúc gen mở nhiều hướng nghiên cứu y sinh học, điều trị bệnh, phát 50 tài năng, trì bảo tồn, cải tạo nòi giống; giải mã lịch sử tiến hóa, v.v Với nguồn liệu tin sinh học tăng theo Việc tìm kiếm thông tin khai thác thông tin chứa nguồn liệu lúc cần thiết Vì thế, việc tìm kiếm với thời gian có hiệu nhà nghiên cứu tìm tòi phát triển Luận văn thực với mục tiêu nghiên cứu, áp dụng cấu trúc liệu quản đoạn thao tác cấu trúc để giải toán tìm giao đoạn gen để tối ưu thời gian xử lý, giới hạn phạm vi nguồn liệu tìm kiếm nguồn liệu lớn Việc kiểm thử ứng dụng tìm giao tập đoạn gen nguồn liệu hệ gen người, hệ gen chuột, hệ gen virus Ebola cho kết đắn, xác nhanh chóng 51 KẾT LUẬN Luận văn thu số kết sau: Luận văn hệ thống hóa vấn đề xung quanh cấu trúc liệu quản đoạn Luận văn đưa số kỹ thuật dùng để thực thao tác quản đoạn Luận văn đề cập đến lĩnh vực nghiên cứu mới, hấp dẫn tin sinh học Luận văn thực với mục tiêu nghiên cứu, áp dụng cấu trúc liệu quản đoạn thao tác cấu trúc để giải toán tìm giao đoạn gen, tối ưu thời gian xử lý, giới hạn phạm vi nguồn liệu tìm kiếm nguồn liệu lớn Luận văn đưa trường hợp ví dụ mẫu điển hình, trường hợp kiểm thử tiêu biểu áp dụng chương trình cài đặt cấu trúc liệu quản đoạn thực thao tác Như vấn đề mà luận văn nêu phù hợp với yêu cầu thực tiễn, nghiên cứu giai đoạn nay, nhiệm vụ đặt hoàn thành Luận văn đạt mục đích đề TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt [1] Nguyễn Cường (2013), Các sở liệu sinh học, http://www.tinsinhhoc.org/index.php/genomics/3-bio-database.html, truy cập ngày 13/01/2015 [2] Hồ Sĩ Đàm (chủ biên), Đỗ Đức Đông, Lê Minh Hoàng, Nguyễn Thanh Hùng (2009), Tài liệu chuyên tin học, NXB Giáo dục Việt Nam, Quyển [3] Hồ Sĩ Đàm (chủ biên), Nguyễn Thanh Tùng, Lê Minh Hoàng, Nguyễn Thanh Hùng, Đỗ Đức Đông (2011), Tài liệu tập huấn phát triển chuyên môn giáo viên Trường THPT Chuyên (tài liệu lưu hành nội bộ), Bộ giáo dục đào tạo [4] Vũ Đình Hoà, Giáo trình Toán rời rạc 5, NXB Giáo dục [5] Trần Văn Lăng, Ứng dụng Tin học việc giải số toán Sinh học phân tử, NXB Giáo dục, 2008 Tài liệu tiếng Anh [6] Chaitanya R Sanna1, Wen-Hsiung Li, Liqing Zhang (2008), Overlapping gens in the human and mouse genomes, http://www.biomedcentral.com/1471-2164/9/169, 01/02/2015 [7] F P Preparata and M I Shamos (1985), Computational Geometry: An Introduction, Springer-Verlag [8] Izabela Makalowska , Chiao-Feng Linb, Wojciech Makalowski (2005), Overlapping gens in vertebrate genomes [9] M de Berg, O Cheong, M van Kreveld, M Overmars (2000), Computational Geometry: algorithms and applications, third edition, Springer [10] Paux E, Sourdille P, Salse J (2008), A Physical Map of the 1-Gigabase Bread Wheat Chromosome 3B, Science 322 (5898), p101–104 [11] Ucsc genome browser website, bed format, http://genome.ucsc.edu/FAQ/FAQformat.html#format1, 01/02/2015 [12] Ucsc genome browser website, table browser, http://genome.ucsc.edu/cgi-bin/hgTables?command=start, 01/02/2015 PHỤ LỤC A Xây dựng lớp itContainer package intervaltreeinbios; import java.awt.Color; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; class itContainer { List listIT = new ArrayList(); List chromeName = new ArrayList(); public itContainer() {} void clear() { listIT = new ArrayList(); chromeName = new ArrayList(); } int findChromeName(String chName) { for (int i = 0; i < chromeName.size(); i++) { if (chromeName.get(i).equals(chName)) { return i; } } return -1; } void loadFromFile(String pathFile) throws IOException, NumberFormatException { BufferedReader br = null; try { br= new BufferedReader(new FileReader(pathFile)); } catch (FileNotFoundException ex) { Logger.getLogger(itContainer.class.getName()).log(Level.SEVER E, null, ex); } String sCurrentLine; while ((sCurrentLine = br.readLine()) != null) { String sTokens[] = sCurrentLine.split("\\s+"); if ("-1".equals(sTokens[0])) { break; } int t = findChromeName(sTokens[0]); if (t == -1) { chromeName.add(sTokens[0]); listIT.add(new ITtree()); t = chromeName.size() - 1; } int u = Integer.parseInt(sTokens[1]); int v = Integer.parseInt(sTokens[2]); listIT.get(t).addSegment(new Interval(u, v)); } } } B Lớp ITTree package intervaltreeinbios; import java.util.ArrayList; import java.util.List; class ITtree { ITnode root; public ITtree() {root = null;} void addSegment(Interval i) { if (root == null) { root = new ITnode(i); return; } int l = root.i.low; if (i.low < l) { root.left.addSegment(i); } else { root.right.addSegment(i); } if (root.max < i.high) { root.max = i.high; } } List overlapSearch(Interval i) { if (root == null) { return new ArrayList(); } List tmp = new ArrayList(); if (doOverlap(root.i, i)) {tmp.add(root.i);} if (root.left.root != null) { if (root.left.root.max >= i.low) { tmp.addAll(root.left.overlapSearch(i)); } } return tmp; } private boolean doOverlap(Interval i1, Interval i2) { return i1.low

Ngày đăng: 16/03/2017, 14:03

Tài liệu cùng người dùng

Tài liệu liên quan