Forge Tools uniprot_protein

uniprot_protein read

scidex.forge.uniprot_protein

Fetch detailed protein annotations from UniProt for a given accession or gene symbol. Returns protein function, sequence length, domain architecture, subcellular locations, GO terms, and disease associations. Gold-standard curated protein database (Swiss-Prot reviewed entries). Free REST API — no auth required.

HTTP: POST /api/scidex/forge/uniprot_protein

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.uniprot_protein``.",
  "properties": {
    "uniprot_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "UniProt accession (e.g. ``P02649`` for human APOE). Takes precedence over ``gene_symbol`` when both are provided.",
      "title": "Uniprot Id"
    },
    "gene_symbol": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Gene symbol to resolve to a UniProt accession (e.g. ``APOE``). Requires ``organism`` to disambiguate when not human. Ignored when ``uniprot_id`` is provided.",
      "title": "Gene Symbol"
    },
    "organism": {
      "default": "Homo sapiens",
      "description": "Organism name for gene-symbol resolution (default ``Homo sapiens``). Common values: ``Mus musculus``, ``Rattus norvegicus``, ``Danio rerio``. Has no effect when ``uniprot_id`` is supplied.",
      "title": "Organism",
      "type": "string"
    }
  },
  "title": "ForgeUniProtIn",
  "type": "object"
}
Output schema
{
  "$defs": {
    "UniProtDomain": {
      "description": "One domain feature from the UniProt feature table.",
      "properties": {
        "name": {
          "description": "Domain name (e.g. 'Receptor binding').",
          "title": "Name",
          "type": "string"
        },
        "start": {
          "description": "1-based start residue position.",
          "title": "Start",
          "type": "integer"
        },
        "end": {
          "description": "1-based end residue position.",
          "title": "End",
          "type": "integer"
        }
      },
      "required": [
        "name",
        "start",
        "end"
      ],
      "title": "UniProtDomain",
      "type": "object"
    }
  },
  "description": "Response shape for ``scidex.forge.uniprot_protein``.",
  "properties": {
    "uniprot_id": {
      "description": "Primary UniProt accession (e.g. ``P02649``).",
      "title": "Uniprot Id",
      "type": "string"
    },
    "gene_symbol": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Canonical gene symbol per UniProt.",
      "title": "Gene Symbol"
    },
    "protein_name": {
      "description": "Recommended protein full name.",
      "title": "Protein Name",
      "type": "string"
    },
    "organism": {
      "description": "Organism scientific name.",
      "title": "Organism",
      "type": "string"
    },
    "length": {
      "description": "Canonical sequence length in residues.",
      "title": "Length",
      "type": "integer"
    },
    "function": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Curated function description from UniProt FUNCTION comment. ``None`` when absent (rare for Swiss-Prot entries).",
      "title": "Function"
    },
    "subcellular_locations": {
      "description": "Subcellular compartment names (e.g. ``['Secreted', 'Nucleus']``).",
      "items": {
        "type": "string"
      },
      "title": "Subcellular Locations",
      "type": "array"
    },
    "domains": {
      "description": "Domain features with name and 1-based start/end positions.",
      "items": {
        "$ref": "#/$defs/UniProtDomain"
      },
      "title": "Domains",
      "type": "array"
    },
    "go_terms": {
      "description": "GO annotations as ``'GO:XXXXXXX term-name'`` strings (e.g. ``'GO:0005829 cytosol'``). Aspect prefix stripped.",
      "items": {
        "type": "string"
      },
      "title": "Go Terms",
      "type": "array"
    },
    "disease_associations": {
      "description": "Disease names from UniProt DISEASE comments (e.g. ``'Alzheimer disease'``).",
      "items": {
        "type": "string"
      },
      "title": "Disease Associations",
      "type": "array"
    }
  },
  "required": [
    "uniprot_id",
    "protein_name",
    "organism",
    "length"
  ],
  "title": "ForgeUniProtOut",
  "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/uniprot_protein' \
  -H 'authorization: Bearer $SCIDEX_JWT' \
  -H 'content-type: application/json' \
  -d '{}'

Discussion

Posting anonymously. Sign in for attribution.

No comments yet — be the first.