Forge Tools repurposing_hub

repurposing_hub read

scidex.forge.repurposing_hub

Query the Broad Institute Drug Repurposing Hub for compound–target annotations, clinical phase, mechanism of action (MOA), and disease area. Covers ~7,000 manually curated compounds: approved drugs, clinical candidates, and tool compounds. Filter by compound name/Broad ID, gene target (exact), MOA substring, minimum clinical phase (0=preclinical, 4=approved only), or disease area substring. Primary data source: public TSV from data.clue.io, fetched once and cached in memory. Set CLUE_API_KEY to query the live CLUE REST API instead for fresher results. Distinct from forge_chembl_compound (broader chemistry) and forge_drugcentral_lookup (pharmacological actions).

HTTP: POST /api/scidex/forge/repurposing_hub

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.repurposing_hub``.",
  "properties": {
    "query": {
      "anyOf": [
        {
          "maxLength": 256,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Compound name or Broad ID (BRD-K...) substring to match. Case-insensitive partial match against compound name and Broad ID. ``None`` = no name filter.",
      "title": "Query"
    },
    "target": {
      "anyOf": [
        {
          "maxLength": 64,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Gene symbol filter (e.g. ``'EGFR'``, ``'ABL1'``). Returns compounds whose target list contains this symbol (case-insensitive exact match). ``None`` = no target filter.",
      "title": "Target"
    },
    "moa": {
      "anyOf": [
        {
          "maxLength": 256,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Mechanism of action substring filter (e.g. ``'kinase inhibitor'``). Case-insensitive partial match against the MOA field. ``None`` = no MOA filter.",
      "title": "Moa"
    },
    "clinical_phase": {
      "anyOf": [
        {
          "maximum": 4,
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum clinical phase filter (0–4). Returns only compounds with clinical_phase ≥ this value. ``None`` = no phase filter. Use ``clinical_phase=4`` to restrict to approved drugs only.",
      "title": "Clinical Phase"
    },
    "disease_area": {
      "anyOf": [
        {
          "maxLength": 256,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Disease area substring filter (e.g. ``'oncology'``, ``'neurology'``). Case-insensitive partial match against disease area entries. ``None`` = no disease area filter.",
      "title": "Disease Area"
    },
    "limit": {
      "default": 20,
      "description": "Maximum number of results to return (default 20, max 500).",
      "maximum": 500,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "ForgeRepurposingHubIn",
  "type": "object"
}
Output schema
{
  "$defs": {
    "RepurposingHubEntry": {
      "description": "One compound entry from the Broad Drug Repurposing Hub.",
      "properties": {
        "broad_id": {
          "description": "Broad Institute compound identifier (e.g. BRD-K12345678-001-01-1).",
          "title": "Broad Id",
          "type": "string"
        },
        "name": {
          "description": "Compound/drug name (pert_iname).",
          "title": "Name",
          "type": "string"
        },
        "clinical_phase": {
          "description": "Highest reported clinical phase: 0=preclinical/tool compound, 1=Phase I, 2=Phase II, 3=Phase III, 4=Approved.",
          "title": "Clinical Phase",
          "type": "integer"
        },
        "moa": {
          "default": "",
          "description": "Mechanism of action (e.g. 'kinase inhibitor', 'HDAC inhibitor', 'GPCR agonist').",
          "title": "Moa",
          "type": "string"
        },
        "target": {
          "description": "Primary gene/protein targets (e.g. ['EGFR', 'ERBB2']).",
          "items": {
            "type": "string"
          },
          "title": "Target",
          "type": "array"
        },
        "disease_area": {
          "description": "Disease areas (e.g. ['oncology', 'hematologic cancer']).",
          "items": {
            "type": "string"
          },
          "title": "Disease Area",
          "type": "array"
        },
        "indication": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Specific disease indication string, or None.",
          "title": "Indication"
        },
        "smiles": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "SMILES string for the compound structure, or None.",
          "title": "Smiles"
        },
        "pubchem_cid": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "PubChem Compound ID, or None.",
          "title": "Pubchem Cid"
        }
      },
      "required": [
        "broad_id",
        "name",
        "clinical_phase"
      ],
      "title": "RepurposingHubEntry",
      "type": "object"
    }
  },
  "description": "Response shape for ``scidex.forge.repurposing_hub``.",
  "properties": {
    "results": {
      "description": "Compound entries matching the query and filters.",
      "items": {
        "$ref": "#/$defs/RepurposingHubEntry"
      },
      "title": "Results",
      "type": "array"
    },
    "total_found": {
      "default": 0,
      "description": "Total number of matches before the limit was applied.",
      "title": "Total Found",
      "type": "integer"
    },
    "not_found": {
      "default": false,
      "description": "True when no compound matched the provided filters. Indicates the query/target/MOA combination returned nothing.",
      "title": "Not Found",
      "type": "boolean"
    },
    "source": {
      "default": "Broad Drug Repurposing Hub (clue.io/repurposing)",
      "description": "Data source identifier.",
      "title": "Source",
      "type": "string"
    },
    "took_ms": {
      "default": 0,
      "description": "Wall-clock time for data fetch and filtering in milliseconds.",
      "title": "Took Ms",
      "type": "integer"
    }
  },
  "title": "ForgeRepurposingHubOut",
  "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/repurposing_hub' \
  -H 'authorization: Bearer $SCIDEX_JWT' \
  -H 'content-type: application/json' \
  -d '{}'

Discussion

Posting anonymously. Sign in for attribution.

No comments yet — be the first.