Forge Tools pdb_hotspot_profile

pdb_hotspot_profile read

scidex.forge.pdb_hotspot_profile

Download a PDB coordinate file and compute an all-atom residue-neighbor profile around requested hotspot residues on one chain. Returns parsed residue/atom counts, missing hotspot residues, hotspot centroids, neighbor distances, candidate interface residues, and explicit limitations. This is a geometry profile, not SASA or docking.

HTTP: POST /api/scidex/forge/pdb_hotspot_profile

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.pdb_hotspot_profile``.",
  "properties": {
    "pdb_id": {
      "description": "Four-character PDB ID. Case-insensitive on input; normalized to upper-case before downloading the coordinate file.",
      "maxLength": 4,
      "minLength": 4,
      "title": "Pdb Id",
      "type": "string"
    },
    "chain_id": {
      "description": "Author chain identifier to profile, e.g. ``A``.",
      "maxLength": 4,
      "minLength": 1,
      "title": "Chain Id",
      "type": "string"
    },
    "hotspot_residues": {
      "description": "Residue sequence numbers on ``chain_id`` to treat as hotspots. Insertion codes are not addressable in this first primitive.",
      "items": {
        "type": "integer"
      },
      "maxItems": 64,
      "minItems": 1,
      "title": "Hotspot Residues",
      "type": "array"
    },
    "neighbor_radius_angstrom": {
      "default": 6,
      "description": "All-atom neighbor cutoff in Angstroms.",
      "maximum": 20,
      "minimum": 2,
      "title": "Neighbor Radius Angstrom",
      "type": "number"
    },
    "include_hetatm": {
      "default": false,
      "description": "Whether to include HETATM residues when parsing neighbors.",
      "title": "Include Hetatm",
      "type": "boolean"
    }
  },
  "required": [
    "pdb_id",
    "chain_id",
    "hotspot_residues"
  ],
  "title": "PdbHotspotProfileIn",
  "type": "object"
}
Output schema
{
  "$defs": {
    "Coordinate3D": {
      "description": "Cartesian coordinate in Angstroms.",
      "properties": {
        "x": {
          "title": "X",
          "type": "number"
        },
        "y": {
          "title": "Y",
          "type": "number"
        },
        "z": {
          "title": "Z",
          "type": "number"
        }
      },
      "required": [
        "x",
        "y",
        "z"
      ],
      "title": "Coordinate3D",
      "type": "object"
    },
    "PdbHotspotResidue": {
      "description": "Requested hotspot residue and local neighbors.",
      "properties": {
        "chain_id": {
          "title": "Chain Id",
          "type": "string"
        },
        "residue_number": {
          "title": "Residue Number",
          "type": "integer"
        },
        "insertion_code": {
          "default": "",
          "title": "Insertion Code",
          "type": "string"
        },
        "residue_name": {
          "title": "Residue Name",
          "type": "string"
        },
        "atom_count": {
          "title": "Atom Count",
          "type": "integer"
        },
        "centroid": {
          "$ref": "#/$defs/Coordinate3D"
        },
        "ca_coordinate": {
          "anyOf": [
            {
              "$ref": "#/$defs/Coordinate3D"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "neighbor_residues": {
          "items": {
            "$ref": "#/$defs/PdbNeighborResidue"
          },
          "title": "Neighbor Residues",
          "type": "array"
        }
      },
      "required": [
        "chain_id",
        "residue_number",
        "residue_name",
        "atom_count",
        "centroid"
      ],
      "title": "PdbHotspotResidue",
      "type": "object"
    },
    "PdbNeighborResidue": {
      "description": "Residue within the requested hotspot radius.",
      "properties": {
        "chain_id": {
          "title": "Chain Id",
          "type": "string"
        },
        "residue_number": {
          "title": "Residue Number",
          "type": "integer"
        },
        "insertion_code": {
          "default": "",
          "title": "Insertion Code",
          "type": "string"
        },
        "residue_name": {
          "title": "Residue Name",
          "type": "string"
        },
        "atom_count": {
          "title": "Atom Count",
          "type": "integer"
        },
        "min_distance_angstrom": {
          "title": "Min Distance Angstrom",
          "type": "number"
        },
        "ca_distance_angstrom": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Ca Distance Angstrom"
        },
        "nearest_hotspot_residue": {
          "title": "Nearest Hotspot Residue",
          "type": "integer"
        }
      },
      "required": [
        "chain_id",
        "residue_number",
        "residue_name",
        "atom_count",
        "min_distance_angstrom",
        "nearest_hotspot_residue"
      ],
      "title": "PdbNeighborResidue",
      "type": "object"
    }
  },
  "description": "Response shape for ``scidex.forge.pdb_hotspot_profile``.",
  "properties": {
    "pdb_id": {
      "title": "Pdb Id",
      "type": "string"
    },
    "chain_id": {
      "title": "Chain Id",
      "type": "string"
    },
    "profile_kind": {
      "default": "geometric_neighbor_profile",
      "title": "Profile Kind",
      "type": "string"
    },
    "coordinate_url": {
      "title": "Coordinate Url",
      "type": "string"
    },
    "model_index": {
      "default": 1,
      "title": "Model Index",
      "type": "integer"
    },
    "residue_count": {
      "title": "Residue Count",
      "type": "integer"
    },
    "atom_count": {
      "title": "Atom Count",
      "type": "integer"
    },
    "hotspot_residue_count": {
      "title": "Hotspot Residue Count",
      "type": "integer"
    },
    "missing_hotspot_residues": {
      "items": {
        "type": "integer"
      },
      "title": "Missing Hotspot Residues",
      "type": "array"
    },
    "hotspot_residues": {
      "items": {
        "$ref": "#/$defs/PdbHotspotResidue"
      },
      "title": "Hotspot Residues",
      "type": "array"
    },
    "candidate_interface_residues": {
      "items": {
        "$ref": "#/$defs/PdbNeighborResidue"
      },
      "title": "Candidate Interface Residues",
      "type": "array"
    },
    "limitations": {
      "items": {
        "type": "string"
      },
      "title": "Limitations",
      "type": "array"
    },
    "took_ms": {
      "description": "Wall-clock time for download + parsing.",
      "title": "Took Ms",
      "type": "integer"
    }
  },
  "required": [
    "pdb_id",
    "chain_id",
    "coordinate_url",
    "residue_count",
    "atom_count",
    "hotspot_residue_count",
    "took_ms"
  ],
  "title": "PdbHotspotProfileOut",
  "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/pdb_hotspot_profile' \
  -H 'authorization: Bearer $SCIDEX_JWT' \
  -H 'content-type: application/json' \
  -d '{
  "pdb_id": "",
  "chain_id": "",
  "hotspot_residues": []
}'

Discussion

Posting anonymously. Sign in for attribution.

No comments yet — be the first.