Author numbering
A residue is named the way the deposited structure names it: chain, then the author's residue number, as in A150. That number is not its position in the sequence. Chains routinely start above 1, skip numbers at gaps, and carry insertion codes. Phi keeps author numbering everywhere a residue is shown or typed, and converts only at the edge where a model wants something else.
The chain summary
Loading a target returns a chain summary before anything runs: chain ids, lengths, the numbering range, and the sequence. Read it before choosing hotspots. The example below is TFR1 chain A from PDB 9GH7, whose first residue is 122.
Author numbering, as deposited. Marked residues are the example hotspot set.
Sequence positions, counted from 1. The same residues, different numbers.
9GH7 chain A: 636 residues, 122 to 757, no gaps. Residue 150 is position 29.
Avoid shifted hotspot positions
A hotspot list written as sequence positions, or a structure renumbered from 1, aims the run at the wrong residues without any error. On a chain that starts at 122, position 29 and residue 150 are the same atom; a model given 29 as an author number would look 121 residues away. Phi's hotspot fields show the chain's numbering range beside them for this reason.
What each model takes
Most generators take hotspots as a list of author-numbered residues under params.hotspots. Some take them elsewhere or in another form. The table shows one set as each model wants it; the values are computed from the target's real numbering.
| Model | Parameter | Value for this set |
|---|---|---|
| BoltzGen | params.hotspots | ["A150","A154","A156","A159","A160","A161","A193","A219"] |
| Germinal | params.hotspots | ["A150","A154","A156","A159","A160","A161","A193","A219"] |
| RFantibody | params.hotspots | ["A150","A154","A156","A159","A160","A161","A193","A219"] |
| BindCraft | params.hotspots | ["A150","A154","A156","A159","A160","A161","A193","A219"] |
| Dyno Psi | params.hotspots | `hotspots` are required. `binder_center_of_mass` is required for the default `binder_centering=predefined`; set `binder_centering=sphere_exclusion` to omit it. The centre is then computed from the hotspots. Hotspots use 'Chain:Residue' form, e.g. 'A7:58'. |
| RFD4-Proteina | params.hotspots | ["A150","A154","A156","A159","A160","A161","A193","A219"] |
| RFdiffusion | params.hotspots | ["A150","A154","A156","A159","A160","A161","A193","A219"] |
| RFdiffusion 3 | params.hotspots | ["A150","A154","A156","A159","A160","A161","A193","A219"] |
| PXDesign | inputs.target_chains, 1-based | [29,33,35,38,39,40,72,98] (chain A starts at 122, so subtract 121) |
Through the MCP tools, phi_design_binder takes the author-numbered list and does the conversion. Through the REST API and the CLI you write the model's own field.
Checked 2026-09-29