Thực nghiệm so sánh JDNA với Mã hĩa Huffman và Lempel – Ziv

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 66 - 69)

So sánh sự thực hiện của các thuật tốn mã hĩa Huffman và Lempel-Ziv với nén tham chiếu JDNA. Kết quả cho thấy tốc độ nén của Huffman khá tốt, trong khi JDNA đạt được hiệu quả vượt trội về hệ số nén và kích thước tệp nén.

So sánh đầu tiên như sau: với mỗi lồi và mỗi nhiễm sắc thể, lựa chọn ngẫu nhiên một số chuỗi và áp dụng mỗi thuật tốn lựa chọn cho các chuỗi ngẫu nhiên đĩ. Kết quả được thống kê và so sánh về kích thước gen sau khi nén, thời gian nén và hệ số nén của từng thuật tốn cho một hoặc nhiều chuỗi gen cụ thể.

Các chương trình thuật tốn được chạy trên máy ảo Linux bằng các dịng lệnh tương ứng.

(1) Lệnh nén chuỗi DNA sử dụng mã hĩa Huffman:

echo 'hs_ref_GRCh38.p2_chr22.fa'

echo 'hs_ref_GRCh38.p2_chr22.fa' >> /vagrant/HuffmanArchiver- master/Result/timespan1.txt;

START=$(date +%s);

./huffar /vagrant/jdna-master/Output/hs_ref_GRCh38.p2_chr22.fa -c /vagrant/HuffmanArchiver-master/Result/hs_ref_GRCh38.p2_chr22.fa.huf;

END=$(date +%s);

echo $((END-START)) | awk '{print int($1/60)":"int($1%60)}' >> /vagrant/HuffmanArchiver-master/Result/timespan1.txt;

Trong đĩ, // hs_ref_GRCh38.p2_chr22.fa là tệp đầu vào và //hs_ref_GRCh38.p2_chr22.fa.huf là tệp nén đầu ra của thuật tốn. Tệp

//timespan1.txt hiển thị thời gian nén. Hình 3.4 dưới đây thể hiện màn hình thực

hiện chương trình thuật tốn mã hĩa Huffman.

Hình 3.4. Chương trình thuật tốn mã hĩa Huffman

(2) Lệnh nén chuỗi DNA sử dụng thuật tốn LZW

echo 'hs_ref_GRCh38.p2_chr22.fa'

echo 'hs_ref_GRCh38.p2_chr22.fa' >> /vagrant/LZW/LZW- master/Result/timespan1.txt;

START=$(date +%s);

./lzw -c /vagrant/jdna-master/Output/hs_ref_GRCh38.p2_chr22.fa /vagrant/LZW/LZW-master/Result/hs_ref_GRCh38.p2_chr22.fa.lzw;

END=$(date +%s);

echo $((END-START)) | awk '{print int($1/60)":"int($1%60)}' >> /vagrant/LZW/LZW-master/Result/timespan1.txt;

Trong đĩ, // hs_ref_GRCh38.p2_chr22.fa là tệp đầu vào và //hs_ref_GRCh38.p2_chr22.fa.lzw là tệp nén đầu ra của thuật tốn. Tệp

//timespan1.txt hiển thị thời gian nén. Hình 3.5 thể hiện màn hình thực hiện

Hình 3.5. Chương trình thuật tốn Lempel-Ziv (LZW)

(3) Lệnh nén chuỗi DNA sử dụng thuật tốn JDNA

alias java='java -Xmx4096M'

export _JAVA_OPTIONS="-Xmx4096M"

java -jar JDNA.jar COMPRESS ref_ex.raw hs_alt_CHM1_1.1_chr21.fa hs_alt_CHM1_1.1_chr21.fa.cmp

Trong đĩ, // hs_alt_CHM1_1.1_chr21.fa là tệp đầu vào và //

hs_alt_CHM1_1.1_chr21.fa.cmp là tệp nén đầu ra của thuật tốn. Hình 3.6 thể

hiện màn hình thực hiện chương trình thuật tốn JDNA.

Hình 3.6. Chương trình thuật tốn tham chiếu JDNA

Trong nhiều trường hợp, việc nén dữ liệu thành cơng khơng đồng nghĩa với việc giải nén cũng thành cơng và đạt hiệu quả tốt như mong đợi. Vì lý do này mà trong khuơn khổ thực nghiệm so sánh bổ sung, người viết cũng đã chỉnh sửa

chương trình và thực hiện giải nén các chuỗi gen đã được nén. Ở phần nén thuật tốn JDNA đã đạt được hiệu quả tốt hơn các thuật tốn thuộc loại khác, kết quả sẽ được phân tích ở phần 3.3 dưới đây nên khi thực hiện so sánh hiệu quả giải nén, người viết sẽ chỉ thống kê kết quả về thời gian thực hiện để chứng minh tính ưu việt về thời gian giải nén của thuật tốn JDNA so với hai thuật tốn được lựa chọn để so sánh. Việc giải nén cũng được thực hiện bằng các dịng lệnh tương ứng chạy trên nền Linux.

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 66 - 69)

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

(82 trang)