Skip to main content

GA4GH Workflow Execution Service reference implementation

Project description

Workflow as a Service

This is a client and server implementation of the GA4GH Workflow Execution Service 1.0.0 API.

It provides Arvados and Toil backends. It also works with any cwl-runner that supports the CWL standard command line interface: http://www.commonwl.org/v1.0/CommandLineTool.html#Executing_CWL_documents_as_scripts

Installation:

pip install wes-service

Usage

Client configuration

Command line parameter or environment variable.

--host or WES_API_HOST

The host to contact.

--proto or WES_API_PROTO

The protocol (http or https) to use.

--auth or WES_API_AUTH

Credentials. Format is 'Header: value' or just 'value'. If header name is not provided, value goes in the 'Authorization'.

Get service info

$ wes-client --info

Submit a workflow to run:

Attachments must be accessible from the filesystem. Workflow runners may also support http URLs or other storage systems.

$ wes-client --host localhost:8080 --proto http                             \
   --attachments="testdata/dockstore-tool-md5sum.cwl,testdata/md5sum.input" \
   testdata/md5sum.cwl testdata/md5sum.cwl.json

List workflows

$ wes-client --list

Get workflow status

$ wes-client --get <run-id>

Get stderr log from workflow:

$ wes-client --log <run-id>

Server Configuration

Run a standalone server with default cwl-runner backend:

$ wes-server

Run a standalone server with Arvados backend:

$ pip install arvados-cwl-runner
$ wes-server --backend=wes_service.arvados_wes

Run a standalone server with Toil backend:

$ pip install toil[all]
$ wes-server --backend=wes_service.toil_wes --opt extra=--clean=never

Use alternate executable with cwl-runner backend

$ pip install cwltool
$ wes-server --backend=wes_service.cwl_runner --opt runner=cwltool --opt extra=--debug

Pass parameters to cwl-runner

Use "--opt" following by "key=value"

$ wes-server --backend=wes_service.cwl_runner --opt extra=--workDir=/tmp/work

Development

If you would like to develop against workflow-service make sure you pass the provided test and it is flake8 compliant

Install from Source

$ virtualenv venv && source venv/bin/activate && pip install toil[all] && pip install . --process-dependency-links && pip install -r dev-requirements.txt

Running Tests

From path workflow-service run

$ pytest && flake8

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wes_service-5.0.tar.gz (32.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wes_service-5.0-py3-none-any.whl (31.7 kB view details)

Uploaded Python 3

File details

Details for the file wes_service-5.0.tar.gz.

File metadata

  • Download URL: wes_service-5.0.tar.gz
  • Upload date:
  • Size: 32.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.8

File hashes

Hashes for wes_service-5.0.tar.gz
Algorithm Hash digest
SHA256 38a3132d2600c5358175c2435c8a8c3a1454d9b14a3ebbef8275ac697778e95f
MD5 cd6d490fed30c3a51bb59bd586d08739
BLAKE2b-256 e179a4a8d4f26613517c8571c132d3df83791f23e4169a8d12cc806f6b455a73

See more details on using hashes here.

File details

Details for the file wes_service-5.0-py3-none-any.whl.

File metadata

  • Download URL: wes_service-5.0-py3-none-any.whl
  • Upload date:
  • Size: 31.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.8

File hashes

Hashes for wes_service-5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 74ad1907d4a514539069a5023edea590488a71224608e282f856cdcfaf7756e3
MD5 93f04f83b72211f8fd6dce0e27e74b01
BLAKE2b-256 c1775626535f4dc9ecc6ba8c7e151bb7e347bf70609887fb8fa480bb806ce955

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page