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/evcouplings
-
Evcouplings databases image is contained in nselem/ev_data
docker pull nselem/ev_data
-
Evcouplings 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_dependencies
cd ev_dependencies
-
Download 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/Dockerfile
-
Build 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 Couplings
cd Couplings
mkdir Sequences
mkdir databases
-
First create a volume with all the dependencies using docker image nselem/ev_dependencies:
$ docker run -v /opt --name ev_dependencies ev_dependencies
-
Then expose this volume to the docker image nselem/evcouplings:
$ docker run -it --rm --volumes-from ev_dependencies nselem/evcouplings /bin/bash
-
To 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 file
Sequences
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