公共测序数据下载工具 fastq-dump 的更新(一)
传统旧版 fastq-dump 下载公共测序数据时,可能由于网络不稳定等原因,导致下载速度慢。其新版 fasterq-dump,可明显提升大型 SRA 文件的转换速度,提高测序数据下载的速度和稳定性
fasterq-dump 是NCBI SRA 工具包中一个完全重新设计的组件,采用了多线程和临时文件缓存机制,专门为处理大型数据集而优化。在一些测试中,速度可能提升10倍。尤其对于需要快速迭代分析、处理多个样本的研究项目来说,可明显提升效率。
SRA(Sequence Read Archive)格式是 NCBI 为存储高通量测序数据设计的专用压缩格式。它不仅仅是简单的文件压缩,而是一个包含元数据、质量分数、序列信息以及实验信息的复杂容器。理解这一点很重要,因为转换过程实际上是从这个容器中提取并重组信息,而非简单的解压缩。
SRA文件的结构层次:① 研究级(Study):对应一个完整的研究项目,通常以 SRP 开头;② 样本级(Sample):对应具体的生物样本,以 SRS 开头;③ 实验级(Experiment):描述特定的实验设计,以 SRX 开头;④ 运行级(Run):实际的测序运行数据,以 SRR 开头,这是我们最常处理的。每个 SRA 文件内部都包含多个“spot”,每个 spot 代表一次测序反应产生的数据。对于双端测序,每个 spot 包含两条 Reads(R1和R2),这就是为什么需要 –split-3 参数来正确处理配对信息。
SRA文件的大小并不直接对应最终FASTQ文件的大小。由于SRA采用了专门的压缩算法,通常 FASTQ 文件会比 SRA 文件大 2-4 倍。
传统 fastq-dump 的主要瓶颈在于:单线程处理;需要将大量数据加载到内存中进行处理;I/O效率低下,频繁的小文件写入操作;缺乏缓存机制,重复读取相同的数据区域。fasterq-dump 不仅在速度上大幅领先,在资源利用效率上也更优。特别是在处理大型文件时,这种差异会变得更加明显。
REF. https://blog.csdn.net/water/article/details/150408728
fasterq-dump 的安装与基础配置
以下安装方法二选一:(1) 手动下载与安装。建议直接从 NCBI 获取最新版,通常包含性能改进、bug 修复,对于处理大型文件尤为重要;(2) 通过Conda安装 (用于多用户环境),暂略。
下面演示手动下载、安装
浏览器访问下载地址:
https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/current/

两个下载链接。若你的 Linux 系统(发行版)是 CentOS (服务器),下载链接是:
https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/current/sratoolkit.current-centos_linux64.tar.gz
若你的 Linux 系统(发行版)是 Ubuntu (例如 Windows 的 Ubuntu 子系统),下载链接是:
https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/current/sratoolkit.current-ubuntu64.tar.gz
下面,以 “你的 Linux 系统(发行版)是 CentOS (服务器)” 为例
在 Linux 系统终端运行 (先安装到普通用户的家目录):
mkdir -p ~/fastq-dump/cd ~/fastq-dump/# 若你的 Linux 系统(发行版)是 CentOS (服务器):wget -c https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/current/sratoolkit.current-centos_linux64.tar.gz# 若你的 Linux 系统(发行版)是 Ubuntu (例如 Windows 的 Ubuntu 子系统):# wget -c https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/current/sratoolkit.current-ubuntu64.tar.gz

若 wget 命令下载太慢,可直接在网页上点击下载 (或用 Git bash 的 wget 命令下载),或切换网络,再上传到服务器的 ~/fastq-dump/ 目录下。最终用 Windows 自带的Egde浏览器 + 手机网络热点,完成快速下载。
解压、安装:
# 解压下载的文件tar -vxzf sratoolkit.current-centos_linux64.tar.gz# 进入解压后的目录 (目录名可能因版本而异,请以实际为准)cd sratoolkit.3.2.0-centos_linux64ll -thr bin/fas*
bin/fastq-load.3.2.0*
bin/fastq-dump-orig.3.2.0*
bin/fasterq-dump-orig.3.2.0*
bin/fastq-load.3 -> fastq-load.3.2.0*
bin/fastq-load -> fastq-load.3*
bin/fastq-dump.3.2.0 ->sratools.3.2.0*
bin/fastq-dump.3 -> fastq-dump.3.2.0*
bin/fastq-dump -> fastq-dump.3*
bin/fasterq-dump.3.2.0 -> sratools.3.2.0*
bin/fasterq-dump.3 -> fasterq-dump.3.2.0*
bin/fasterq-dump -> fasterq-dump.3
./bin/sratools.3.2.0 --help
An error occured: unrecognized tool ./bin/sratools.3.2.0
If this continues to happen, please contact the SRA Toolkit at https://trace.ncbi.nlm.nih.gov/Traces/sra/
./bin/fasterq-dump --help
./bin/fasterq-dump : 3.2.0
目前可以这样使用 fasterq-dump (已经安装成功):
~/fastq-dump/sratoolkit.3.2.0-centos_linux64/bin/fasterq-dump --help
版本确认:

接下来,以管理员身份,在操作系统的公共区,用 fasterq-dump 代替 fastq-dump
如果你不是管理员,后面的代码不用跑,因为上面的代码已经安装到你自己的家目录下面了,即:~/fastq-dump/sratoolkit.3.2.0-centos_linux64/bin/fasterq-dump
先查看环境变量:
echo $PATH
/disk2/bin:/conda2/bin:/miniconda3/bin:/miniconda3/condabin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/local/cuda/bin:/home/admin/pipeline/nextflow:/home/admin/pipeline/bin/bash:/home/admin/pipeline/bin/py3:/home/admin/pipeline/bin/perl:/home/admin/pipeline/bin/s-plotR:/soft/bin
旧版 fastq-dump 的位置:
which fastq-dump
/usr/local/bin/fastq-dump
查看旧版的版本:
fastq-dump --help
“fastq-dump” version 3.0.0
旧版是一个软链接:
ls -l /usr/local/bin/fastq-dump
/usr/local/bin/fastq-dump -> /soft/bin/fastq-dump
以管理员身份 (如果你不是管理员,后面的代码不用跑,因为上面的代码已经安装到你自己的家目录下面了,即:~/fastq-dump/sratoolkit.3.2.0-centos_linux64/bin/fasterq-dump),把旧版 fastq-dump 重命名,例如 “fastq-dump-old”,以免误以为是新版:
# su# /usr/local/bin 目录:# mv /usr/local/bin/fastq-dump /usr/local/bin/fastq-dump-old# /soft/bin 目录:# ls -l /soft/bin/# fastq-dump -> /soft/sratoolkit.3.0.0-centos_linux64/bin/fastq-dump# nextflow# vdb-config -> /soft/sratoolkit.3.0.0-centos_linux64/bin/vdb-config# mv /soft/bin/fastq-dump /soft/bin/fastq-dump-old# mv /soft/bin/vdb-config /soft/bin/vdb-config-old
以管理员身份,在某个公共目录下 (无某个用户的私有数据,且所有普通用户都有权限访问) 下安装:
# cd /soft/# tar -vxzf /home/shw/fastq-dump/sratoolkit.current-centos_linux64.tar.gz
在公共区,把新版 fasterq-dump 软连接成 fastq-dump
# ln -fs /soft/sratoolkit.3.2.0-centos_linux64/bin/fasterq-dump /usr/local/bin/fastq-dump
在其它任意普通用户下,新开一个 Terminal 之后,运行:
which fastq-dump# /usr/local/bin/fastq-dumpls -l /usr/local/bin/fastq-dump
/usr/local/bin/fastq-dump -> /soft/sratoolkit.3.2.0-centos_linux64/bin/fasterq-dump
fastq-dump --help
fastq-dump : 3.2.0
fasterq-dump 安装之后如何配置?
# 临时加入环境变量export PATH=/soft/sratoolkit.3.2.0-centos_linux64/bin/:${PATH}which fastq-dump# /soft/sratoolkit.3.2.0-centos_linux64/bin/fastq-dumpwhich fasterq-dump# /soft/sratoolkit.3.2.0-centos_linux64/bin/fasterq-dumpwhich vdb-config# /soft/sratoolkit.3.2.0-centos_linux64/bin/vdb-config
vdb-config --interactive

每个普通用户使用时,永久设置环境变量,用于后续持续使用:
echo "PATH=/soft/sratoolkit.3.2.0-centos_linux64/bin/:\$PATH" >> ~/.bash_profile
新建 Terminal 后,会自动生效
fastq-dump -v --split-3 --gzip SRR671719
测试下载某个SRR:
cd ~/fastq-dump/fastq-dump -v --split-3 --gzip SRR671719
top命令显示的任务:
1308733 5.0 0.0 0:08.37 fastq-dump-orig
后续的问题:fasterq-dump 安装之后如何使用?fasterq-dump 与 fastq-dump 的用法相同吗,分析流程里是否需要改 fastq-dump 的代码?如何评估 fasterq-dump 的下载速度、稳定性?
适配自己的测序数据,扫码联系客服老师报名,领取资料、上手分析:

夜雨聆风