OpenCRAVAT genomic variant annotator
50K+
FROM python:3.8
ARG PACKAGEDIR=/usr/local/lib/python3.8/site-packages/cravat
ARG BRANCH=master
RUN apt update && apt install -y vim sqlite3
RUN git clone https://github.com/KarchinLab/open-cravat.git --single-branch --branch $BRANCH && \
pip install ./open-cravat && \
pip install open-cravat-multiuser aiosqlite3 scipy pytabix
# Needed for gds-converter module
# Install latest R, folllowing docs at https://cloud.r-project.org/bin/linux/debian/
RUN apt install -y --no-install-recommends software-properties-common dirmngr && \
apt-key adv --keyserver keyserver.ubuntu.com --recv-key '95C0FAF38DB3CCAD0C080A7BDC78B2DDEABC47B7' && \
apt update && apt install -y r-base && \
pip install rpy2
# Install R packages
RUN R -e 'install.packages("BiocManager"); BiocManager::install("SeqArray");'
# Run oc version first to create some directories
RUN oc version && \
mv $PACKAGEDIR/conf /mnt/conf && ln -s /mnt/conf $PACKAGEDIR/conf && \
mv $PACKAGEDIR/modules /mnt/modules && ln -s /mnt/modules $PACKAGEDIR/modules && \
mv $PACKAGEDIR/jobs /mnt/jobs && ln -s /mnt/jobs $PACKAGEDIR/jobs && \
mv $PACKAGEDIR/logs /mnt/logs && ln -s /mnt/logs $PACKAGEDIR/logs
VOLUME /mnt/conf
VOLUME /mnt/modules
VOLUME /mnt/jobs
VOLUME /mnt/logs
VOLUME /tmp/job
WORKDIR /tmp/job
OpenCRAVAT uses persistent reference data that is too large to be part of the container. We recommend you keep a dockervolume containing modules somewhere on your host machine. You'll need to run two commands, one to install the "base" modules, and another to install the annotators you want to use.
docker run -v host/path/to/modules:/mnt/modules karchinlab/opencravat:latest oc module install-base
docker run -v host/path/to/modules:/mnt/modules karchinlab/opencravat:latest oc module install -y annotator_1 annotator_2
You can periodically use oc module update to fetch newer versions of the modules
docker run -v host/path/to/modules:/mnt/modules karchinlab/opencravat:latest oc module update -y
The container's default working directory is /tmp/job, you can mount a host folder there, and outputs will be placed in the mounted directory
docker run -v host/path/to/modules:/mnt/modules /host/path/to/inputdir:/tmp/job oc run input.vcf
Or, if you're already in the directory,
docker run -v host/path/to/modules:/mnt/modules $PWD:/tmp/job oc run input.vcf
OpenCRAVAT comes with a browser based GUI that can be used to submit jobs, and view results. This container is used to run the server at run.opencravat.org. If you're using the gui to run jobs, we recommend the following docker-compose file.
version: '3'
services:
oc-gui:
image: karchinlab/opencravat:latest
volumes:
- '/path/to/conf:/mnt/conf'
- '/path/to/modules:/mnt/modules'
- '/path/to/jobs:/mnt/jobs'
- '/path/to/logs:/mnt/logs'
ports:
- '8080:8080'
command: ['oc', 'gui']
You can also use the GUI to view a single job's output.
docker run -v host/path/to/modules:/mnt/modules $PWD:/tmp/job oc gui oc-result.sqlite
Content type
Image
Digest
sha256:73040e6f4…
Size
863.3 MB
Last updated
7 months ago
docker pull karchinlab/opencravat