软件测试于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格式,主流软件支持好,解压速度快,占用资源少。
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
猜你喜欢
- 10000+: 菌群分析
宝宝与猫狗 提DNA发Nature 实验分析谁对结果影响大 Cell微生物专刊 肠道指挥大脑 - 系列教程:微生物组入门 Biostar 微生物组 宏基因组
- 专业技能:生信宝典 学术图表 高分文章 不可或缺的人
- 一文读懂:宏基因组 寄生虫益处 进化树
- 必备技能:提问 搜索 Endnote
- 文献阅读 热心肠 SemanticScholar Geenmedical
- 扩增子分析:图表解读 分析流程 统计绘图
- 16S功能预测 PICRUSt FAPROTAX Bugbase Tax4Fun
- 在线工具:16S预测培养基 生信绘图
- 科研经验:云笔记 云协作 公众号
- 编程模板: Shell R Perl
- 生物科普: 肠道细菌 人体上的生命 生命大跃进 细胞暗战 人体奥秘
写在后面
为鼓励读者交流、快速解决科研困难,我们建立了“宏基因组”专业讨论群,目前己有国内外2000+ 一线科研人员加入。参与讨论,获得专业解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍末解决群内讨论,问题不私聊,帮助同行。
学习扩增子、宏基因组科研思路和分析实战,关注“宏基因组”
点击阅读原文,跳转最新文章目录阅读
https://mp.weixin.qq.com/s/5jQspEvH5_4Xmart22gjMA