都8102年了,还用fastq-dump,快换fasterq-d

作者: xuzhougeng | 来源:发表于2018-10-04 19:24 被阅读102次

    之前写过一篇文章Fastq-dump: 一个神奇的软件, 详细介绍了fastq-dump的用法。
    虽然fastq-dump参数很多,而且一直被吐槽参数说明写的太差,但是如果真的要用起来其实也就是一行代码

    fastq-dump --gzip --split-3 --defline-qual '+' --defline-seq '@$ac-$si/$ri' SRRXXXXX| SRRXXXX.sra
    # 加上--gzip后需要时间进行文件压缩
    

    当然除了参数问题,还有一个让人诟病的地方就是他只能单个线程,所以速度特别的慢。尽管相对于下游分析要分析好几天而言,这点时间还能能等的。但是能快一点总是好的,所以在2018年的6月份,sra-tools更新了一个新的sra解压工具,fasterq-dump, a faster fastq-dump,它能利用临时文件和多线程加速从SRA文件提取FASTQ。

    fasterq-dump的用法和fastq-dump一样,如下所示

    fasterq-dump --split-3 SRR5318040.sra 
    

    此外还有建立了GitHub Wiki提供使用教程,参见https://github.com/ncbi/sra-tools/wiki/HowTo:-fasterq-dump

    重点参数是-e|threads, 用于选择使用多少线程进行运行,默认是6个线程。 同时考虑到有些人容易着急,还提供了-p选项用于显示当前进度。

    我用一个9G大小的SRA文件,分别以fastq-dumpfasterq-dump进行了测试。

    time fastq-dump --split-3 -O test SRR5318040.sra
    # 558.76s user 41.36s system 101% cpu 9:51.82 total
    time fasterq-dump --split-3 SRR5318040.sra -e 20 -o SRR5318040
    # 582.70s user 121.06s system 1130% cpu 1:02.25 total
    

    从用户模式(user mode)来看, 两者的总CPU使用时间都差不多是560秒,从内核模式来看(Kernel Mode)来看,fasterq-dump花了更多时间在调用底层硬件上,例如分配内存地址。fastq-dump基本上稳定在一个线程,而fasterq-dump尽管指定了20个线程,但平均只用了11.5个线程吧。

    对于我们而言,我们只要看最后的total部分,也就是实际花了多少时间。fastq-dump花了快10分钟,而fasterq-dump只需要1分钟,快了9倍多。

    最后还有一点不足之处:输出的fastq的ID目前暂时没有选项可以调整,需要自己写个脚本解决。

    ID

    相关文章

      网友评论

      • Code0019:请问作者是否有用二代测序组装植物基因组的经验?
        xuzhougeng:@代码0019 那就去测三代吧,装不好未必是你的技术问题,是基因组本身的问题
        Code0019:@hoptop 🤣不好意思,我是有一点组装的问题想问一下,因为手上有一个illumina 的二代结果组装不好。
        xuzhougeng:@代码0019 你想说什么?
      • 轻舞飞扬_fbd0:请问这软件在哪下载啊
        xuzhougeng:@轻舞飞扬_fbd0 你用绝对路径试试
        轻舞飞扬_fbd0:@hoptop 我就是装的新的,~/sratoolkit.2.9.2-ubuntu64/bin下也有fasterq-dump,但还是报错command not found
        xuzhougeng:@轻舞飞扬_fbd0 新版的SRA-Toolkit自带

      本文标题:都8102年了,还用fastq-dump,快换fasterq-d

      本文链接:https://www.haomeiwen.com/subject/finxaftx.html