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 LOGNAME=${CURRENT_USER} \
-e USER=${CURRENT_USER} \
-u ${CURRENT_UID}:${CURRENT_UID} \
-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
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
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
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
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
OpenLava-LSA
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
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.
Comments