Docker images for Bioinformatics software

How to run containers of VIGA, QIIME, PyFBA, Cutadapt and DADA2 and a helpful wrapper script for non-root users.

These are all published in the Docker Hub. If you have Docker installed and working, you can get them using

docker pull vimalkvn/image_name

Most of these images are built using a Dockerfile and so can be customized easily if required. The Dockerfile’s, scripts and associated help (README) can all be found in the sysadminbio under docker-images on GitLab.

Wrapper script to run containers

Most images have a wrapper script included in their respective directories which can be used to run a container based on the image. For example, in the case of the VIGA program, this script is called run-viga. This is a simple BASH script that calls the docker command like this

docker run --rm \
     -e USER=${CURRENT_USER} \
     -v /data/databases:/data/databases:ro \
     -v $(pwd):/wdir \
     -w /wdir \
     vimalkvn/viga $*

--rm ensures container is removed after it has been used.

The -e and -u options set the user and group id’s of the files generated by the container to that of the current user i.e., the user running the docker command. Without this, files generated will all be owned by root or another user set in the Docker image.

The -v option is specific for different images and can be modified if necessary. The current directory is also exported set as the working directory (-w) for the container so input files will be accessible and any generated output files will also be saved here.

Note: the wrapper scripts are not necessary to use any of the images.

It is only provided for convenience. Containers can be created from the images directly using the docker run command but this would mean that users will need access to the docker command i.e., they should belong to the docker user group which is equivalent of having root access. That is why this approach would be better. Users will just need to be given sudo access to the wrapper script.

The following is a summary of all available images.


VIGA is a de novo viral genome annotator. This image has all dependencies needed to run VirAnnot including Aragorn, HMMER, BLAST+, Diamond, Prodigal, BioPython, LASTZ, Tandem and Inverted Repeats Finder.

You can pull this image using the command

docker pull vimalkvn/viga

Note: This program was previously called as VirAnnot.


QIIME is an open source bioinformatics pipeline for performing microbiome analysis of raw DNA sequencing data.

The QIIME image has version 1.9.1 installed along with all dependencies and the latest version of R (for Ubuntu 14.04) and packages (ape, biom, optparse, RColorBrewer, randomForest, vegan, DESeq2 and metagenomeSeq)

You can pull this image using the command:

docker pull vimalkvn/qiime


DADA2 is a program for fast, accurate, single-nucleotide resolution for amplicon data.

The DADA2 image has version 1.4.0 of the package installed along with R 3.4.0.

You can pull this image using the command

docker pull vimalkvn/dada2

This container simply runs the Rscript command and expects an R script as the first argument. If a command other than Rscript is required, it can be specified using the --entrypoint docker argument.


PyFBA is a python implementation of flux balance analysis to model microbial metabolism.

The PyFBA image will have the latest version of PyFBA from Github along with all the dependencies pre-installed - GLPK, PyGLPK, libSBML, lxml, Beautiful Soup 4 and the ModelSEED database.

You can pull this image using the command:

docker pull vimalkvn/pyfba


An OpenLava docker image configured for the LSA package.

You can pull this image using the command:

docker pull vimalkvn/docker-openlava-lsa

Please consult the README in the repository for information on usage.


Cutadapt is a program for removing adapter sequences from sequencing reads. The cutadapt image has version 1.13 of the package installed.

You can pull this image using the command:

docker pull vimalkvn/cutadapt

If there is a problem with any of these images, you can file an issue on GitLab.