Forge Tools ucsc_genome

ucsc_genome read

scidex.forge.ucsc_genome

Query the UCSC Genome Browser REST API (api.genome.ucsc.edu) for gene annotations, conservation scores, and regulatory element tracks. Supports gene symbol lookup (TP53, BRCA1) or direct coordinate-based queries. Returns annotation records from any UCSC track: knownGene (GENCODE transcripts), refGene (RefSeq), cpgIslandExt (CpG islands), phyloP conservation, and more. Supports multiple genome assemblies (hg38, hg19, mm39). Fills the gap vs. ensembl_regulatory and encode_epigenomics by providing UCSC-specific track data including PhyloP conservation, CpG islands, and UCSC curated gene models. Free public data, no authentication required.

HTTP: POST /api/scidex/forge/ucsc_genome

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.ucsc_genome``.",
  "properties": {
    "gene": {
      "default": "",
      "description": "HGNC gene symbol to look up (e.g. 'TP53', 'BRCA1'). The UCSC search API resolves the symbol to genomic coordinates, then the track data is fetched for that region. Supply ``gene`` OR ``chrom``/``start``/``end``.",
      "title": "Gene",
      "type": "string"
    },
    "chrom": {
      "default": "",
      "description": "Chromosome for coordinate-based lookup (e.g. 'chr17'). Must be supplied together with ``start`` and ``end``.",
      "title": "Chrom",
      "type": "string"
    },
    "start": {
      "default": 0,
      "description": "0-based start coordinate for coordinate-based lookup.",
      "minimum": 0,
      "title": "Start",
      "type": "integer"
    },
    "end": {
      "default": 0,
      "description": "End coordinate (exclusive) for coordinate-based lookup.",
      "minimum": 0,
      "title": "End",
      "type": "integer"
    },
    "genome": {
      "default": "hg38",
      "description": "UCSC genome assembly name (e.g. 'hg38', 'hg19', 'mm39'). Default 'hg38'.",
      "title": "Genome",
      "type": "string"
    },
    "track": {
      "default": "knownGene",
      "description": "UCSC track name to query (e.g. 'knownGene', 'refGene', 'cpgIslandExt'). Default 'knownGene' (GENCODE v41 transcript models for hg38).",
      "title": "Track",
      "type": "string"
    }
  },
  "title": "ForgeUcscGenomeIn",
  "type": "object"
}
Output schema
{
  "$defs": {
    "UcscAnnotation": {
      "description": "One UCSC Genome Browser annotation record.",
      "properties": {
        "name": {
          "description": "Annotation name (transcript ID, gene symbol, or feature name).",
          "title": "Name",
          "type": "string"
        },
        "chrom": {
          "description": "Chromosome (e.g. 'chr17').",
          "title": "Chrom",
          "type": "string"
        },
        "start": {
          "description": "0-based start coordinate (BED/UCSC convention).",
          "title": "Start",
          "type": "integer"
        },
        "end": {
          "description": "End coordinate (exclusive, BED/UCSC convention).",
          "title": "End",
          "type": "integer"
        },
        "strand": {
          "default": ".",
          "description": "Strand: '+', '-', or '.' for unstranded features.",
          "title": "Strand",
          "type": "string"
        },
        "score": {
          "default": 0,
          "description": "UCSC BED score field (0–1000). Interpretation varies by track.",
          "title": "Score",
          "type": "integer"
        },
        "exon_count": {
          "default": 0,
          "description": "Number of exons (for gene/transcript tracks). 0 for non-gene tracks.",
          "minimum": 0,
          "title": "Exon Count",
          "type": "integer"
        }
      },
      "required": [
        "name",
        "chrom",
        "start",
        "end"
      ],
      "title": "UcscAnnotation",
      "type": "object"
    }
  },
  "description": "Response shape for ``scidex.forge.ucsc_genome``.",
  "properties": {
    "query": {
      "description": "The gene symbol or coordinate range that was queried.",
      "title": "Query",
      "type": "string"
    },
    "genome": {
      "description": "UCSC genome assembly used (e.g. 'hg38').",
      "title": "Genome",
      "type": "string"
    },
    "track": {
      "description": "UCSC track name queried (e.g. 'knownGene').",
      "title": "Track",
      "type": "string"
    },
    "annotations": {
      "description": "Annotation records returned from the UCSC track for the queried region. Sorted by start coordinate ascending.",
      "items": {
        "$ref": "#/$defs/UcscAnnotation"
      },
      "title": "Annotations",
      "type": "array"
    },
    "not_found": {
      "default": false,
      "description": "True when no annotations were found for the given query.",
      "title": "Not Found",
      "type": "boolean"
    }
  },
  "required": [
    "query",
    "genome",
    "track"
  ],
  "title": "ForgeUcscGenomeOut",
  "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/ucsc_genome' \
  -H 'authorization: Bearer $SCIDEX_JWT' \
  -H 'content-type: application/json' \
  -d '{}'

Discussion

Posting anonymously. Sign in for attribution.

No comments yet — be the first.