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.
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
No comments yet — be the first.