Table of Contents
Oyster River Protocol
Information
- Version: 2.2.8
- Added: October, 2019
Usage
See versions of orp that are available:
$ module avail orp
Load a particular version into your environment and run it:
$ module load orp/2.2.8 $ /export/apps/orp/2.2.8/oyster.mk
Read the documentation to see more information about how to run Oyster River Protocol.
Installation
Notes from the sysadmin during installation. First, create a chroot on the local filesystem to perform the installation.
$ mkdir -p /var/tmp/chroot/orp $ rpm --rebuilddb --root=/var/tmp/chroot/orp $ wget https://hpc.ilri.cgiar.org/mirror/centos/7/os/x86_64/Packages/centos-release-7-7.1908.0.el7.centos.x86_64.rpm $ sudo rpm --root=/var/tmp/chroot/orp -i centos-release-7-7.1908.0.el7.centos.x86_64.rpm $ sudo yum --installroot=/var/tmp/chroot/orp install -y rpm-build yum wget vim git $ sudo cp /etc/resolv.conf /var/tmp/chroot/orp/etc $ sudo mount --bind /dev/ /var/tmp/chroot/orp/dev $ sudo mount -t proc procfs /var/tmp/chroot/orp/proc $ sudo mount -t sysfs sysfs /var/tmp/chroot/orp/sys $ sudo chroot /var/tmp/chroot/orp
Then, after entering the chroot, try to loosely follow the instructions in the Dockerfile and the Makefile until you get the orp virtual environment activated:
# wget https://github.com/macmanes-lab/Oyster_River_Protocol/archive/2.2.8.tar.gz # tar xf 2.2.8.tar.gz # mv Oyster_River_Protocol-2.2.8 /export/apps/orp/2.2.8 # cd /export/apps/orp/2.2.8 # wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh # bash Miniconda3-latest-Linux-x86_64.sh -b -p software/anaconda/install # source software/anaconda/install/bin/activate # conda update -y -n base conda # conda install -y pycryptosat # conda config --set sat_solver pycryptosat # conda env create -f py37_env.yml python=3.7 # conda activate orp
Set up a few extra pieces of software and download some data sets (see the Makefile):
# git clone -b 2.0.1 https://github.com/bcgsc/transabyss.git software/transabyss # mkdir software/diamond # cd software/diamond && curl -LO ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/complete/uniprot_sprot.fasta.gz && gzip -d uniprot_sprot.fasta.gz # diamond makedb --in uniprot_sprot.fasta -d swissprot # cd /export/apps/orp/2.2.8 # mkdir busco_dbs # cd busco_dbs # wget http://busco.ezlab.org/v2/datasets/eukaryota_odb9.tar.gz && tar -zxf eukaryota_odb9.tar.gz # cd /export/apps/orp/2.2.8 # cd software && tar -zxf orp-transrate.tar.gz # cd /export/apps/orp/2.2.8 # Work around several Python issues: ## 1. Python is version 2 in Docker Ubuntu 18.04 installation, so we need to explicitly use that here since we're in the Anaconda environment where Python 3 is default ## 2. Install and upgrade pip for Python 2, as the EPEL version of pip is old and selects the Python 3 version of scipy ## 3. Install GCC 6 to fix error about old compiler: gcc: error: unrecognized command line option ‘-fno-plt’ ## 4. Explicitly use Python 2 in shebang # yum install epel-release # yum install python2-pip python2-devel # yum install centos-release-scl # yum install devtoolset-6 # pip2 install --upgrade pip # scl enable devtoolset-6 bash # pip2 install python-igraph scipy numpy # sed -i '1 s/python/python2/' software/OrthoFinder/orthofinder/orthofuser.py # exit # from devtoolset-6 # sed -i 's#/home/ubuntu/Oyster_River_Protocol/#/export/apps/orp/2.2.8/#' software/config.ini # env > orp # exit # from chroot $ sudo mkdir -p /export/apps/orp/2.2.8 $ sudo chown aorth /export/apps/orp/2.2.8 $ rsync -av /var/tmp/chroot/orp/export/apps/orp/2.2.8/ /export/apps/orp/2.2.8 $ sudo chown -R root:root /export/apps/orp/2.2.8
Oyster River Protocol has dozens of 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 Oyster River Protocol. Furthermore, I first installed orp/2.2.8 in a chroot on the local file system and then rsync'd it over to the network applications directory. This is MUCH faster.
To create the modulefile I compared the output env
before and after loading the orp environment with Conda.