User Tools

Site Tools


funannotate-software

funannotate

funannotate is a pipeline for genome annotation (built specifically for fungi, but will also work with higher eukaryotes).

Information

Usage

See versions of funannotate that are available:

$ module avail funannotate

Load a particular version into your environment and run it:

$ module load funannotate/1.8.7
$ funannotate --help

Installation

Notes from the sysadmin during installation:

$ mkdir -p /var/tmp/chroot/funannotate
$ rpm --rebuilddb --root=/var/tmp/chroot/funannotate
$ wget https://hpc.ilri.cgiar.org/mirror/centos/7/os/x86_64/Packages/centos-release-7-9.2009.0.el7.centos.x86_64.rpm
$ sudo rpm --root=/var/tmp/chroot/funannotate -i centos-release-7-9.2009.0.el7.centos.x86_64.rpm
$ sudo yum --installroot=/var/tmp/chroot/funannotate install -y rpm-build yum gcc wget vim perl
$ sudo cp /etc/resolv.conf /var/tmp/chroot/funannotate/etc
$ sudo mount --bind /dev/ /var/tmp/chroot/funannotate/dev
$ sudo mount -t proc procfs /var/tmp/chroot/funannotate/proc
$ sudo mount -t sysfs sysfs /var/tmp/chroot/funannotate/sys
$ sudo chroot /var/tmp/chroot/funannotate
# wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# bash Miniconda3-latest-Linux-x86_64.sh -b -p /export/apps/funannotate/conda
# eval "$(/export/apps/funannotate/conda/bin/conda shell.bash hook)"
# conda config --add channels defaults
# conda config --add channels bioconda
# conda config --add channels conda-forge
# conda install -n base mamba
# mamba create -p /export/apps/funannotate/1.8.7 funannotate
# env > before-conda
# conda activate /export/apps/funannotate/1.8.7
# env > conda-funannotate-1.8.7
# exit
$ sudo mkdir -p /export/apps/funannotate/1.8.7
$ sudo chown aorth /export/apps/funannotate/1.8.7
$ rsync -av /var/tmp/chroot/funannotate/export/apps/funannotate/1.8.7/ /export/apps/funannotate/1.8.7
$ sudo chown -R root:root /export/apps/funannotate/1.8.7
$ sudo umount /var/tmp/chroot/funannotate/dev /var/tmp/chroot/funannotate/proc /var/tmp/chroot/funannotate/sys

funannotate has over fifty dependencies and is essentially impossible to install without the use of Miniconda. My strategy is to install Conda somewhere globally and then use it to install funannotate. After the installation is done I think we don't technically need Conda itself anymore, as all binaries seem to be linked against libraries in the funannotate/1.8.7 directory. Furthermore, I first installed funannotate/1.8.7 in a chroot on the local file system and then rsynced it over to the network applications directory. This is MUCH faster, but more importantly, it avoids random "permission denied" errors I was getting when installing on the network file system.

To create the modulefile I compared the output env before and after loading the funannotate environment with Conda.

Install databases:

$ module load funannotate/1.8.7
$ funannotate check --show-versions
$ sudo mkdir -p /export/apps/funannotate/1.8.7/db
$ sudo chown aorth /export/apps/funannotate/1.8.7/db
$ funannotate setup -d /export/apps/funannotate/1.8.7/db

Run built-in tests:

$ funannotate test -t all --cpus 12
funannotate-software.txt · Last modified: 2021/08/05 08:03 by aorth