Các thuật tốn nén tham chiếu

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phương pháp nén dữ liệu để tăng hiệu quả lưu trữ chuỗi DNA (Trang 40 - 43)

1.4. Thuật tốn nén tham chiếu

1.4.2. Các thuật tốn nén tham chiếu

Cĩ nhiều khung nén tham chiếu đã được phát triển dựa trên thuật tốn nén tham chiếu. Khung nén [32] đề xuất chỉ lưu sự khác nhau giữa chuỗi đầu vào nén và chuỗi tham chiếu. Thuật tốn xem xét 3 loại thay đổi bazơ đơn: chèn, xĩa và thay thế. Kết quả chính đạt được là sự phân tích về cách mã hĩa các số nguyên cho vị trí tham chiếu tương đối và tuyệt đối. Cụ thể là thuật tốn so sánh các định dạng mã hĩa entropy cố định (Golomb, Elias) và biến đổi (Huffman) và đưa ra kết quả mã hĩa Huffman thực hiện tốt hơn Golomb và Elias khơng đáng kể. Tuy nhiên, thuật tốn này nhấn mạnh việc lựa chọn chuỗi tham chiếu cĩ ảnh hưởng tới tỉ lệ nén nhiều hơn khung mã hĩa số nguyên trên thực tế.

Tương tự, [33] trình bày một thuật tốn nén tham chiếu mà chỉ xem xét các SNPs và các phép INDELs (các phép chèn, xĩa, thay thế) nhiều bazơ giữa đầu vào và các chuỗi tham chiếu. Mỗi đầu vào nén gồm một tham chiếu vị trí và dữ liệu bổ sung như độ dài chuỗi khớp hoặc chuỗi bazơ thơ. Các số nguyên độ dài biến đổi được sử dụng để mã hĩa vị trí nơi mà bit cuối cùng trong một byte được sử dụng như một bit dừng. Mã hĩa Huffman được sử dụng để nén k-mers thơng thường. Thuật tốn đưa ra cách tối ưu để cải thiện tỉ lệ nén. Ngồi chuỗi tham chiếu thì thuật tốn cần một ánh xạ kích thước SNP tham chiếu khoảng 1GB.

GRS [20] là một cơng cụ nén tham chiếu khác dựa trên chương trình Unix

diff, tìm kiếm chuỗi con dài nhất trong hai chuỗi đầu vào. Trong GRS, diff được

sử dụng để tính độ tương đồng giữa nhiễm sắc thể đầu vào và nhiễm sắc thể tham chiếu. Nếu sự tương đồng vượt quá một giới hạn đưa ra thì sự khác nhau giữa chuỗi đầu vào và chuỗi tham chiếu được nén sử dụng mã hĩa Huffman. Ngược lại, nhiễm sắc thể đầu vào và tham chiếu được tách thành các khối (block) nhỏ hơn và việc tính tốn được bắt đầu lại trên từng cặp khối.

RLZ [30] mơ tả một phương pháp dựa trên việc tự đánh chỉ số. Thuật tốn hoạt động như sau: thuật tốn nén chuỗi đầu vào với mã hĩa LZ77 liên quan tới mảng hậu tố của chuỗi tham chiếu. Khơng lưu các chuỗi thơ kể cả đĩ cĩ là chuỗi khớp ngắn với tham chiếu được mã hĩa. Thuật tốn coi việc xem xét các chuỗi tham chiếu là vấn đề sống cịn. RLZopt [24] được mơ tả là một mở rộng của RLZ. Hướng chính là tính tốn chuỗi con dài nhất mà cho phép mã hĩa vị trí hiệu quả. RLZopt hỗ trợ truy vấn ngẫu nhiên.

GreEn [31] một khung nén tham chiếu dựa trên hệ chuyên gia mới được đề xuất gần đây. Lấy ý tưởng từ khung nén XM (eXpert Markov) khơng tham chiếu, GreEn sao chép hệ chuyên gia tìm kiếm chuỗi khớp k-mers giữa đầu vào và tham chiếu. Các kí tự thơ ở dạng ASCII được mã hĩa với mã hĩa số học. Thuật tốn phân biệt các trường hợp đặt biệt, trong đĩ chuỗi đầu vào và tham

chiếu cĩ độ dài bằng nhau. Trong trường hợp này, GreEn giả sử rằng các chuỗi đã được sắp xếp và chỉ mã hĩa SNPs.

Ngồi ra cịn cĩ các phương pháp nén tham chiếu khác như: Hệ thống dựa trên web [34], khung nén LZ77-style với truy cập ngẫu nhiên [35], các phương pháp dựa trên cấu trúc chỉ số cố định [36, 37].

Vấn đề chính của thuật tốn nén tham chiếu là tìm được chuỗi khớp dài và chuỗi tham chiếu hiệu quả. Nếu đạt được những điều kiện này thì hiệu quả của thuật tốn nén tham chiếu cĩ thể nĩi là tốt hơn các thuật tốn khác một bậc. Vượt lên trên nhiều khung nén tham chiếu với nhiều cải thiện đạt được tỉ lệ nén và khơng gian lưu trữ, JDNA được biết đến là một khung nén tham chiếu hiệu quả, xây dựng dựa trên một thuật tốn nén tham chiếu nhanh và mã nguồn được mở để cộng đồng cùng sử dụng và cải tiến. JDNA sử dụng một bảng k-mer để

đánh chỉ số cho chuỗi tham chiếu, JDNA tốn ít thời gian nén, phần lớn thời gian thực hiện là dùng cho việc đánh chỉ số. JDNA sử dụng thư viện mã nguồn mở được dùng bởi FRESCO [21] đáp ứng được 4 thiết kế chính khi thực hiện một thuật tốn nén tham chiếu đĩ là: (1) định dạng đầu vào, (2) cấu trúc chỉ số tham chiếu, (3) thuật tốn nén và (4) định dạng thứ tự chuỗi cho các tệp nén [25]. Bên cạnh đĩ JDNA cịn thêm hai cải tiến để tối ưu về thời gian nén/giải nén và dung lượng lưu trữ là (1) sử dụng tính tương đương và (2) thay thế chỉ số tham chiếu hồn tồn bằng một phương thức chỉ số theo yêu cầu. Giao diện chuỗi của khung nén cho phép tải chuỗi từ tệp và viết chuỗi vào tệp với định dạng dữ liệu RAW hoặc FASTA. Một chỉ số index dựa trên chỉ số băm k-mer được sử dụng để tìm chuỗi khớp cho chuỗi nén dựa trên tham chiếu. Tiếp theo giao diện nén sẽ cung cấp sự thực hiện hai hàm, một cho nén chuỗi vào danh sách các đầu vào khớp tham chiếu và một hàm khác cho giải nén. Cuối cùng là thực hiện chuỗi hĩa, sắp xếp một danh sách khớp tham chiếu vào một tệp với xử lý 3 chuẩn: (1) định dạng ASCII, (2) mã hĩa DELTA, và (3) dạng nhị phân rút gọn (COMPACT). Cĩ thể nĩi JDNA đạt được hiệu quả nén chuỗi đa lượng đáng mong đợi và cĩ tiềm năng mở rộng, cải tiến khá lớn. Ở chương 2, người viết sẽ tập trung trình bày chi tiết về khung nén JDNA, cách mà khung nén này kế thừa những đặc trưng của FRESCO và những cải tiến mà thuật tốn đã thực hiện để mang lại hiệu quả về tỉ lệ nén cũng như dung lượng lưu trữ khi nén chuỗi gen.

CHƯƠNG 2 – THUẬT TỐN NÉN THAM CHIẾU JDNA

Kể từ khi phát hành hệ gen người đầu tiên [17], chi phí cho việc sắp xếp chuỗi gen đã giảm khá nhanh chĩng. Ngày nay, việc sắp xếp này cĩ giá xấp xỉ 2000 USD mỗi hệ gen và được mong đợi là sẽ giảm hơn nữa trong tương lai khi mà kỹ thuật sắp xếp chuỗi gen thế hệ thứ ba trở nên phổ biến [18]. So với những năm trước, mỗi lồi chỉ cĩ một cá thể được sắp xếp chuỗi gen (như người, chuột, vi khuẩn E.coli…) thì chi phí giảm sẽ cĩ thể sắp xếp được một lượng lớn các mẫu gen phổ biến. Những nghiên cứu về sắp xếp gen, đặc biệt là hệ gen người đã và đang rất được quan tâm từ nhiều gĩc độ như sự biến đổi gen ở các lồi, nghiên cứu các nguy cơ bệnh tật tiềm ẩn, đo liều lượng thuốc hay đơn giản là để hiểu rõ hơn về mối liên hệ giữa kiểu gen và hiện tượng gen. Thêm vào đĩ, dữ liệu về gen ngày càng tăng khiến cho việc quản lý, lưu trữ và phân tích ngày càng trở nên phức tạp.

Để lưu trữ tồn bộ một hệ gen người cần khoảng 3GB khơng gian lưu trữ, sử dụng 1 byte cho mỗi nucleotit. Sử dụng 8 bit cĩ thể mã hĩa 256 kí tự khác nhau, khơng gian này cĩ thể được giảm bằng cách mã hĩa mỗi nucleotit với ít hơn 8 bit. Phương pháp nén thay thế hoặc thống kê cĩ thể giảm khơng gian lưu trữ tới khoảng 6:1 (mỗi bazơ được mã hĩa với 1,3 bit). Tuy nhiên, trong nhiều dự án chỉ các gen trong cùng lồi được xem xét. Điều này cĩ nghĩa là các dự án thường xử lý hàng trăm gen cĩ độ tương đồng cao; ví dụ hai gen người lựa chọn ngẫu nhiên được ước tính là cĩ sự tương đồng tới 99,9%. Sự tương đồng giữa các chuỗi gen cĩ thể được khai thác sử dụng thuật tốn nén gọi là nén tham chiếu, phương pháp nén mà mã hĩa những phần khác nhau của chuỗi đầu vào dựa trên một chuỗi tham chiếu. Sử dụng mã hĩa những khác biệt hiệu quả về khơng gian và các thuật tốn thơng minh để tìm các chuỗi DNA dài mà khơng cĩ khác biệt.

Do những lợi ích và hiệu quả mà JDNA đạt được đối với nén chuỗi gen theo phương pháp nén tham chiếu mà ở chương này, người viết luận văn lựa chọn trình bày thuật tốn nén tham chiếu JDNA, một khung nén tham chiếu xây dựng trên thuật tốn nén tham chiếu nhanh và mã nguồn mở của FRESCO được phát hành miễn phí cho cộng đồng sử dụng và mở rộng. Hiệu quả thực hiện đạt được tỉ lệ nén cao hơn các thuật tốn thuộc các phương thức khác và cao hơn cả FRESCO một bậc. Thêm vào đĩ, người viết sẽ trình bày những đặc trưng của FRESCO mà JDNA đã kế thừa, đồng thời trình bày những đặc trưng mà JDNA đã cải tiến và mang lại hiệu quả thực sự về tỉ lệ nén và dung lượng lưu trữ cũng như tốc độ nén chuỗi gen.

Thuật tốn được đánh giá trên tập dữ liệu từ 3 lồi: 1092 gen người, 180 gen lồi cỏ Arabidopsis thaliana và 38 gen khuẩn men.

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phương pháp nén dữ liệu để tăng hiệu quả lưu trữ chuỗi DNA (Trang 40 - 43)

Tải bản đầy đủ (PDF)

(82 trang)