Starter Kit WES Overview
The current Starter Kit WES release 0.2.0 implements WES Specification Release 1.0.1
The Workflow Execution Service (WES) API provides a generic interface to workflow/batch job submission and monitoring over the web. Clients are able to launch dockerized workflows using a common REST interface regardless of the underlying language(s) different workflows are written in (Common Workflow Language, Workflow Description Language, Nextflow). View specification
Starter Kit WES is a reference server implementation of the WES specification.
Currently, the following workflow languages are supported:
- Nextflow
Currently, the following workflow engines (i.e. job submission environments) are supported:
- Native (local machine resources)
Installation and Usage
Nextflow
Nextflow WES docker images come pre-bundled with both the WES reference server and the Nextflow executable, so that Nextflow-based workflow runs can be run from the container.
To install, first pull the docker image:
docker pull ga4gh/ga4gh-starter-kit-wes:${TAG}
where ${TAG}
represents the release version of the application. Browse releases/tags of Nextflow-based WES images on Docker Hub
e.g.
docker pull ga4gh/ga4gh-starter-kit-wes:0.2.0-nextflow
We strongly recommend running the Starter Kit WES service with a YAML config file to set server properties. In addition, the docker container requires access to the host machine's docker daemon to launch dockerized workflows from Nextflow.
The following command template will start the Starter Kit WES container with custom configuration, and with all necessary file mounts between host machine and docker container:
docker run \
-p ${HOST_PUBLIC_API_PORT}:${CONTAINER_PUBLIC_API_PORT} \
-p ${HOST_ADMIN_API_PORT}:${CONTAINER_ADMIN_API_PORT} \
-v ${HOST_DOCKER_SOCKET_FILE}:/var/run/docker.sock \
-v ${HOST_WORKING_DIR}:${CONTAINER_WORKING_DIR} \
-v ${HOST_CONFIG_DIR}:/config
--workdir "${CONTAINER_WORKING_DIR}" \
ga4gh/ga4gh-starter-kit-wes:0.2.0-nextflow \
-c /config/${CONFIG_FILE}
where:
CONTAINER_PUBLIC_API_PORT
: The port within the docker container that the public API endpoints will be served over, must be equal to thepublicApiPort
value inserverProps
; e.g.7500
. More infoHOST_PUBLIC_API_PORT
: The mapped port on the host machine that will serve the public API endpoints; e.g.7500
CONTAINER_ADMIN_API_PORT
: The port within the docker container that the admin API endpoints will be served over, must be equal to theadminApiPort
value inserverProps
; e.g.7501
. More infoHOST_ADMIN_API_PORT
: The mapped port on the host machine that will serve the admin API endpoints; e.g.7501
HOST_DOCKER_SOCKET_FILE
: Full path todocker.sock
file on the host machine. Generally/var/run/docker.sock
CONTAINER_WORKING_DIR
: Directory within the container where Nextflow jobs are staged and run.HOST_WORKING_DIR
: The mapped directory on the host machine. Ideally the same path asCONTAINER_WORKING_DIR
HOST_CONFIG_DIR
: Absolute file path to directory containing YAML config filel e.g./home/user/wes/config
CONFIG_FILE
: Name of YAML config file mounted to container; e.g.config.yml
More info
The following snippet displays an example docker run
command:
docker run \
-p 7500:7500 \
-p 7501:7501 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /tmp/shared/wes:/tmp/shared/wes \
-v /home/user/wes/config:/config \
--workdir "/tmp/shared/wes" \
ga4gh/ga4gh-starter-kit-wes:0.2.0-nextflow \
-c /config/config.yml