使用 docker 运行 ensembl-vep 时出现“文件不存在”错误

问题描述 投票:0回答:1

我按照文档中的说明安装了ensembl-vep:

cd $HOME/vep_data
curl -O https://ftp.ensembl.org/pub/release-110/variation/vep/homo_sapiens_vep_110_GRCh38.tar.gz
tar xzf homo_sapiens_vep_110_GRCh38.tar.gz

当我按如下方式运行程序时,即使文件确实存在,也会打印以下错误消息:

$ sudo docker run -v $HOME/vep_data:/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
-------------------- EXCEPTION --------------------
MSG: ERROR: File "input/1000123_23191_0_0.g.vcf" does not exist

STACK Bio::EnsEMBL::VEP::Parser::file /opt/vep/src/ensembl-vep/modules/Bio/EnsEMBL/VEP/Parser.pm:237
STACK Bio::EnsEMBL::VEP::Parser::new /opt/vep/src/ensembl-vep/modules/Bio/EnsEMBL/VEP/Parser.pm:131
STACK Bio::EnsEMBL::VEP::Runner::get_Parser /opt/vep/src/ensembl-vep/modules/Bio/EnsEMBL/VEP/Runner.pm:802
STACK Bio::EnsEMBL::VEP::Runner::get_InputBuffer /opt/vep/src/ensembl-vep/modules/Bio/EnsEMBL/VEP/Runner.pm:829
STACK Bio::EnsEMBL::VEP::Runner::init /opt/vep/src/ensembl-vep/modules/Bio/EnsEMBL/VEP/Runner.pm:136
STACK Bio::EnsEMBL::VEP::Runner::run /opt/vep/src/ensembl-vep/modules/Bio/EnsEMBL/VEP/Runner.pm:200
STACK toplevel /opt/vep/src/ensembl-vep/vep:46
Date (localtime)    = Wed Aug  2 15:41:03 2023
Ensembl API version = 110
---------------------------------------------------
bash bioinformatics vcf-variant-call-format
1个回答
0
投票

在您的 docker 容器中,您有一个完全不同的覆盖文件系统,因此

input/1000123_23191_0_0.g.vcf
在那里不存在。您需要首先使用
volumes
(
-v
) 使容器中的每个目录或驱动器可用,就像处理下载的数据集一样:
-v $HOME/vep_data:/data

一个选项是添加

-v $(pwd)/input:/input
以使容器内的所有内容都可用。

如果您的

-v
命令中有多个
docker run
参数,那完全没问题,只需确保它们位于
run
和使用的 docker-image 之间

© www.soinside.com 2019 - 2024. All rights reserved.