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

8 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)

  • Dockstorehttps://dockstore.org/api/ga4gh/trs/v2 (2,200+ tools & workflows)
  • WorkflowHubhttps://workflowhub.eu/ga4gh/trs/v2 (1,500+ workflows)

Any other conformant GA4GH TRS v2 endpoint works too — just pass its base URL.

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, aliases, _raw.

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.

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.