||
软件测试于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,压缩率不变
三款软件不同线程下表现
线程 | gzip | pigz | gtz |
---|---|---|---|
1 | 16m53s | 23m46s | 8m |
8 | - | 3m12s | 1m21s |
32 | - | 47s | 32s |
96 | - | 50s | 31s |
Rate | 36.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
解压时间大比拼
线程 | gunzip | unpigz | gtz |
---|---|---|---|
1 | 1m32s | 55s | 12m22s |
8 | - | 54s | 1m51s |
32 | - | 55s | 53s |
96 | - | 50s | 39s |
以标准的gzip为对照,点评另两另个并行软件pigz和gtz的优缺点;
在压缩上,单线程,pigz反而更慢50%,而gtz速度可以提高一倍;在多线程时,速度在前30线程内可线性提高,优势明显。gtz在速度和压缩率上更胜一筹,30线程时时间和压缩比仍比pigz超50%,但绝对没有宣传的压缩率提高7倍这么牛。
在解压上,unpigz也不支持多线程,但比gunzip略快。gtz由于压缩率略高,解压算法较复杂,在32线程时才比单线程解压的unpigz更快,这对计算需求大压力也比较大。
此外,gtz格式目前还是非主流,并不能被其它软件直接使用,因此只适合存储备份长期不用的文件,还是值得使用的。但常用软件目前不能直接使用此格式。
快速压缩解压还是要使用gz格式,主流软件支持好,解压速度快,占用资源少。
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+ 一线科研人员加入。参与讨论,获得专业解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍末解决群内讨论,问题不私聊,帮助同行。
学习扩增子、宏基因组科研思路和分析实战,关注“宏基因组”
点击阅读原文,跳转最新文章目录阅读
https://mp.weixin.qq.com/s/5jQspEvH5_4Xmart22gjMA
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-10-19 22:43
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社