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

简介: 之前写过一篇文章Fastq-dump: 一个神奇的软件, 详细介绍了fastq-dump的用法。虽然fastq-dump参数很多,而且一直被吐槽参数说明写的太差,但是如果真的要用起来其实也就是一行代码fastq-dump --gzip --split-3 --defline-qual '+' --defline-seq '@$ac-$si/$ri' SRRXXXXX| SRRXXXX.sra# 加上--gzip后需要时间进行文件压缩当然除了参数问题,还有一个让人诟病的地方就是他只能单个线程,所以速度特别的慢。

之前写过一篇文章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

此外还有建立了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 -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
目录
相关文章
|
算法 定位技术
八爪鱼RPA在微信的十大高频场景,让你的工作事半功倍!
在微信中,rpa(机器人流程自动化)技术可以应用于各种情况,为用户提供更高效、便捷的工作体验。本文将介绍微信中的十大高频场景,并说明rpa可以如何应用于这些场景中,从而让工作事半功倍。
|
6月前
|
数据可视化 算法 数据挖掘
HiChIP 数据分析: 分析简介
HiChIP 数据分析: 分析简介
HiChIP 数据分析: 分析简介
|
8月前
|
存储 编解码 数据可视化
Hi-C 数据的可视化与注释
Hi-C 数据的可视化与注释
Hi-C 数据的可视化与注释
|
搜索推荐 Docker 容器
生信分析代码之前还好好的,怎么就报错了 Error in Ops. data. frame(guide_loc, panel_loc) :'==' only defined for equally-sized data frames
执行 `DimPlot` 函数时遇到错误 `;Error in Ops. data. frame(g guides_loc, panel_loc) : '==' only defined for equally-sized data frames`。解决方案和办法
2751 0
生信分析代码之前还好好的,怎么就报错了 Error in Ops. data. frame(guide_loc, panel_loc) :'==' only defined for equally-sized data frames
|
安全 Linux 数据安全/隐私保护
linux root登陆,密码正确但,错误提示su: Authentication failure
通过系统化的排查和解决方案,可以有效应对 `su: Authentication failure` 问题,确保系统安全和用户权限的正确管理。
6390 36
|
11月前
|
SQL 缓存 Java
框架源码私享笔记(02)Mybatis核心框架原理 | 一条SQL透析核心组件功能特性
本文详细解构了MyBatis的工作机制,包括解析配置、创建连接、执行SQL、结果封装和关闭连接等步骤。文章还介绍了MyBatis的五大核心功能特性:支持动态SQL、缓存机制(一级和二级缓存)、插件扩展、延迟加载和SQL注解,帮助读者深入了解其高效灵活的设计理念。
|
资源调度 JavaScript 前端开发
在 Vue 3 中实现流畅的 Swiper 滑动效果
本文介绍了如何在 Vue 3 项目中集成 Swiper,涵盖了从安装、基本用法到丰富的配置选项。通过简单的示例,读者将学习如何创建响应式的图片轮播,利用 Swiper 的循环、自动播放和自定义分页功能,提升用户体验。无论是简单的幻灯片还是复杂的滑块效果,Swiper 都能轻松实现,帮助开发者快速构建出美观的滑动组件。
2931 0
|
弹性计算 数据挖掘 调度
阿里云服务器e实例与u1实例区别探析
阿里云服务器e实例与u1实例有何区别?阿里云ECS经济型e实例与通用算力型u1实例是两款颇受欢迎的产品,本文将对这两款实例进行详细的对比,帮助用户更好地了解它们的区别并做出选择。
|
数据采集 数据挖掘 数据库
单细胞分析 | 使用 Monocle 3 进行发育轨迹分析
单细胞分析 | 使用 Monocle 3 进行发育轨迹分析
1381 0
单细胞分析 | 使用 Monocle 3 进行发育轨迹分析
|
数据可视化
WGCNA 简明指南|2. 模块与性状关联分析并识别重要基因
WGCNA 简明指南|2. 模块与性状关联分析并识别重要基因
1848 0
WGCNA 简明指南|2. 模块与性状关联分析并识别重要基因