File not found with Singularity

Hi,
I try to run DeepVariant with Singularity, but the container doesn’t seem to find my files…

singularity exec --bind /home/users/username/scratch/ \
/home/users/username//scratch/deepvariant.simg \
/opt/deepvariant/bin/run_deepvariant \
--model_type WES \
--reads /home/users/username/scratch/TP_WES/proband.bam \
--ref  /home/users/username/scratch/TP_WES/Reference/hg19.fa \
--output_vcf  /home/users/username/scratch/proband.vcf

what didn’t work:
File not found, while present in the folder.

what was the error message:

[E::hts_open_format] Failed to open file "/home/users/username/scratch/TP_WES/proband.bam" : No such file or directory

Dear @Pauline.Sararols

The issue is that the directory scratch in your home directory is a symlink and that it targets a place not mounted. And in your case, your home directory is already mounted at the same location. If I specify an alternate location it works

(baobab)-[sararols@login2 Mut2]$ singularity exec --bind /home/users/s/sararols/scratch:/tmp/bla /home/users/s/sararols/scratch/deepvariant.simg bash

Singularity> ls /tmp/bla/TP_WES/Toy_dataset/Mutations/Mut2/Mut2ab_proband_final.bam
/tmp/bla/TP_WES/Toy_dataset/Mutations/Mut2/Mut2ab_proband_final.bam

and the .bam file is found.

If you don’t specify a bind option, the issue is that the symlink target a place not available from Singularity by default. If you add your scratch in the bind, it works and the symlink inside Singularity correctly resolves to the scratch space.

(baobab)-[sararols@login2 Mut2]$ singularity exec --bind /srv/beegfs/scratch/users/s/sararols/ /home/users/s/sararols/scratch/deepvariant.simg bash

Singularity> ls -la /home/users/s/sararols/scratch/TP_WES/Toy_dataset/Mutations/Mut2/Mut2ab_proband_final.bam
-rw-r--r-- 1 sararols hpc_users 377023952 Jul 14 14:50 /home/users/s/sararols/scratch/TP_WES/Toy_dataset/Mutations/Mut2/Mut2ab_proband_final.bam