Forge Tools nci_thesaurus

nci_thesaurus read

scidex.forge.nci_thesaurus

Query the NCI Thesaurus (NCIt, ncim.nci.nih.gov) for cancer-domain controlled vocabulary terms, concept hierarchies, synonyms, and cross-references. NCIt is the authoritative cancer ontology used by the FDA, NCI, and clinical trial registries — distinct from Disease Ontology (DOID) and Mondo which are broader disease ontologies. Returns concept code, preferred name, synonyms (list), definition, semantic type, parent codes (list), child codes (list), and cross-references (MeSH, SNOMED, ICD-O, UMLS CUI). Query types: 'search' (default, free-text), 'code' (exact NCI code), 'concept' (full-text concept search). API: https://api-evsrest.nci.nih.gov/api/v1 — free, no auth required.

HTTP: POST /api/scidex/forge/nci_thesaurus

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.nci_thesaurus``.",
  "properties": {
    "query": {
      "description": "Query term — concept name (search mode, default), NCI concept code (code mode, e.g. 'C4872'), or concept string (concept mode).",
      "maxLength": 200,
      "title": "Query",
      "type": "string"
    },
    "query_type": {
      "default": "search",
      "description": "How to interpret ``query``.  ``'search'``  — free-text match on term name (default); ``'code'``   — exact match on NCI concept code; ``'concept'`` — full-text concept search.",
      "title": "Query Type",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "description": "Maximum number of concepts to return (default 20, max 100).",
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "ForgeNCIThesaurusIn",
  "type": "object"
}
Output schema
{
  "$defs": {
    "NCItConcept": {
      "description": "One NCI Thesaurus concept record.",
      "properties": {
        "code": {
          "description": "NCI Thesaurus concept code (e.g. 'C4872').",
          "title": "Code",
          "type": "string"
        },
        "preferred_name": {
          "description": "NCI-preferred name for this concept (the canonical label).",
          "title": "Preferred Name",
          "type": "string"
        },
        "synonyms": {
          "description": "Alternate names and labels for this concept.",
          "items": {
            "type": "string"
          },
          "title": "Synonyms",
          "type": "array"
        },
        "definition": {
          "default": "",
          "description": "NCI-curated definition for this concept.",
          "title": "Definition",
          "type": "string"
        },
        "semantic_type": {
          "default": "",
          "description": "NCI semantic type classification (e.g. 'Neoplastic Process').",
          "title": "Semantic Type",
          "type": "string"
        },
        "parents": {
          "description": "NCI concept codes of parent (broader) concepts.",
          "items": {
            "type": "string"
          },
          "title": "Parents",
          "type": "array"
        },
        "children": {
          "description": "NCI concept codes of child (narrower) concepts.",
          "items": {
            "type": "string"
          },
          "title": "Children",
          "type": "array"
        },
        "cross_references": {
          "additionalProperties": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": "Cross-references to other vocabularies. Keys are vocabulary names (e.g. 'MeSH', 'SNOMED', 'ICD-O', 'UMLS_CUI', 'NCI', 'FDA', 'HCPCS'); values are lists of identifiers in those vocabularies.",
          "title": "Cross References",
          "type": "object"
        }
      },
      "required": [
        "code",
        "preferred_name"
      ],
      "title": "NCItConcept",
      "type": "object"
    }
  },
  "description": "Response shape for ``scidex.forge.nci_thesaurus``.",
  "properties": {
    "concepts": {
      "description": "NCI Thesaurus concept records matching the query.",
      "items": {
        "$ref": "#/$defs/NCItConcept"
      },
      "title": "Concepts",
      "type": "array"
    },
    "not_found": {
      "default": false,
      "description": "True when NCI Thesaurus returned no concepts for the query.",
      "title": "Not Found",
      "type": "boolean"
    },
    "took_ms": {
      "default": 0,
      "description": "Wall-clock time for upstream API calls in milliseconds.",
      "title": "Took Ms",
      "type": "integer"
    }
  },
  "title": "ForgeNCIThesaurusOut",
  "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/nci_thesaurus' \
  -H 'authorization: Bearer $SCIDEX_JWT' \
  -H 'content-type: application/json' \
  -d '{
  "query": ""
}'

Discussion

Posting anonymously. Sign in for attribution.

No comments yet — be the first.