Docker workflow

If you want to do phenotype prediction without the need of integrating parts of your own pipeline, we recommend the Docker workflow due to its easy-to-use interface and ready-to-use working environment within a Docker container. Besides the written tutorial, we provide a Video tutorial: Docker workflow setup embedded below.

Requirements

For the Docker workflow, Docker needs to be installed and running on your machine, see the Installation Guidelines at the Docker website. On Ubuntu, you can use docker run hello-world or `docker --version to check if Docker works (Caution: add sudo if you are not in the docker group).

If you want to use GPU support, you need to install nvidia-docker-2 (see this nvidia-docker Installation Guide) and a version of CUDA >= 11.2 (see this CUDA Installation Guide). To check your CUDA version, just run nvidia-smi in a terminal.

Setup

  1. Open a Terminal and navigate to the directory where you want to set up the project

  2. Clone this repository

    git clone https://github.com/grimmlab/easyPheno.git
    
  3. Navigate to Docker after cloning the repository

    cd easyPheno/Docker
    
  4. Build a Docker image using the provided Dockerfile tagged with the IMAGENAME of your choice

    docker build -t IMAGENAME .
    
  5. Run an interactive Docker container based on the created image with a CONTAINERNAME of your choice

    docker run -it -v /PATH/TO/REPO/FOLDER:/REPO_DIRECTORY/IN/CONTAINER -v /PATH/TO/DATA/DIRECTORY:/DATA_DIRECTORY/IN/CONTAINER -v /PATH/TO/RESULTS/SAVE/DIRECTORY:/SAVE_DIRECTORY/IN/CONTAINER --name CONTAINERNAME IMAGENAME
    
    • Mount the directory where the repository is placed on your machine, the directory where your phenotype and genotype data is stored and the directory where you want to save your results using the option -v.

    • You can restrict the number of cpus using the option cpuset-cpus CPU_INDEX_START-CPU_INDEX_STOP.

    • Specify a gpu device using --gpus device=DEVICE_NUMBER if you want to use GPU support.

    Let’s have a look at an example. We assume hat you created a Docker image called ep-image, your repository and data is placed in (subfolders of) /myhome/, you want to save your results to /myhome/ (so /myhome/ is the only directory you need to mount in your container), you only want to use CPUs 0 to 9 and GPU 0 and you want to call your container ep_container. Then you have to run the following command:

    docker run -it -v /myhome/:/myhome_in_my_container/ --cpuset-cpus 0-9 --gpus device=0 --name ep_container ep_image
    

Your setup is finished! Go to HowTo: Run easyPheno using Docker to see how you can now use easyPheno!

Useful Docker commands

The subsequent Docker commands might be useful when using easyPheno. See here for a full guide on the Docker commands.

docker images

List all Docker images on your machine

docker ps

List all running Docker containers on your machine

docker ps -a

List all Docker containers (including stopped ones) on your machine

docker start -i CONTAINERNAME

Start a (stopped) Docker container interactively to enter its command line interface

Video tutorial: Docker workflow setup