-
Notifications
You must be signed in to change notification settings - Fork 90
Description
Description:
I am running funannotate predict within the latest Singularity container on an HPC cluster and am encountering a persistent error when the pipeline attempts to run GeneMark internally. The issue seems related to the container not correctly utilizing the host system's Perl environment for required modules, even when binding paths and exporting PERL5LIB.
Steps to Reproduce:
The failure occurs while executing the following SLURM script:
bash
#!/bin/bash
#SBATCH --job-name=funannotate_F8-1
#SBATCH --time=8:00:00
... (SLURM headers omitted) ...
... (Variable definitions omitted) ...
Run Command:
singularity exec
--bind "$SCRATCH_WORK_DIR:/data"
--bind "$SCRATCH_WORK_DIR/predict_out:$CONTAINER_OUTPUT_PREDICT"
--bind "$BUSCO_DB":"$CONTAINER_BUSCO_DB"
--bind "$GENEMARK_PATH":/opt/genemark
--bind "$PERL_LIB_PATH":/usr/local/lib/perl5
--env PERL5LIB=/usr/local/lib/perl5
"$SINGULARITY_IMAGE" funannotate predict
-i "$CONTAINER_GENOME"
--other_gff "$BRAKER_GFF"
--protein_evidence "$PROTEIN_FA"
--species "$SPECIES_NAME"
--organism fungus
--cpus "$CPU"
-o "$CONTAINER_OUTPUT_PREDICT"
--force
Use code with caution.
Expected Behavior:
The Singularity container should be able to execute the gmes_petap.pl script successfully using the provided bind mounts or its internal environment, finding the required Perl modules.
Actual Behavior:
The command fails with a CMD ERROR and a Perl error message indicating a missing module (FindBin.pm). The paths provided in the --bind mounts are not being correctly incorporated into the container's active @inc path list.
Log Output:
[Dec 12 09:21 AM]: Running funannotate v1.8.17
[Dec 12 09:21 AM]: GeneMark path: /mnt/home/abbeyjoe/gmes_linux_64_4
...
[Dec 12 09:22 AM]: Running GeneMark-ES on assembly
[Dec 12 09:22 AM]: CMD ERROR: /mnt/home/abbeyjoe/gmes_linux_64_4/gmes_petap.pl --ES --max_intron 3000 --soft_mask 2000 --cores 32 --sequence genome.query.fasta --fungus
[Dec 12 09:22 AM]: Can't locate FindBin.pm in @inc (@inc contains: /usr/local/lib/perl5/x86_64-linux-gnu-thread-multi /usr/local/lib/perl5 /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/x86_64-linux-gnu/perl5/5.28 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.28 /usr/share/perl/5.28 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at /mnt/home/abbeyjoe/gmes_linux_64_4/gmes_petap.pl line 79.
BEGIN failed--compilation aborted at /mnt/home/abbeyjoe/gmes_linux_64_4/gmes_petap.pl line 79.
Environment Details:
Funannotate Version: v1.8.17 (Official Singularity image: nextgenusfs/funannotate:latest -> funannotate_latest.sif)
Host OS: Debian GNU/Linux 10
Singularity Version: singularity-ce version 4.1.2-jammy
GeneMark Path (Host): /mnt/home/abbeyjoe/gmes_linux_64_4 (bound to /opt/genemark in container)
Perl Lib Path (Host): /mnt/home/abbeyjoe/perl5/lib/perl5 (bound to /usr/local/lib/perl5 in container, PERL5LIB also exported)