GA4GH TRS Tool Registry Extractor
Pricing
from $0.35 / 1,000 tool rows
GA4GH TRS Tool Registry Extractor
Point at ANY GA4GH TRS v2 registry (Dockstore, WorkflowHub) and pull tools, workflows, tool classes, versions and CWL/WDL/NFL/GALAXY descriptors into clean flat rows. Auto-pages via next_page, round-trips %2F tool ids, surfaces each version's descriptor types. Pay per tool.
Pricing
from $0.35 / 1,000 tool rows
Rating
0.0
(0)
Developer
Datamule
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Point at any GA4GH TRS (Tool Registry Service) v2 registry and pull its tools, workflows, tool classes, versions and workflow descriptors into clean, flat, tabular rows — one actor for the whole standard, no per-registry scraper.
TRS is the Global Alliance for Genomics & Health standard
for describing and discovering runnable analysis tools and workflows. Registries
like Dockstore and WorkflowHub all expose the same uniform /ga4gh/trs/v2
grammar, so this actor harvests any of them the same way.
What it does
Give it one or more TRS base URLs and a mode:
| Mode | Returns |
|---|---|
tools | One row per tool / workflow (paginated, filterable by name, class, organization, registry, author, checker). |
toolClasses | The registry's tool-class taxonomy (CommandLineTool, Workflow, Notebook, Service…). |
service-info | The registry's identity, TRS spec version and software version. |
tool-versions | One row per version of each tool (all tools, or a given toolId list). |
tool-descriptor | The descriptor file (CWL / WDL / Nextflow / Galaxy / Snakemake) for each version — surfacing whatever types the version actually advertises. |
Every row is normalized to the same flat shape regardless of which registry it
came from, plus a lossless _raw copy of the original record and _source /
_trsName / _registrySoftware provenance.
Verified registries (live)
- Dockstore —
https://dockstore.org/api/ga4gh/trs/v2(2,200+ tools & workflows) - WorkflowHub —
https://workflowhub.eu/ga4gh/trs/v2(1,500+ workflows)
Any other conformant GA4GH TRS v2 endpoint works too — just pass its base URL.
Pasted the registry's website address instead (e.g. https://dockstore.org or https://workflowhub.eu/workflows/2)? The actor checks the same host's /api/ga4gh/trs/v2 and /ga4gh/trs/v2 for a TRS service-info and uses the one that answers (a warning in the log names it). A URL copied from deeper in the API (…/ga4gh/trs/v2/tools/<id>/versions) is cut back to the …/ga4gh/trs/v2 root.
Example input
List workflows on Dockstore:
{"sources": ["https://dockstore.org/api/ga4gh/trs/v2"],"mode": "tools","toolClass": "Workflow","maxRecords": 500}
Pull the CWL/WDL/Nextflow/Galaxy descriptor files for one tool:
{"sources": ["https://dockstore.org/api/ga4gh/trs/v2"],"mode": "tool-descriptor","toolId": ["quay.io/collaboratory/dockstore-tool-bedtools-genomecov"]}
Harvest two registries in one run:
{"sources": ["https://dockstore.org/api/ga4gh/trs/v2","https://workflowhub.eu/ga4gh/trs/v2"],"mode": "tools","maxRecords": 1000}
Output fields
Common: _source, _mode, _trsName, _trsVersion (TRS spec, e.g. 2.0.1),
_apiVersion (registry software version), _registrySoftware, id, name,
description, organization, toolclass, url, pageUrl, aliases, _raw.
pageUrl (the "Page link" column) is the web page for a tool, version or descriptor
row. On Dockstore that is the dockstore.org tool/workflow page, because url there is the
TRS API JSON. On WorkflowHub it is the workflow page the registry sends. For other
registries it is empty unless the registry itself sends a web address.
Tools add versionsCount, descriptorTypes, has_checker, checker_url.
Versions add toolId, versionId, versionName, authors, imageCount,
containerfile, is_production, verified.
Descriptors add descriptorType, descriptorContent, descriptorUrl,
descriptorContentLength.
How it handles the tricky bits
- Pagination is followed the way each registry advertises it (via the
next_pageresponse header), so it works whether a host counts pages or rows — and every tool is de-duplicated so overlaps never double-emit. - Tool IDs that contain slashes (e.g.
quay.io/org/tool) are URL-encoded correctly for every sub-request. - Descriptor languages are read from each version, never assumed — a Galaxy workflow returns its Galaxy descriptor, a CWL tool returns CWL.
- Honest results only. A registry that errors or times out is skipped with a warning and the run continues; if no source returns anything the run fails loudly instead of emitting an empty success.
Pricing
Pay-per-event: you are charged per tool / row returned. No subscription, no platform-usage surprises — you pay only for the records you actually get, with volume discounts at higher usage tiers.
Your max run charge is respected. Set a maximum charge per run and the Actor delivers only as many rows as that budget pays for, then stops before making any further request to the registry. Every row in the dataset is exactly one charged row — no unpaid extras, and no double charges if the run restarts. A max charge below the price of one row returns 0 rows and costs nothing. If one registry fails after rows were delivered, you keep (and pay only for) those rows and the run is marked as a partial result. Descriptor files are returned as text only; nothing is ever executed.
Auth
The public registries need no authentication. For a private or auth-gated TRS
endpoint, supply a bearerToken (sent as Authorization: Bearer …, never logged)
or arbitrary extraHeaders.