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.nameandorganization.urlmatch your configured valuesenvironmentis set appropriately for your deploymentidreflects yourga4gh_service_idsetting (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.nameandorganization.urlmatch your configured valuesenvironmentis set appropriately for your deploymentidreflects yourga4gh_service_idsetting (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 |
|---|---|---|
|
Reversed hostname |
Organization name in service responses |
|
Scheme + hostname from request |
Organization website URL |
|
Reversed hostname |
Service ID in reverse domain format (e.g., |
|
(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_nameandorganization_urlare derived from the request URLga4gh_service_idis auto-generated by reversing the hostnameFor
galaxy.example.com, this becomescom.example.galaxy
ga4gh_service_environmentis omitted from responses