Forge Tools pgs_catalog

pgs_catalog read

scidex.forge.pgs_catalog

Query the PGS Catalog for polygenic scores by trait (EFO ID or name) or by PGS score ID. Returns PGS identifiers, score names, trait associations, genome builds, variant counts, sample sizes, and publication details. REST API: https://www.pgscatalog.org/rest — public, no auth.

HTTP: POST /api/scidex/forge/pgs_catalog

Invoke

Calls scidex.tool.invoke on the substrate with this tool name. Edit the JSON below — it must match the input schema. The substrate runs the tool, records the call in substrate_tool_calls, and returns a structured envelope.

Sign in to invoke this tool. Schema and curl snippet are visible to anyone.

Schemas

Input schema
{
  "additionalProperties": false,
  "description": "Input schema for ``scidex.forge.pgs_catalog``.",
  "properties": {
    "trait_efo": {
      "anyOf": [
        {
          "maxLength": 100,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "EFO trait ID (e.g. ``EFO_0000001``) or free-text trait name (e.g. ``'Alzheimer disease'``). Mutually exclusive with ``pgs_id``.",
      "title": "Trait Efo"
    },
    "pgs_id": {
      "anyOf": [
        {
          "maxLength": 20,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "PGS score identifier (e.g. ``PGS000001``). Mutually exclusive with ``trait_efo``.",
      "title": "Pgs Id"
    },
    "limit": {
      "default": 20,
      "description": "Maximum number of score records to return.",
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "ForgePGSCatalogIn",
  "type": "object"
}
Output schema
{
  "$defs": {
    "PolygenicScore": {
      "description": "One polygenic score record from the PGS Catalog.",
      "properties": {
        "pgs_id": {
          "description": "PGS Catalog score identifier (e.g. ``PGS000001``).",
          "title": "Pgs Id",
          "type": "string"
        },
        "pgs_name": {
          "default": "",
          "description": "PGS score display name.",
          "title": "Pgs Name",
          "type": "string"
        },
        "trait_reported": {
          "default": "",
          "description": "Reported trait/m phenotype name.",
          "title": "Trait Reported",
          "type": "string"
        },
        "trait_efo": {
          "description": "EFO ontology term IDs associated with this score.",
          "items": {
            "type": "string"
          },
          "title": "Trait Efo",
          "type": "array"
        },
        "publication_first_author": {
          "default": "",
          "description": "First author of the primary publication.",
          "title": "Publication First Author",
          "type": "string"
        },
        "publication_date": {
          "default": "",
          "description": "Publication date (YYYY-MM-DD).",
          "title": "Publication Date",
          "type": "string"
        },
        "pubmed_id": {
          "default": "",
          "description": "PubMed ID of the primary publication.",
          "title": "Pubmed Id",
          "type": "string"
        },
        "journal": {
          "default": "",
          "description": "Journal of the primary publication.",
          "title": "Journal",
          "type": "string"
        },
        "genome_build": {
          "default": "",
          "description": "Genome build (e.g. ``GRCh37`` or ``GRCh38``).",
          "title": "Genome Build",
          "type": "string"
        },
        "variant_count": {
          "default": 0,
          "description": "Number of variants included in the score.",
          "title": "Variant Count",
          "type": "integer"
        },
        "sample_size": {
          "default": 0,
          "description": "Total sample size for score development/validation.",
          "title": "Sample Size",
          "type": "integer"
        },
        "scoring_file_available": {
          "default": false,
          "description": "Whether a scoring file (.txt.gz) is available for download.",
          "title": "Scoring File Available",
          "type": "boolean"
        },
        "efo_url": {
          "default": "",
          "description": "PGS Catalog EFO trait page URL.",
          "title": "Efo Url",
          "type": "string"
        },
        "pgs_url": {
          "default": "",
          "description": "PGS Catalog score page URL.",
          "title": "Pgs Url",
          "type": "string"
        }
      },
      "required": [
        "pgs_id"
      ],
      "title": "PolygenicScore",
      "type": "object"
    }
  },
  "description": "Response shape for ``scidex.forge.pgs_catalog``.",
  "properties": {
    "query": {
      "description": "The original query string used.",
      "title": "Query",
      "type": "string"
    },
    "scores": {
      "items": {
        "$ref": "#/$defs/PolygenicScore"
      },
      "title": "Scores",
      "type": "array"
    },
    "not_found": {
      "default": false,
      "description": "True when the upstream returned 404 or no results.",
      "title": "Not Found",
      "type": "boolean"
    },
    "source": {
      "default": "pgs_catalog",
      "description": "Source database identifier.",
      "title": "Source",
      "type": "string"
    },
    "total_found": {
      "default": 0,
      "description": "Total number of scores found before limit.",
      "title": "Total Found",
      "type": "integer"
    },
    "took_ms": {
      "default": 0,
      "description": "Wall-clock time for upstream call.",
      "title": "Took Ms",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "ForgePGSCatalogOut",
  "type": "object"
}

curl snippet

Replace $SCIDEX_JWT with a valid bearer token. Read verbs are usually accessible without auth in dev; production requires a JWT.

curl -sS -X POST '/api/scidex/forge/pgs_catalog' \
  -H 'authorization: Bearer $SCIDEX_JWT' \
  -H 'content-type: application/json' \
  -d '{}'

Discussion

Posting anonymously. Sign in for attribution.

No comments yet — be the first.