Sign inSign up

karchinlab/opencravat

By karchinlab

•Updated 7 months ago

OpenCRAVAT genomic variant annotator

Image
1

50K+

karchinlab/opencravat repository overview

⁠Dockerfile

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

⁠Usage

⁠Installing modules

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

⁠Annotating variants

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

⁠Web GUI

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

Tag summary

Content type

Image

Digest

sha256:73040e6f4…

Size

863.3 MB

Last updated

7 months ago

docker pull karchinlab/opencravat