This repository contains three Docker containers for EVcouplings, following @sacdallago suggestions:
The EVcouplings image (containing the python evcouplings script). This container would work out of the box (aka: no first run magic) and expose the evcouplings script.
The EVcouplings-databases image
The EVcouplings-dependencies image (containing all the built optional and required dependencies, like CNS,...). This container would also already have all the dependencies built and thus be ready.
Evcouplings image is contained in nselem/evcouplings
docker pull nselem/evcouplingsEvcouplings databases image is contained in nselem/ev_data
docker pull nselem/ev_dataEvcouplings dependencies image is contained in nselem/ev_dependencies This image contains cns_solve software that is under license, you should not use it without cns permission. For this reason first you need to
Create a directory to build ev_depencies.
mkdir ev_dependenciescd ev_dependenciesDownload your own copy of cns_solve. The version you need it is cns_solve_1.21_all_intel-mac_linux-mp.tar.gz
Download ev_dependencies Dockerfile
wget https://raw.githubusercontent.com/nselem/evcouplings/master/ev_dependencies/DockerfileBuild ev_dependencies in your local machine.
docker build -t ev_dependencies .
Create a working directory, in this example I called my working directory Couplings.
mkdir Couplingscd Couplingsmkdir Sequencesmkdir databasesFirst create a volume with all the dependencies using docker image nselem/ev_dependencies:
$ docker run -v /opt --name ev_dependencies ev_dependenciesThen expose this volume to the docker image nselem/evcouplings:
$ docker run -it --rm --volumes-from ev_dependencies nselem/evcouplings /bin/bashTo finally run evcoupling dockers, you need a config file and the databases setup. Right now Im passing databases as volume from my local computer product of the first run of docker images, but I think nselem/ev_data would work.
Run evcouplings docker image
$ docker run -it --rm --volumes-from ev_dependencies -v $(pwd)/Sequences:/home -v $(pwd)/databases:/groups/marks/databases:ro nselem/evcouplings /bin/bash
and then run evcouplings plataform inside the docker container typing the command evcouplings_runcfg followed by the name of your configuration file. For example if your configuration file is HisA_config_monomer.txt then run:# evcouplings_runcfg HisA_config_monomer.txt
-Configuration fileSequences must contain a configuration file according to the evcoupling config files tutorial
Configuration file example. (pending)
-Databases
The directory /groups/marks/databases contains all databases downloaded inside the docker container. By now I downloaded them by runing:# evcouplings_dbupdate
the first time I opened evcouplings container. After downloading store databases in your databases directory.
- To do in the future
I whish to use databases container. Maybe like this: create a volume with databases using docker image nselem/ev_databases:docker run -v /data --name ev_databases nselem/ev_data
And finally my desire is to get to this:docker run -it --rm --volumes-from ev_dependencies ev_databases -v $(pwd)/Sequences:/home nselem/evcouplings evcouplings_runcfg HisA_config_monomer.txt