RFdiffusion3 — Protein binder design examples

RFD3 is a highly proficient protein binder designer. The following arguments have to be specified to RFD3 to make protein binders.

  • input: the PDB or CIF file of the structure you want to bind

  • contig: the length range of the binder to make (indicated as a range) and which residues from the target file to consider.

  • infer_ori_strategy: how RFD3 decides to place the origin of the generated protein binder with respect to the target. We find that using the “hotspots” strategy works best

  • select_hotspots: which atoms on the target should be bound (dictionary of residues on the target and atoms in those residues)

In addition, we strongly recommend the following setting, which encourages the model to make more structured designs:

  • is_non_loopy: true

Some useful command-line overrides to experiment with include inference_sampler.step_scale (defaults to 1.5) and inference_sampler.gamma_0 (defaults to 0.6). Increasing the step_scale and decreasing gamma_0 yields lower-temperature designs, which tends to increase designability and decrease diversity.

If you would like to run the examples below, protein_binder_design.json, located in this directory, contains the example code. You can run it via:

rfd3 design out_dir=inference_outputs/protein_binder/0 \
ckpt_path=/path/to/rfd3_foundry_2025_12_01.ckpt \
inputs=./protein_binder_design.json

Or, if you have cloned the repo rather than using pip install:

python path/to/foundry/models/rfd3/src/rfd3/run_inference.py \
out_dir=inference_outputs/protein_binder/0 \
ckpt_path=/path/to/rfd3_foundry_2025_12_01.ckpt \
inputs=./protein_binder_design.json 

An example script for running these examples in batches is also provided in run_inf_tutorial.sh.

The input files for the different examples are provided in foundry/models/rfd3/docs/input_pdbs.

{
    "insulinr": {
        "dialect": 2,
        "infer_ori_strategy": "hotspots",
        "input": "input_pdbs/4zxb_cropped.pdb",
        "contig": "40-120,/0,E6-155",
        "select_hotspots": {
            "E64": "CD2,CZ",
            "E88": "CG,CZ",
            "E96": "CD1,CZ",
            },
        "is_non_loopy": true
    },
    "pdl1": {
        "dialect": 2,
        "infer_ori_strategy": "hotspots",
        "input": "input_pdbs/5o45_cropped.pdb",
        "contig": "50-120,/0,A17-131",
        "select_hotspots": {
            "A56": "CG,OH",
            "A115": "CG,SD",
            "A123": "CD2,OH",
       },
        "is_non_loopy": true
    }
}