Table of Contents

Maker

MAKER is a portable and easily configurable genome annotation pipeline. Its purpose is to allow smaller eukaryotic and prokaryotic genome projects to independently annotate their genomes and to create genome databases.

Information

Usage

See versions of maker that are available:

$ module avail maker

Load a particular version into your environment and run it:

$ module load maker/3.01.03
$ maker -h

Note 1: Maker generates literally millions of small files. Please please please make sure you direct your program output to the local /var/scratch directory on the compute node where your job is running. Your job will run much faster and will not burden the network file system on /home.

Note 2: Maker uses a lot of temporary storage in /tmp by default. Please make sure to use something like -TMP /var/scratch to use a more appropriate location.

Installation

Notes from the sysadmin during installation:

$ mkdir -p /var/tmp/chroot/maker
$ rpm --rebuilddb --root=/var/tmp/chroot/maker
$ 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/maker -i centos-release-7-9.2009.0.el7.centos.x86_64.rpm
$ sudo yum --installroot=/var/tmp/chroot/maker install -y rpm-build yum gcc wget vim perl perl-App-cpanminus.noarch expat-devel
$ sudo cp /etc/resolv.conf /var/tmp/chroot/maker/etc
$ sudo mount --bind /dev/ /var/tmp/chroot/maker/dev
$ sudo mount -t proc procfs /var/tmp/chroot/maker/proc
$ sudo mount -t sysfs sysfs /var/tmp/chroot/maker/sys
$ sudo chroot /var/tmp/chroot/maker
# mkdir -p /export/apps/maker/3.01.03/deps/lib/perl5
# export PERL5LIB="/export/apps/maker/3.01.03/deps/lib/perl5"
# tar xf maker-3.01.03.tgz
# cp -r maker/* /export/apps/maker/3.01.03
# cd /export/apps/maker/3.01.03/src
# Check Perl dependencies that need satisfying...
# perl Build.PL
# cpanm -l /export/apps/maker/3.01.03/deps DBD::SQLite
# cpanm -l /export/apps/maker/3.01.03/deps forks::shared
# cpanm -l /export/apps/maker/3.01.03/deps Bit::Vector
# cpanm -l /export/apps/maker/3.01.03/deps IO::All
# cpanm -l /export/apps/maker/3.01.03/deps Want
# cpanm -l /export/apps/maker/3.01.03/deps Inline::C
# cpanm -l /export/apps/maker/3.01.03/deps Env
# cpanm -l /export/apps/maker/3.01.03/deps Bio::Root::Version
# cpanm -l /export/apps/maker/3.01.03/deps Perl::Unsafe::Signals
# exit
$ sudo mkdir -p /export/apps/maker/3.01.03
$ sudo chown aorth:aorth /export/apps/maker/3.01.03
$ rsync -av /var/tmp/chroot/maker/export/apps/maker/3.01.03/ /export/apps/maker/3.01.03
$ cd /export/apps/maker/3.01.03/src
$ export PERL5LIB="/export/apps/maker/3.01.03/deps/lib/perl5"
# Check that all Perl dependencies are satisfied...
$ perl Build.PL
$ module load repeatmasker/4.1.1 snap/2013-11-29 exonerate/2.2.0 augustus/3.2.3
# change permissions on this table of contents that Maker's build script wants to touch:
$ sudo chown -R aorth:aorth /export/apps/perl/5.16.3.1603/html/perltoc.html
# install mpich-3.2-devel so we can get mpicc to enable MPI support in Maker
$ sudo yum install mpich-3.2-devel.x86_64
$ perl Build.PL
$ ./Build install
$ sudo chown -R root:root /export/apps/maker/3.01.03
$ sudo umount /var/tmp/chroot/maker/dev /var/tmp/chroot/maker/proc /var/tmp/chroot/maker/sys

Maker requires a handful of Perl modules to be installed, which is very slow on the network file system. I solve this by beginning the installation in a chroot on the local /var/tmp file system and then copying it over to the network applications directory with rsync once I'm done.