我正在 GCP 中运行 nextflow 管道(“批量”)。该管道有多个进程,前半部分成功完成。
但是,当它到达特定进程时,它甚至不会启动命令,而是无限期地保持空闲状态。
在虚拟机内部,我尝试在
ls
中安装在其上并且是我的流程所需的两个存储桶内。请注意,其他进程也需要这两个存储桶,并且它们在这些进程中工作。但是,在这个特定的过程中,两个桶之一无法访问,我无法进入其中,它会永远卡住。
我不确定这个
/mnt/disks
问题是否与进程一般被卡住有关,但我不知道从哪里开始调试它,因为它没有错误。
该管道在当地运行良好。有人知道我可以从哪里开始寻找答案吗?
编辑#1:
我想出了为什么ls
卡住了
和this post,使用gcsfuse挂载的bucket接受的并发操作数量可能有限制。 编辑#2:
命令可能有什么问题我还没有发布该命令,因为它很大并且大部分功能齐全,但我最终将其范围缩小到可能的范围。
命令的结构如下:
ls
在那里你可以看到有5
${VEP} \
--offline --cache --force_overwrite --show_ref_allele \
--numbers \
--fork ${task.cpus} \
--refseq \
--cache_version ${params.database.vep_cache_version} \
--dir_cache database/${params.database.cache_VEP} \
--fasta database/${params.database.fasta_VEP_gz} \
--dir_plugins ${VEP_PLUGINS} \
--assembly \${ASSEMBLY} \
--custom database/${params.database.clinvar},ClinVar,vcf,exact,0,CLNSIG,CLNREVSTAT,CLNDN,CLNDISDB,CLNALLELEID \
--custom database/${params.database.ExAC},exac03,vcf,exact,0,AF,AC,AC_Het,AC_Hom,AC_AFR,AC_AMR,AC_EAS,AC_FIN,AC_NFE,AC_OTH,AC_SAS,AN_AFR,AN_AMR,AN_EAS,AN_FIN,AN_NFE,AN_OTH,AN_SAS,Het_AFR,Het_AMR,Het_EAS,Het_FIN,Het_NFE,Het_OTH,Het_SAS,Hom_AFR,Hom_AMR,Hom_EAS,Hom_FIN,Hom_NFE,Hom_OTH,Hom_SAS \
--custom database/${params.database.gnomad_exomes},gnomad_exomes,vcf,exact,0,AF,AF_afr,AF_amr,AF_asj,AF_eas,AF_fin,AF_nfe,AF_oth,AF_sas,AF_XY,AF_XX,popmax \
--custom database/${params.database.gnomad_genomes},gnomad_genomes,vcf,exact,0,AF,AF_afr,AF_amr,AF_asj,AF_eas,AF_fin,AF_nfe,AF_oth,AF_sas,AF_XY,AF_XX,popmax \
--custom database/${params.database.ESP6500SI},esp6500siv2,vcf,exact,0,MAF \
--af_1kg \
--hgvs --hgvsg --symbol --nearest symbol --distance 1000 \
--canonical --exclude_predicted \
--regulatory \
-i ${norm_vcf} \
-o ${sample_id}_VEP_output.raw.vcf \
-vcf --flag_pick_allele_gene \
--pick_order mane,canonical,appris,tsl,biotype,ccds,rank,length
数据库。这个带有 5 个 --custom 注释的命令有效。
在本地,这个 9+9 配置有效,但在 gcp 中则不行。我开始认为这可能是由于
gcsfuse本身造成的。但是我不知道如何调试它或从 nextflow 控制它。 有人有过这样的经历吗?
gcsfuse本身gsutil造成的。但是我不知道如何调试它或从 nextflow 控制它。
测试这一假设的一种方法是从图片中删除 gcsfuse,而是通过
或调用 Cloud Storage API 的代码将文件复制到 Cloud Storage 或从 Cloud Storage 复制文件。 如果有效,您可以尝试对文件的子集使用 gcsfuse。