Forge Tools bindingdb_affinity

bindingdb_affinity read

scidex.forge.bindingdb_affinity

Query BindingDB for experimentally measured protein-ligand binding affinities (Kd, Ki, IC50, EC50) by UniProt accession ID. Covers EGFR, kinases, GPCRs, proteases, and thousands of other therapeutic targets. Each record includes compound name, PubChem CID, affinity value in nM, curation/assay source, and supporting PubMed ID. Fills the quantitative pharmacology gap: unlike DGIdb/DrugCentral/PharmGKB, BindingDB provides actual measured binding constants for potency ranking and target-selectivity analysis. API: https://www.bindingdb.org/bind — free, no authentication required.

HTTP: POST /api/scidex/forge/bindingdb_affinity

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.bindingdb_affinity``.",
  "properties": {
    "uniprot_id": {
      "description": "UniProt accession ID of the target protein (e.g. 'P00533' for EGFR, 'P00519' for ABL1). Case-insensitive.",
      "title": "Uniprot Id",
      "type": "string"
    },
    "affinity_type": {
      "anyOf": [
        {
          "enum": [
            "Kd",
            "Ki",
            "IC50",
            "EC50"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional filter by measurement type: 'Kd', 'Ki', 'IC50', or 'EC50'. None returns all types.",
      "title": "Affinity Type"
    },
    "limit": {
      "default": 10,
      "description": "Maximum number of affinity records to return.",
      "maximum": 500,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "uniprot_id"
  ],
  "title": "ForgeBindingDBAffinityIn",
  "type": "object"
}
Output schema
{
  "$defs": {
    "BindingDBAffinityRecord": {
      "description": "One experimentally measured binding affinity record from BindingDB.",
      "properties": {
        "compound_name": {
          "description": "Name of the compound/ligand.",
          "title": "Compound Name",
          "type": "string"
        },
        "pubchem_cid": {
          "default": "",
          "description": "PubChem Compound ID.",
          "title": "Pubchem Cid",
          "type": "string"
        },
        "affinity_type": {
          "description": "Measurement type: Kd, Ki, IC50, or EC50.",
          "title": "Affinity Type",
          "type": "string"
        },
        "affinity_value": {
          "description": "Affinity value in nanomolar (nM).",
          "title": "Affinity Value",
          "type": "number"
        },
        "affinity_unit": {
          "default": "nM",
          "description": "Unit of the affinity value (always nM).",
          "title": "Affinity Unit",
          "type": "string"
        },
        "assay_type": {
          "default": "",
          "description": "Curation source / assay description (e.g. 'ChEMBL', 'Literature curated').",
          "title": "Assay Type",
          "type": "string"
        },
        "pmid": {
          "default": "",
          "description": "First PubMed ID supporting this measurement.",
          "title": "Pmid",
          "type": "string"
        }
      },
      "required": [
        "compound_name",
        "affinity_type",
        "affinity_value"
      ],
      "title": "BindingDBAffinityRecord",
      "type": "object"
    }
  },
  "description": "Response shape for ``scidex.forge.bindingdb_affinity``.",
  "properties": {
    "uniprot_id": {
      "description": "The UniProt ID that was queried.",
      "title": "Uniprot Id",
      "type": "string"
    },
    "target_name": {
      "default": "",
      "description": "Target protein name from BindingDB.",
      "title": "Target Name",
      "type": "string"
    },
    "affinities": {
      "description": "Binding affinity records (limited to `limit`).",
      "items": {
        "$ref": "#/$defs/BindingDBAffinityRecord"
      },
      "title": "Affinities",
      "type": "array"
    },
    "total_found": {
      "description": "Total records found before limit was applied.",
      "title": "Total Found",
      "type": "integer"
    },
    "source": {
      "default": "BindingDB",
      "description": "Data source identifier.",
      "title": "Source",
      "type": "string"
    },
    "not_found": {
      "default": false,
      "description": "True when the UniProt ID has no binding data in BindingDB (unknown target or empty affinity table).",
      "title": "Not Found",
      "type": "boolean"
    }
  },
  "required": [
    "uniprot_id",
    "total_found"
  ],
  "title": "ForgeBindingDBAffinityOut",
  "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/bindingdb_affinity' \
  -H 'authorization: Bearer $SCIDEX_JWT' \
  -H 'content-type: application/json' \
  -d '{
  "uniprot_id": ""
}'

Discussion

Posting anonymously. Sign in for attribution.

No comments yet — be the first.