Forge Tools array_express

array_express read

scidex.forge.array_express

Search EBI BioStudies/ArrayExpress for functional genomics studies: microarray, RNA-seq, ChIP-seq, methylation, and other -omics experiments. ArrayExpress is the EBI counterpart to NCBI GEO, hosting 100K+ studies — many unique to EBI. Fills the gap between forge_geo_expression (NCBI GEO samples) and forge_sra_run (NCBI SRA sequences): this verb targets EBI BioStudies, the canonical source for ArrayExpress accessions (E-MTAB-*, E-GEOD-*, E-MEXP-*). Inputs: query (free text), optional organism filter, optional technology filter, limit. Returns typed study records with accession, title, organism, technology, sample count, release date, and a direct URL to the EBI BioStudies study page. Free public data, no authentication required.

HTTP: POST /api/scidex/forge/array_express

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.array_express``.",
  "properties": {
    "query": {
      "description": "Free-text search query for ArrayExpress/BioStudies experiments. Examples: 'breast cancer RNA-seq', 'BRCA1 expression', 'Alzheimer disease transcriptomics', 'SARS-CoV-2 immune response'.",
      "title": "Query",
      "type": "string"
    },
    "organism": {
      "default": "",
      "description": "Filter by organism name (e.g. 'Homo sapiens', 'Mus musculus'). Leave empty to search across all organisms.",
      "title": "Organism",
      "type": "string"
    },
    "technology": {
      "default": "",
      "description": "Filter by experimental technology (e.g. 'RNA-seq', 'microarray', 'ChIP-seq', 'methylation'). Leave empty to search all technologies.",
      "title": "Technology",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "description": "Maximum number of studies to return (1–100). Default 20.",
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "ForgeArrayExpressIn",
  "type": "object"
}
Output schema
{
  "$defs": {
    "ArrayExpressStudy": {
      "description": "One ArrayExpress/BioStudies study record.",
      "properties": {
        "accession": {
          "description": "Study accession identifier. Typically prefixed with 'E-' (e.g. 'E-MTAB-1234', 'E-GEOD-5678') for ArrayExpress studies or 'S-' for other BioStudies entries.",
          "title": "Accession",
          "type": "string"
        },
        "title": {
          "description": "Title of the study.",
          "title": "Title",
          "type": "string"
        },
        "study_type": {
          "default": "",
          "description": "Type/category of the study (e.g. 'RNA-seq of coding RNA', 'ChIP-seq').",
          "title": "Study Type",
          "type": "string"
        },
        "organism": {
          "default": "",
          "description": "Organism(s) studied (e.g. 'Homo sapiens', 'Mus musculus').",
          "title": "Organism",
          "type": "string"
        },
        "technology": {
          "default": "",
          "description": "Experimental technology platform (e.g. 'RNA-seq', 'microarray', 'ChIP-seq').",
          "title": "Technology",
          "type": "string"
        },
        "sample_count": {
          "default": 0,
          "description": "Number of biological samples in the study.",
          "title": "Sample Count",
          "type": "integer"
        },
        "release_date": {
          "default": "",
          "description": "Public release date of the study (ISO 8601 format, e.g. '2021-03-15').",
          "title": "Release Date",
          "type": "string"
        },
        "data_url": {
          "description": "URL to the study page in the EBI BioStudies portal.",
          "title": "Data Url",
          "type": "string"
        }
      },
      "required": [
        "accession",
        "title",
        "data_url"
      ],
      "title": "ArrayExpressStudy",
      "type": "object"
    }
  },
  "description": "Response shape for ``scidex.forge.array_express``.",
  "properties": {
    "query": {
      "description": "The search query that was used.",
      "title": "Query",
      "type": "string"
    },
    "organism": {
      "description": "Organism filter applied (empty if none).",
      "title": "Organism",
      "type": "string"
    },
    "technology": {
      "description": "Technology filter applied (empty if none).",
      "title": "Technology",
      "type": "string"
    },
    "studies": {
      "description": "Matching ArrayExpress/BioStudies study records.",
      "items": {
        "$ref": "#/$defs/ArrayExpressStudy"
      },
      "title": "Studies",
      "type": "array"
    },
    "total_count": {
      "default": 0,
      "description": "Total number of matching studies reported by the EBI BioStudies API.",
      "title": "Total Count",
      "type": "integer"
    },
    "not_found": {
      "default": false,
      "description": "True when no studies were found for the given query.",
      "title": "Not Found",
      "type": "boolean"
    }
  },
  "required": [
    "query",
    "organism",
    "technology"
  ],
  "title": "ForgeArrayExpressOut",
  "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/array_express' \
  -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.