SRAtoolkit执行prefetch报虚拟文件系统路径未找到问题咨询
sratoolkit prefetch下载特定SRA文件报虚拟文件系统路径错误的排查方案
问题根因
你使用的sratoolkit/2.8.2-1为2017年发布的老旧版本,NCBI后续调整过SRA数据的存储路径映射规则,该版本对2018年之前上传的旧SRA项目存在已知元数据解析bug:拉取项目关联run列表时,容易将同项目下相邻编号的run错误识别为目标run。你执行prefetch SRR2172947时提示找不到SRR2172948,就是典型的缓存元数据串扰问题。能正常下载SRR12626663这类新编号文件,是因为新编号没有旧的错误缓存记录,不会触发解析bug。
分步解决方法
- 先核对目标run编号准确性
确认SRX1157907实验下实际关联的SRR编号,排除输入编号和实验绑定run不匹配的低级错误。 - 清理本地损坏的SRA缓存
老版本sratoolkit会在家目录~/ncbi路径下存储元数据缓存,错误的映射记录就存放在该路径下,执行以下命令清理:rm -rf ~/ncbi/public/sra/remotedb ~/ncbi/public/sra/*.sra.tmp - 跳过旧配置重试下载
清理缓存后,设置临时环境变量跳过本地旧配置加载,强制工具重新拉取最新的路径映射,再执行下载:export VDB_CONFIG=/dev/null prefetch 核对后的正确SRR编号 - 绕开prefetch解析逻辑直接下载
如果上述操作仍然报错,可以不依赖prefetch的自动路径解析,确认正确SRR编号后,直接用常规下载工具拉取对应sra文件即可。NCBI SRA的存储路径遵循固定命名规则:路径前缀为SRA存储根目录,后跟SRR编号前6位、完整SRR编号,最终文件名为<SRR编号>.sra。 - 长期修复方案
升级sratoolkit到2.11.0及以上的稳定版本,新版本已经修复了旧版本相邻run编号解析串扰、虚拟文件系统路径解析失败的已知bug,无需额外清理缓存或配置环境变量,即可正常下载新旧项目的SRA文件。
注意:未清理缓存时不要直接重试prefetch命令,否则工具会反复读取已存储的错误映射记录,持续返回相同报错。
内容的提问来源于stack exchange,提问作者Mariam
相关产品推荐
相关产品推荐

