1. 初识NCBI SRA与prefetch工具如果你正在处理高通量测序数据NCBI的SRASequence Read Archive数据库绝对是你绕不开的资源库。这里存储了海量的公开测序数据从基因组测序到转录组分析几乎涵盖了所有主流研究领域的数据。但问题来了——当你找到需要的SRA编号后如何高效地把这些数据下载到本地传统浏览器下载在面对几十GB的大文件时经常力不从心这时候就需要祭出我们今天的主角sratoolkit中的prefetch工具。这个命令行工具专为批量下载SRA数据设计支持断点续传、多线程下载等实用功能。我去年处理一个包含300样本的项目时就是靠它稳定下载了总计4TB的数据。prefetch的工作原理很有意思它不像常规下载工具那样直接拉取整个文件而是采用分块下载策略。当网络中断时已下载的块会被保留下次运行命令时会自动跳过已完成部分。这种机制特别适合不稳定的网络环境我在跨国数据传输时深有体会——即使中途断了十几次最终也能完整获取数据。2. 从零开始配置sratoolkit环境2.1 安装sratoolkit首先需要获取sratoolkit软件包。以Ubuntu系统为例打开终端执行以下命令# 下载最新版工具包注意替换版本号 wget https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/current/sratoolkit.current-ubuntu64.tar.gz # 解压压缩包 tar -xvzf sratoolkit.current-ubuntu64.tar.gz # 添加环境变量假设解压到/home/user目录 echo export PATH$PATH:/home/user/sratoolkit.3.0.7-ubuntu64/bin ~/.bashrc source ~/.bashrc验证安装是否成功prefetch --version2.2 交互式配置下载路径安装完成后别急着下载先运行这个关键命令vdb-config --interactive你会看到一个蓝色界面的配置窗口。用方向键导航到CACHE选项这里有两个关键设置Repository默认下载目录建议设置为大容量存储位置User Public Repository用户自定义缓存路径我通常会在NAS存储上专门创建/sra_cache目录作为仓库路径。配置完成后按字母键S保存按Q退出。小技巧如果后续需要更改路径重新运行上述命令即可。配置信息会保存在~/.ncbi目录下。3. prefetch实战下载技巧3.1 基础下载命令假设我们要下载SRR1234567这个样本prefetch SRR1234567下载完成后你会在配置的仓库路径下发现一个SRR1234567目录里面包含.sra数据文件和相关索引。3.2 处理大文件下载当遇到超过20GB的大文件时比如某些全基因组数据需要解除默认大小限制prefetch SRR7890123 --max-size 100G参数说明--max-size可接受单位为K/M/G/T例如--max-size 50G表示50GB限制--max-size u表示无限制慎用3.3 批量下载实战当需要下载几十个样本时可以创建accession列表文件如sra_list.txtSRR1234567 SRR2345678 SRR3456789然后使用--option-file参数批量下载prefetch --option-file sra_list.txt我在处理癌症基因组项目时曾用这个方法一次性下载了85个样本总大小约7TB。建议搭配nohup使用避免终端中断nohup prefetch --option-file sra_list.txt download.log 21 4. 常见问题排查指南4.1 锁文件错误处理有时会遇到这样的报错Cannot obtain lock on file [...].lock这是因为上次下载异常终止导致的。解决方法很简单删除报错提示的.lock文件重新运行prefetch命令4.2 磁盘空间不足prefetch在下载过程中需要额外空间处理临时文件。如果遇到空间报错可以使用df -h检查磁盘使用情况通过vdb-config -i更改缓存路径到更大容量的磁盘清理旧数据rm -rf ~/.ncbi/public/sra/*4.3 网络连接问题对于国内用户可能会遇到连接NCBI服务器缓慢的情况。可以尝试在网络状况较好的时段下载如凌晨使用--transport参数尝试不同传输协议prefetch SRR1234567 --transport http5. 数据转换与后续处理虽然本文重点在下载但提一下常用的格式转换命令。下载后的.sra文件可以通过fasterq-dump转换为fastq格式fasterq-dump SRR1234567 --split-files -O ./fastq_output重要参数说明--split-files分离双端测序数据-O指定输出目录-e线程数建议设为CPU核心数的70%转换完成后可以考虑使用pigz进行并行压缩pigz -p 8 *.fastq记得检查生成的文件完整性ls -lh ./fastq_output这套组合拳下来从数据下载到预处理就形成了完整工作流。上周我刚用这个方法处理了单细胞转录组数据从SRP123456项目下载的200个样本转换只用了不到3小时。