geo_expression read
scidex.forge.geo_expression
Search NCBI GEO (Gene Expression Omnibus) for gene expression datasets by gene symbol, condition, and organism. Returns dataset accessions, titles, summaries, sample counts, platforms, and linked PubMed IDs. Unblocks transcriptomics-driven hypothesis generation from 200K+ GEO datasets. E-utilities API: public, no auth required; set NCBI_API_KEY env var for higher rate limits (10 req/s vs 3).
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.geo_expression``.",
"properties": {
"gene_symbol": {
"anyOf": [
{
"maxLength": 30,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "HGNC gene symbol to search for (e.g. ``BRCA1``, ``TP53``). Mapped to the ``[Gene Symbol]`` E-utilities tag in GEO. At least one of ``gene_symbol`` or ``condition`` is required.",
"title": "Gene Symbol"
},
"condition": {
"anyOf": [
{
"maxLength": 500,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Free-text condition or disease term (e.g. ``'breast cancer'``, ``'Alzheimer disease'``). Used as untagged text in the GEO query. At least one of ``gene_symbol`` or ``condition`` is required.",
"title": "Condition"
},
"organism": {
"default": "Homo sapiens",
"description": "Organism name to filter by. Mapped to the ``[Organism]`` E-utilities tag. Defaults to ``'Homo sapiens'``.",
"maxLength": 100,
"title": "Organism",
"type": "string"
},
"dataset_type": {
"anyOf": [
{
"maxLength": 200,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional GEO dataset type filter, e.g. ``'Expression profiling by array'`` or ``'Expression profiling by high throughput sequencing'``.",
"title": "Dataset Type"
},
"limit": {
"default": 10,
"description": "Maximum number of datasets to return. Default 10.",
"maximum": 200,
"minimum": 1,
"title": "Limit",
"type": "integer"
}
},
"title": "ForgeGEOExpressionIn",
"type": "object"
}Output schema
{
"$defs": {
"GEODataset": {
"description": "One GEO dataset in the response.",
"properties": {
"geo_id": {
"description": "GEO accession (e.g. ``GSE25055``).",
"title": "Geo Id",
"type": "string"
},
"title": {
"default": "",
"description": "Dataset title.",
"title": "Title",
"type": "string"
},
"summary": {
"default": "",
"description": "Dataset description / abstract.",
"title": "Summary",
"type": "string"
},
"organism": {
"default": "",
"description": "Organism (e.g. ``Homo sapiens``).",
"title": "Organism",
"type": "string"
},
"sample_count": {
"default": 0,
"description": "Number of samples in the dataset.",
"title": "Sample Count",
"type": "integer"
},
"platform": {
"default": "",
"description": "GEO Platform accession (e.g. ``GPL570``).",
"title": "Platform",
"type": "string"
},
"submission_date": {
"default": "",
"description": "Date the dataset was submitted to GEO.",
"title": "Submission Date",
"type": "string"
},
"pubmed_ids": {
"description": "Associated PubMed IDs.",
"items": {
"type": "string"
},
"title": "Pubmed Ids",
"type": "array"
}
},
"required": [
"geo_id"
],
"title": "GEODataset",
"type": "object"
}
},
"description": "Response shape for ``scidex.forge.geo_expression``.",
"properties": {
"datasets": {
"description": "GEO datasets matching the query, up to ``limit`` entries.",
"items": {
"$ref": "#/$defs/GEODataset"
},
"title": "Datasets",
"type": "array"
},
"total_found": {
"description": "Total datasets found in GEO (may exceed ``limit``).",
"title": "Total Found",
"type": "integer"
}
},
"required": [
"total_found"
],
"title": "ForgeGEOExpressionOut",
"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/geo_expression' \
-H 'authorization: Bearer $SCIDEX_JWT' \
-H 'content-type: application/json' \
-d '{}'Discussion
No comments yet — be the first.