Installation

Non-python Dependencies

First we will take care of the external non-python dependencies; then we’ll move on to getting our python environment ready.

Unfortunately, annotation necessarily relies on many software packages. I have worked hard to make dammit rely only on software which is accessible and likely to continue to be so. Most of the dependencies are available in either Ubuntu PPAs or PyPI, and if not, are trivial to install manually. If the goal is to make annotation suck less, then installing the necessary software should suck less too.

Most of this guide will assume you’re on a Ubuntu system. However, the dependencies should all run on any flavor of GNU/Linux and on OSX.

First, let’s get packages from the Ubuntu PPAs:

sudo apt-get update
sudo apt-get install git ruby hmmer unzip build-essential \
    infernal ncbi-blast+ liburi-escape-xs-perl emboss liburi-perl \
    libsm6 libxrender1 libfontconfig1 parallel

If you’re on Ubuntu 15.10, you can also install TransDecoder and LAST through aptitude:

sudo apt-get install transdecoder last-align

Otherwise, you’ll need to install them manually. To install TransDecoder in your home directory, execute these commands in your terminal:

cd
curl -LO https://github.com/TransDecoder/TransDecoder/archive/2.0.1.tar.gz
tar -xvzf 2.0.1.tar.gz
cd TransDecoder-2.0.1; make
export PATH=$HOME/TransDecoder-2.0.1:$PATH

To get LAST:

cd
curl -LO http://last.cbrc.jp/last-658.zip
unzip last-658.zip
cd last-658
make
export PATH=$HOME/last-658/src:$PATH
export PATH=$HOME/last-658/scripts:$PATH

The above commands will only install them for the current session; to keep it installed, append the exports to your bash profile:

echo 'export PATH=$HOME/TransDecoder-2.0.1:$PATH' >> $HOME/.bashrc
echo 'export PATH=$HOME/last-658/src:$PATH' >> $HOME/.bashrc
echo 'export PATH=$HOME/last-658/scripts:$PATH' >> $HOME/.bashrc

Next, we need to install Conditional Reciprocal Best-hits Blast (CRBB). The algorithm is described in Aubry et al., and is implemented in ruby. Assuming you have ruby (which was installed above), it can be installed with:

sudo gem install crb-blast

dammit also runs BUSCO to assess completeness. To install it, run the following commands:

cd
curl -LO http://busco.ezlab.org/files/BUSCO_v1.1b1.tar.gz
tar -xvzf BUSCO_v1.1b1.tar.gz
chmod +x BUSCO_v1.1b1/*.py
export PATH=$HOME/BUSCO_v1.1b1:$PATH

…and once again, to install it permanently:

echo 'export PATH=$HOME/BUSCO_v1.1b1:$PATH' >> $HOME/.bashrc

Python Dependencies

dammit is a python package, and relies on a number of commonly-used scientific libraries. If you’re sure you have the following python dependencies already, you can skip this step and move on to the final stage:

setuptools>=0.6.35
pandas>=0.17
khmer>=2.0
doit>=0.29.0
nose==1.3.4
ficus>=0.1
matplotlib>=1.0

Otherwise, we will have to install them. Pandas, numpy, and matplotlib are quite hefty, mostly because they require a lot of compilation. To get around this, you can either install them via Anaconda, which I recommend, or you can install those which are available through the Ubuntu PPAs. If you wish to do things the slow but traditional way, you can just skip right ahead and:

pip install -U setuptools
pip install dammit

Otherwise, proceed to the Anaconda instructions, or skip ahead to the hybrid Ubuntu / Pip Instructions.

Anaconda

Anaconda (or miniconda) is the preferred distribution for dammit. It’s straightforward to install and saves a lot of time compiling things when creating new environments. To install it on Ubuntu, first download it:

cd
curl -OL https://3230d63b5fc54e62148e-c95ac804525aac4b6dba79b00b39d1d3.ssl.cf1.rackcdn.com/Anaconda2-4.0.0-Linux-x86_64.sh

And run the installer:

bash Anaconda2-2.4.0-Linux-x86_64.sh -b
echo 'export PATH=$HOME/anaconda2/bin:$PATH' >> $HOME/.bashrc

Select yes when prompted on adding it to your .bashrc, and resource your profile to gain access to it:

source .bashrc

The version of Sphinx which is shipped with Anaconda has issues; we will remove it and allow dammit to install its own version via PyPI:

conda remove sphinx

Get the latest versions of some packages:

conda update pandas numexpr

Ubuntu / Pip Instructions

If you’d prefer to not use Anaconda, are on a clean Ubuntu 14.04 machine, have not installed the python packages with pip, and have installed the non-python dependencies, you can install them through the Ubuntu PPAs as follows:

sudo apt-get update
sudo apt-get install python-pip python-dev python-numpy

Unfortunately, you’ll still have to install Pandas through pip, as the versions in the Ubuntu 14.04 PPAs are quite old. These will be installed automatically along with dammit.

Dammit

dammit itself is quite easy to install. Just run:

pip install -U setuptools
pip install dammit

If you’re not running anaconda or a virtual environment, you’ll have to put a sudo before pip to install it globally. If you don’t already have a recent versions of Pandas and scikit-learn this will take a bit.

When you’re done, run the check again to make sure everything was installed correctly:

dammit dependencies

And you’re ready to go!