N-to-C macrocycle design

Use cyclic_chains to request cyclic residue relative positional encoding for one complete de novo canonical peptide. This follows the approach of RFpeptides and the cyclic encoding implemented in RF3. RFD3 retains its existing weights and sampler.

Monomers

macrocycle_monomer.json contains separate 10- and 12-residue designs. Run from the repository root:

rfd3 design inputs=models/rfd3/docs/examples/macrocycle_monomer.json \
    out_dir=outputs/macrocycle_monomers ckpt_path=/path/to/rfd3_latest.ckpt \
    diffusion_batch_size=1 n_batches=1

This requests one backbone per input key. Increase n_batches or diffusion_batch_size using the usual inference controls for larger runs. You can also specify a sampled range, for example "length": "10-12".

Protein binders

macrocycle_binder.json requests a 12-residue peptide against the insulin receptor using the existing example structure and a hotspot:

rfd3 design inputs=models/rfd3/docs/examples/macrocycle_binder.json \
    out_dir=outputs/macrocycle_binders ckpt_path=/path/to/rfd3_latest.ckpt \
    diffusion_batch_size=1 n_batches=1

The contig 12,/0,E6-155 builds peptide chain A and target chain B, so "cyclic_chains": ["A"] selects the peptide. With target-first contig E6-155,/0,12, select ["B"]. These are assembled chain IDs; select_hotspots still uses source-file IDs such as E64. A target’s unrelated cofactor does not prevent cyclic encoding of the peptide.

Behavior and limits

Omitting cyclic_chains, using null, or using [] keeps linear encoding. The option changes only residue offsets within the selected peptide; target and interchain encodings retain their existing behavior. Half-ring ties in even-length peptides retain the original signed offset, as in RF3.

The selected chain must be entirely de novo canonical peptide with one token per residue. Motif-containing rings, multiple cyclic selections, partial diffusion, and active symmetry are unsupported. Unrelated components follow existing input rules. See the input reference.

Cyclic encoding does not enforce geometric closure or add a terminal C–N bond to model inputs or written CIF files. The request is saved in normal output JSON. Evaluate closure and scientific quality separately.