latest
(potage/Dockerfile)
POTAGE (pronounced "pəʊˈtɑːʒ") is a web-based tool for integrating genetic map location with gene expression data and inferred functional annotation in wheat.
You can access the public POTAGE web server (http://crobiad.agwine.adelaide.edu.au/potage) which contains a limited number of published gene expression data sets.
How to deploy this image using Singularity
Build a local, writable image based on the image from docker hub
singularity build --sandbox potage/ docker://crobiad/potage
Optional: for sequence similarity search fuctionallity to be available in POTAGE, reference sequences need to be downloaded and indexed in a BLAST database
singularity exec --writable --pwd /var/tomcat/persist/potage_data potage setup_db
Deploy
singularity run --writable --pwd /var/tomcat/persist/potage_data potage
The running instance of POTAGE should now be available under http://localhost:8080/potage
How to deploy this image using Docker
We assume you are running docker >= v1.9.0
. If not, the docker volume
command will not work
# Create a volume for persistent storage of the BLAST databases
$ docker volume create --name potage_blastdb
# Create a log file on the host for the persistent storage of POTAGE visitor information
$ sudo touch /var/log/potage_visits.log
# Create a running container from the POTAGE image
# It will be accessible from http://host-ip/potage
$ docker run --detach \
--name POTAGE \
--publish 80:8080 \
--volume "potage_blastdb:/var/tomcat/persist/potage_data/global/blast_db" \
--volume "/var/log/potage_visits.log:/var/tomcat/persist/potage_data/visits.txt" \
crobiad/potage
# Download and setup the BLAST database
# Getting files from URGI by default
$ docker exec POTAGE \
setup_db
You should now be able to access POTAGE by visiting http://hostname/potage
$ docker run --detach --name POTAGE crobiad/potage
You can test if it running by visiting http://container-ip:8080/potage
in your browser. To find the IP address of the container run this:
$ docker inspect \
--format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' POTAGE
If you need access to the container from outside the host running docker, on port 8888 for example:
$ docker run --detach --name POTAGE --publish 8888:8080 crobiad/potage
You can then go to http://localhost:8888/potage
or http://host-ip:8888/potage
or http://hostname:8888/potage
Data created and written by a container is not persistent. That is, once the container ceases to exist any data/files created by the container no longer exist. This presents a problem for POTAGE since it needs to download a large amount of data and setup a BLAST database. If this information was lost each time a container was stopped, you could waste a lot of time and network bandwidth re-downloading and formatting this data.
To get around this issue, we will use docker volumes. Docker takes care of managing the location of the files written to the volume, all we need to do is to create the volume and then tell docker where to mount the volume in the container:
$ docker volume create --name potage_blastdb
$ docker run --detach \
--name POTAGE \
--volume "potage_blastdb:/var/tomcat/persist/potage_data/global/blast_db" \
crobiad/potage
POTAGE uses a BLAST database of the International Wheat Genome Sequencing Consortium's (IWGSC) Chromosomal Survey Sequences (CSS). Once you have a POTAGE container running, preferably with persistent storage attached you can download and setup the required BLAST database:
$ docker exec POTAGE setup_db
By default, the data will be retrieved directly from URGI. This can be slow for a variety of reasons, including your geographic location, load on the URGI network etc. For this reason we have created a copy of this data on the NeCTAR Research Cloud in Australia. To use this mirror, simply specify a BASE_URL
:
$ docker exec POTAGE \
setup_db \
BASE_URL=https://swift.rc.nectar.org.au:8888/v1/AUTH_33065ff5c34a4652aa2fefb292b3195a/IWGSC_CSS/
For information on conributing, please see our Contribution Guidelines.