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
Open a Terminal and navigate to the directory where you want to set up the project
Clone this repository
git clone https://github.com/grimmlab/easyPheno.git
Navigate to Docker after cloning the repository
cd easyPheno/Docker
Build a Docker image using the provided Dockerfile tagged with the IMAGENAME of your choice
docker build -t IMAGENAME .
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 containerep_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