Forge Tools gtex_expression

gtex_expression read

scidex.forge.gtex_expression

Look up GTEx v8 median expression (TPM) for a gene across the 54 human tissues GTEx samples — including 13 brain regions. Pairs with allen_brain_expression: GTEx gives human RNA-seq TPM by tissue; ABA gives mouse ISH energy by brain substructure. Returns tissues ordered by median TPM descending, optionally filtered to a tissue-name substring.

HTTP: POST /api/scidex/forge/gtex_expression

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.gtex_expression``.",
  "properties": {
    "gene_symbol": {
      "description": "HGNC gene symbol (e.g. ``BDNF``, ``APOE``, ``MAPT``). GTEx is case-insensitive on lookup but human-canonical uppercase casing matches the data.",
      "maxLength": 30,
      "minLength": 1,
      "title": "Gene Symbol",
      "type": "string"
    },
    "tissue_filter": {
      "default": "",
      "description": "Optional substring filter applied client-side against the GTEx ``tissueSiteDetailId`` (e.g. ``Brain`` returns the 13 brain regions; ``Heart`` returns the 2 heart subsites). Empty string returns every tissue.",
      "maxLength": 30,
      "title": "Tissue Filter",
      "type": "string"
    },
    "limit": {
      "default": 100,
      "description": "Maximum number of tissue rows to return after the filter. GTEx v8 has 54 tissues total; the default of 100 returns every tissue.",
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "dataset_id": {
      "default": "gtex_v8",
      "description": "GTEx data release id. Defaults to ``gtex_v8`` (54 tissues, the current public release). ``gtex_v10`` is available in the API but returns no expression data yet.",
      "maxLength": 12,
      "title": "Dataset Id",
      "type": "string"
    },
    "include_sample_counts": {
      "default": false,
      "description": "If True, fetch the GTEx tissue metadata table to populate ``sample_count`` per tissue. Adds one HTTP round-trip on cache miss; cached for the process lifetime thereafter.",
      "title": "Include Sample Counts",
      "type": "boolean"
    }
  },
  "required": [
    "gene_symbol"
  ],
  "title": "GtexExpressionIn",
  "type": "object"
}
Output schema
{
  "$defs": {
    "TissueExpressionOut": {
      "description": "One tissue's median expression for the queried gene.",
      "properties": {
        "tissue_id": {
          "description": "GTEx ``tissueSiteDetailId`` — snake_case stable id (e.g. ``Brain_Cortex``, ``Adipose_Subcutaneous``).",
          "title": "Tissue Id",
          "type": "string"
        },
        "tissue_name": {
          "default": "",
          "description": "Human-readable tissue label from the GTEx tissue metadata endpoint (e.g. ``Brain - Cortex``). Falls back to ``tissue_id`` when metadata wasn't fetched.",
          "title": "Tissue Name",
          "type": "string"
        },
        "median_tpm": {
          "default": 0,
          "description": "Median expression in transcripts per million (TPM). Comparable across tissues for the same gene.",
          "title": "Median Tpm",
          "type": "number"
        },
        "sample_count": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Number of RNA-seq samples in this tissue, from the GTEx tissue metadata. ``None`` if ``include_sample_counts`` was False.",
          "title": "Sample Count"
        },
        "ontology_id": {
          "default": "",
          "description": "UBERON ontology id (e.g. ``UBERON:0001876``). Useful for cross-referencing with ontology-keyed downstream tools.",
          "title": "Ontology Id",
          "type": "string"
        }
      },
      "required": [
        "tissue_id"
      ],
      "title": "TissueExpressionOut",
      "type": "object"
    }
  },
  "description": "Response shape for ``scidex.forge.gtex_expression``.",
  "properties": {
    "gene_symbol": {
      "description": "Echo of the queried gene symbol.",
      "title": "Gene Symbol",
      "type": "string"
    },
    "ensembl_gene_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "GENCODE id GTEx resolved the symbol to (e.g. ``ENSG00000176697.18``). ``None`` when the gene didn't resolve.",
      "title": "Ensembl Gene Id"
    },
    "dataset_id": {
      "default": "gtex_v8",
      "description": "GTEx release id the rows came from.",
      "title": "Dataset Id",
      "type": "string"
    },
    "returned": {
      "description": "Length of ``results``.",
      "title": "Returned",
      "type": "integer"
    },
    "results": {
      "items": {
        "$ref": "#/$defs/TissueExpressionOut"
      },
      "title": "Results",
      "type": "array"
    },
    "took_ms": {
      "description": "Wall-clock time for the upstream calls.",
      "title": "Took Ms",
      "type": "integer"
    }
  },
  "required": [
    "gene_symbol",
    "returned",
    "took_ms"
  ],
  "title": "GtexExpressionOut",
  "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/gtex_expression' \
  -H 'authorization: Bearer $SCIDEX_JWT' \
  -H 'content-type: application/json' \
  -d '{
  "gene_symbol": ""
}'

Discussion

Posting anonymously. Sign in for attribution.

No comments yet — be the first.