Warning

This document is for an in-development version of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.

GA4GH API Support

Galaxy consumes many of the APIs from the GA4GH standards. But a Galaxy server acts as an implementor of two of these standards currently.

Overview

The GA4GH standards provide standardized APIs for accessing and executing workflows and datasets across different bioinformatics platforms. Galaxy’s implementation allows external tools and services to:

  • DRS (Data Repository Service): Access Galaxy datasets via standardized data retrieval APIs

  • WES (Workflow Execution Service): Submit and monitor Galaxy workflow executions via standardized workflow APIs

DRS - Data Repository Service

The GA4GH Data Repository Service (DRS) enables standardized access to datasets stored in Galaxy.

For detailed API specifications, see the GA4GH DRS specification.

Configuration

DRS service information is configured via the following Galaxy settings in galaxy.yml:

galaxy:
  # Organization name shown in DRS service-info responses
  organization_name: "My Organization"

  # Organization website URL shown in DRS service-info responses
  organization_url: "https://example.com"

  # GA4GH service ID (reverse domain format)
  # If not set, defaults to reversed hostname (e.g., com.example for example.com)
  ga4gh_service_id: "org.example.myservice"

  # Environment tag for service (e.g., "test", "staging", "production")
  ga4gh_service_environment: "production"

Verifying DRS Configuration

To verify DRS is properly configured, query the service-info endpoint:

curl -s http://localhost:8080/ga4gh/drs/v1/service-info | jq .

You should see output like:

{
  "id": "org.example.drs",
  "name": "Galaxy DRS API",
  "description": "Serves Galaxy datasets according to the GA4GH DRS specification",
  "organization": {
    "name": "My Organization",
    "url": "https://example.com"
  },
  "type": {
    "group": "org.ga4gh",
    "artifact": "drs",
    "version": "1.2.0"
  },
  "version": "26.0",
  "environment": "production"
}

Verify that:

  • organization.name and organization.url match your configured values

  • environment is set appropriately for your deployment

  • id reflects your ga4gh_service_id setting (or sensible defaults if not configured)

WES - Workflow Execution Service

The GA4GH Workflow Execution Service (WES) enables external systems to submit and monitor Galaxy workflow executions.

For detailed API specifications, see the GA4GH WES specification.

Workflow Types

WES supports two Galaxy workflow formats:

  • gx_workflow_ga: Native Galaxy XML/YAML workflow format

  • gx_workflow_format2: Galaxy’s CWL-compatible workflow format

Configuration

WES service information is configured via the same Galaxy settings as DRS in galaxy.yml:

galaxy:
  # Organization name shown in WES service-info responses
  organization_name: "My Organization"

  # Organization website URL shown in WES service-info responses
  organization_url: "https://example.com"

  # GA4GH service ID (reverse domain format)
  # If not set, defaults to reversed hostname
  ga4gh_service_id: "org.example.myservice"

  # Environment tag for service (e.g., "test", "staging", "production")
  ga4gh_service_environment: "production"

Verifying WES Configuration

To verify WES is properly configured, query the service-info endpoint:

curl -s http://localhost:8080/ga4gh/wes/v1/service-info | jq .

You should see output like:

{
  "id": "org.example.wes",
  "name": "Galaxy WES API",
  "description": "Executes Galaxy workflows according to the GA4GH WES specification",
  "organization": {
    "name": "My Organization",
    "url": "https://example.com"
  },
  "type": {
    "group": "org.ga4gh",
    "artifact": "wes",
    "version": "1.0.0"
  },
  "version": "26.0",
  "environment": "production"
}

Verify that:

  • organization.name and organization.url match your configured values

  • environment is set appropriately for your deployment

  • id reflects your ga4gh_service_id setting (or sensible defaults if not configured)

Configuration Reference

All GA4GH configuration is optional and falls back to sensible defaults based on your Galaxy deployment.

Settings

Setting

Default

Purpose

organization_name

Reversed hostname

Organization name in service responses

organization_url

Scheme + hostname from request

Organization website URL

ga4gh_service_id

Reversed hostname

Service ID in reverse domain format (e.g., org.example)

ga4gh_service_environment

(none)

Environment classifier (e.g., “test”, “staging”, “production”)

Complete Configuration Example

# galaxy.yml - Complete GA4GH configuration
galaxy:
  # For DRS and WES service-info responses
  organization_name: "Example Bioinformatics Institute"
  organization_url: "https://example.com"

  # Service identifier (reverse domain format)
  ga4gh_service_id: "com.example.galaxy"

  # Environment classifier
  ga4gh_service_environment: "production"

Default Behavior

If GA4GH settings are not explicitly configured:

  • organization_name and organization_url are derived from the request URL

  • ga4gh_service_id is auto-generated by reversing the hostname

    • For galaxy.example.com, this becomes com.example.galaxy

  • ga4gh_service_environment is omitted from responses