woodcorpse的个人博客分享 http://blog.sciencenet.cn/u/woodcorpse

博文

压缩解压工具gzip、pigz、gtz大比较

已有 9050 次阅读 2018-8-25 17:05 |个人分类:软件|系统分类:科研笔记

软件测试于Ubuntu 16.04LTS

ubuntu环境下默认~/bin为个人环境变量目录

比较Linux系统自带gzip工具、多线gz压缩工具pigz、以及最新适合fastq压缩又快又小的软件GTX(自称只有传统gzip的1/6体积,实测单线程速度快了3倍,体积减少为gzip的2/3大小)

软件下载和安装

gzip系统默认,无须安装

pigz多线程压缩工具,可通过Ubuntu系统自带的新立德工具箱一键安装

sudo apt-get install pigz

GTX压缩工具,由于是新算法,压缩格式不是gz,而是gtz格式

# 下载软件
wget http://gtz.io/gtz_public_0.2.2k_ubuntu_release.tgz
# 解压
tar zxvf gtz_public_0.2.2k_ubuntu_release.tgz
# 进入程序目录
cd gtz_public_0.2.2k_ubuntu_release/
# 显示帮助
./gtz -h
# 添加环境变量,一定要软链,否则程序无法运行
ln -s `pwd`/gtz ~/bin/

软件测试

使用BGISeq500产生的PE100测序文件的一端作为测试。7.8GB,比较典型的测序样品大小。

压缩

不支持多线程的gzip

time gzip -c test.fq > test.fq.gz

多线程压缩pigz

# 注意-p一定要写下前面,后面无效
time pigz -k -p 32 test.fq
time pigz -k -p 8 test.fq
time pigz -k -p 1 test.fq
time pigz -k test.fq

gtz

time gtz test.fq
# 时间31s,压缩率24.3%(1.91/7.83G),默认输出文件为otu.gtz,不删除输入文件,CPU使用峰值为30线程
# 指定单线程数压缩至指定文件
time gtz test.fq -p 1 -o test.fq.gtz
# 8m,压缩率不变
time gtz test.fq -p 8 -o test.fq.gtz
# 1m21s,压缩率不变
time gtz test.fq -p 32 -o test.fq.gtz
# 32s,压缩率不变

三款软件不同线程下表现

线程gzippigzgtz
116m53s23m46s8m
8-3m12s1m21s
32-47s32s
96-50s31s
Rate36.5%36.5%24.3%

-代表不支持多线程。线程不要给太多,超过30几乎没有意义,反而速度下降,还浪费大量计算资源。

解压大比拼

gunzip

time gunzip test.fq.gz

unpigz

time unpigz test.fq.gz
time unpigz -p 32 test.fq.gz
time unpigz -p 8 test.fq.gz
time unpigz -p 1 test.fq.gz

gtz

gtz -d test.fq.gtz
gtz -d test.fq.gtz -p 32
gtz -d test.fq.gtz -p 8
gtz -d test.fq.gtz -p 1

解压时间大比拼

线程gunzipunpigzgtz
11m32s55s12m22s
8-54s1m51s
32-55s53s
96-50s39s

点评

以标准的gzip为对照,点评另两另个并行软件pigz和gtz的优缺点;

在压缩上,单线程,pigz反而更慢50%,而gtz速度可以提高一倍;在多线程时,速度在前30线程内可线性提高,优势明显。gtz在速度和压缩率上更胜一筹,30线程时时间和压缩比仍比pigz超50%,但绝对没有宣传的压缩率提高7倍这么牛

在解压上,unpigz也不支持多线程,但比gunzip略快。gtz由于压缩率略高,解压算法较复杂,在32线程时才比单线程解压的unpigz更快,这对计算需求大压力也比较大。

此外,gtz格式目前还是非主流,并不能被其它软件直接使用,因此只适合存储备份长期不用的文件,还是值得使用的。但常用软件目前不能直接使用此格式。

快速压缩解压还是要使用gz格式,主流软件支持好,解压速度快,占用资源少。

Reference

gzip中文帮助 http://man.linuxde.net/gzip

pigz官网 http://zlib.net/pigz/

GTX.Zip—基因领域唯一100%安全无误的企业级压缩大咖!  https://mp.weixin.qq.com/s/gthwGjkk_jpylo2NLS469A

gtz源代码 https://github.com/genetalks/gtz

猜你喜欢

写在后面

为鼓励读者交流、快速解决科研困难,我们建立了“宏基因组”专业讨论群,目前己有国内外2000+ 一线科研人员加入。参与讨论,获得专业解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍末解决群内讨论,问题不私聊,帮助同行。
image

学习扩增子、宏基因组科研思路和分析实战,关注“宏基因组”
image

image

点击阅读原文,跳转最新文章目录阅读
https://mp.weixin.qq.com/s/5jQspEvH5_4Xmart22gjMA



https://blog.sciencenet.cn/blog-3334560-1131099.html

上一篇:宏基因组理论教程3PICRUSt功能预测
下一篇:宏基因组理论教程4宏基因组物种组成
收藏 IP: 210.75.224.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-9-2 07:18

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部