Forge Tools chembl_compound

chembl_compound read

scidex.forge.chembl_compound

Search ChEMBL (2.4M+ bioactive molecules) by compound name, ChEMBL ID, or target gene/protein. Returns molecule type, clinical phase (0-4), associated targets, and bioactivity measurements (IC50/Ki/EC50). Free REST API — no auth required.

HTTP: POST /api/scidex/forge/chembl_compound

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.chembl_compound``.",
  "properties": {
    "compound_name": {
      "anyOf": [
        {
          "maxLength": 200,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Compound name — generic or brand (``aspirin``, ``semaglutide``). Case-insensitive; matched against ChEMBL preferred names.",
      "title": "Compound Name"
    },
    "chembl_id": {
      "anyOf": [
        {
          "maxLength": 20,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "ChEMBL identifier (``CHEMBL25`` for aspirin). When supplied, the name-search round-trip is skipped and activities are included.",
      "title": "Chembl Id"
    },
    "target_gene": {
      "anyOf": [
        {
          "maxLength": 100,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Target gene or protein name (``EGFR``, ``Cyclooxygenase-1``). Returns compounds with measured activities against that target.",
      "title": "Target Gene"
    },
    "max_phase": {
      "anyOf": [
        {
          "maximum": 4,
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Filter to compounds at or above this clinical phase (0-4).",
      "title": "Max Phase"
    },
    "limit": {
      "default": 20,
      "description": "Maximum number of compounds to return.",
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "ForgeChEMBLIn",
  "type": "object"
}
Output schema
{
  "$defs": {
    "ChEMBLActivityItem": {
      "description": "One bioactivity measurement, flattened for the verb surface.",
      "properties": {
        "standard_type": {
          "description": "IC50 / Ki / EC50.",
          "title": "Standard Type",
          "type": "string"
        },
        "standard_value": {
          "description": "Measured value as string.",
          "title": "Standard Value",
          "type": "string"
        },
        "standard_units": {
          "default": "",
          "description": "Units (nM, uM, %).",
          "title": "Standard Units",
          "type": "string"
        },
        "target_chembl_id": {
          "default": "",
          "title": "Target Chembl Id",
          "type": "string"
        },
        "target_name": {
          "default": "",
          "title": "Target Name",
          "type": "string"
        }
      },
      "required": [
        "standard_type",
        "standard_value"
      ],
      "title": "ChEMBLActivityItem",
      "type": "object"
    },
    "ChEMBLCompoundItem": {
      "description": "One ChEMBL compound record, flattened for the verb surface.",
      "properties": {
        "chembl_id": {
          "title": "Chembl Id",
          "type": "string"
        },
        "name": {
          "default": "",
          "description": "Preferred name.",
          "title": "Name",
          "type": "string"
        },
        "molecule_type": {
          "default": "",
          "description": "Small molecule / Protein / etc.",
          "title": "Molecule Type",
          "type": "string"
        },
        "max_phase": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Highest clinical trial phase (0=preclinical, 4=approved). None=unknown.",
          "title": "Max Phase"
        },
        "targets": {
          "description": "Target names extracted from activity records.",
          "items": {
            "type": "string"
          },
          "title": "Targets",
          "type": "array"
        },
        "activities": {
          "description": "IC50/Ki/EC50 bioactivity records.",
          "items": {
            "$ref": "#/$defs/ChEMBLActivityItem"
          },
          "title": "Activities",
          "type": "array"
        }
      },
      "required": [
        "chembl_id"
      ],
      "title": "ChEMBLCompoundItem",
      "type": "object"
    }
  },
  "description": "Response shape for ``scidex.forge.chembl_compound``.",
  "properties": {
    "compounds": {
      "items": {
        "$ref": "#/$defs/ChEMBLCompoundItem"
      },
      "title": "Compounds",
      "type": "array"
    },
    "total": {
      "default": 0,
      "description": "Total matches reported by ChEMBL.",
      "title": "Total",
      "type": "integer"
    },
    "returned": {
      "description": "Length of ``compounds``.",
      "title": "Returned",
      "type": "integer"
    },
    "took_ms": {
      "description": "Wall-clock time for the upstream calls.",
      "title": "Took Ms",
      "type": "integer"
    }
  },
  "required": [
    "returned",
    "took_ms"
  ],
  "title": "ForgeChEMBLOut",
  "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/chembl_compound' \
  -H 'authorization: Bearer $SCIDEX_JWT' \
  -H 'content-type: application/json' \
  -d '{}'

Discussion

Posting anonymously. Sign in for attribution.

No comments yet — be the first.