GA4GH TRS Tool Registry Extractor avatar

GA4GH TRS Tool Registry Extractor

Pricing

from $0.35 / 1,000 tool rows

Go to Apify Store
GA4GH TRS Tool Registry Extractor

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

Datamule

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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:

ModeReturns
toolsOne row per tool / workflow (paginated, filterable by name, class, organization, registry, author, checker).
toolClassesThe registry's tool-class taxonomy (CommandLineTool, Workflow, Notebook, Service…).
service-infoThe registry's identity, TRS spec version and software version.
tool-versionsOne row per version of each tool (all tools, or a given toolId list).
tool-descriptorThe 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_page response 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.