funannotate is a pipeline for genome annotation (built specifically for fungi, but will also work with higher eukaryotes).
Funannotate is installed in a dedicated "container" environment using Singularity (similar to Docker, but more suited to HPC environments) so you need to run it a bit differently than other software. Here is an example SLURM batch script, funannotate.sbatch:
#!/usr/bin/env bash
#SBATCH -p batch
#SBATCH -n 10
#SBATCH -J funannotate
# Set up output directory in scratch
WORKDIR=/var/scratch/aorth/funannotate/2022-06-09
mkdir -p "$WORKDIR" && cd "$WORKDIR"
echo "SLURM job ID $SLURM_JOBID using $WORKDIR on $SLURMD_NODENAME"
DATADIR=/home/aorth/data
rnaseq_ont="${DATADIR}/ayb_leaf_stem_root.fastq"
genome="${DATADIR}/ayb_11chrs_assembly_soft_masked.fasta"
# The most important thing is to bind the input files and output directory.
singularity run \
--bind "$genome:$genome","$rnaseq_ont:$rnaseq_ont","$WORKDIR:$WORKDIR" \
/export/apps/funannotate/1.8.15/funannotate.sif \
funannotate train --input "$genome" \
--out "$WORKDIR" \
--nanopore_cdna "$rnaseq_ont" \
--max_intronlen 10000 \
--jaccard_clip --species "Sphenotylis stenocarpa" \
--cpus $SLURM_NTASKS
Note the use of bind to map the input files and working directory from the compute node into the container.
Notes from the sysadmin during installation:
$ export SINGULARITY_TMPDIR=/var/scratch/aorth $ mkdir $SINGULARITY_TMPDIR $ singularity pull /var/scratch/funannotate.sif docker://nextgenusfs/funannotate:v1.8.15 $ sudo mkdir -p /export/apps/funannotate/1.8.15 $ sudo cp /var/scratch/funannotate.sif /export/apps/funannotate/1.8.15
Run built-in tests:
singularity run \
/export/apps/funannotate/1.8.15/funannotate.sif \
funannotate test -t all --cpus 10