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