You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Docker运行Ensembl-VEP时出现“File does not exist”错误

解决Ensembl-VEP Docker容器找不到输入文件的问题

核心原因

你通过-v $HOME/vep_data:/data将本地目录挂载到容器的/data目录,但命令里指定的input/1000123_23191_0_0.g.vcf是容器内的相对路径,容器默认会在/opt/vep(VEP的默认工作目录)下查找该文件,而非挂载的/data目录,因此出现“文件不存在”的错误。

排查与修复步骤

1. 确认本地文件路径是否正确

先检查输入文件是否在挂载目录下:

ls -l $HOME/vep_data/input/1000123_23191_0_0.g.vcf

如果该命令返回文件不存在,需将input文件夹移动到$HOME/vep_data目录下,或调整挂载路径。

2. 修正VEP命令的输入路径

有两种可行方式:

  • 方式一:使用容器内的绝对路径
    将--input_file和--output_file参数改为挂载目录下的绝对路径,确保容器能正确访问本地文件:
sudo docker run -v $HOME/vep_data:/data ensemblorg/ensembl-vep \
  vep --cache --offline --format vcf --vcf --force_overwrite \
  --input_file /data/input/1000123_23191_0_0.g.vcf \
  --output_file /data/output/my_output.vcf
  • 方式二:指定容器工作目录为挂载目录
    通过-w /data参数让容器在挂载的/data目录下执行命令,此时相对路径会直接指向本地的$HOME/vep_data:
sudo docker run -v $HOME/vep_data:/data -w /data ensemblorg/ensembl-vep \
  vep --cache --offline --format vcf --vcf --force_overwrite \
  --input_file input/1000123_23191_0_0.g.vcf \
  --output_file output/my_output.vcf

3. 验证挂载是否正常

若仍报错,先运行测试容器查看挂载目录内容,确认文件存在:

sudo docker run -v $HOME/vep_data:/data ensemblorg/ensembl-vep ls -l /data

确认输出中可见input文件夹及目标文件后,再重新执行VEP命令。

4. 检查文件权限(可选)

若路径正确但仍无法访问,可能是容器内用户无读取权限,给本地文件添加其他用户读权限:

chmod o+r $HOME/vep_data/input/1000123_23191_0_0.g.vcf

内容的提问来源于stack exchange,提问作者random

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 04:35:18