Skip to Content
ExplanationsConceptsTES
Target Audience
Everyone

Global Alliance for Genomics & Health - Task Execution Service (GA4GH TES)

GA4GH TES

Developed by the Global Alliance for Genomics & Health (GA4GH), the Task Execution Service provides a standard mechanism for orchestrating complex analyses across different compute environments.

To learn more, visit the GA4GH TES product page .

TES messages for 5S-TES

The reference documentation for TES messages specifies the standard for creating a task . 5S-TES accepts this format, but some fields are treated differently because of how the submission layer processes messages before they’re sent to a TES engine.

TES fieldsDescription
nameUser provided task name
descriptionUser provided task description
inputsIn a TES message, you can specify files which you would like the engine to download and use in your task. Whether these inputs will be downloaded when your task is running depends on the TRE; some will not allow inputs to be downloaded for security.
outputsIn TES messages, this specifies where outputs should be stored. This is amended by the TRE agent.
resourcesIn a TES message, you can specify the computing resources you would like to have for your task. A TRE may choose what resources you are given, rather than following this.
executorsA list of containers to run. The images available will depend on what TREs allow.
volumesShared volumes that the containers can use to share data among themselves
tagsoptional in TES, but important for orchestration by the submission layer

Tags

In TES, the tags field is “used to store meta-data and annotations about a task”. However, in 5S-TES, this has been overloaded so that two tags are essential.

A Project tag must contain the name of an approved project in the submission layer

A tres tag must contain a list of TREs that should run the task, separated by a pipe character (|).

An example of the tags field is:

"tags": { "Project": "NottinghamDemo", "tres": "Nottingham TRE 01|Nottingham TRE 02" },

Executors

TES tasks run through executors, specified in the executors field of a TES message. An example TES message could contain

{ ..., "executors": [ { "image": "harbor.federated-analytics.ac.uk/5s-tes-analysis-tools/5s-tes-analysis-tools-tre-sqlpg:1.0.0", "command": [ "--Output=/outputs/output.csv", "--Query=<SOME SQL>" ], } ] }

This tells the TES engine in each TRE to load the image  of the container at the specified URL. A container is like a lightweight virtual machine wrapping some software, which offers benefits in security and reproducibility. When the container is loaded, the specified "command" is then executed inside the container. The TES standard lets you run any sequence of containers, so 5s-TES theoretically could too. In practice, the executors you can run in 5S-TES TREs will depend on which containers the TRE will allow you to. The examples in this documentation run on containers too, but will not cover all research needs.

Last updated on