RF Diffusion¶
Generates protein backbones using RFdiffusion, optionally conditioned on an input structure, motifs, or scaffold-guided settings. Supports full or partial diffusion, symmetry, potentials, and detailed contig mapping. Returns the designed structure and, if requested, trajectory snapshots.

Usage¶
Use this node to design new protein backbones either unconditionally (length-only) or conditionally (based on an input PDB and contig layout). Provide the contigs, optional conditioning configs (symmetry, contigmap, denoiser, potentials, scaffold-guided), choose a checkpoint and sampler, and set diffusion parameters. Integrate it early for generative design, then feed outputs into downstream scoring/relaxation, validation, or sequence design nodes.
Inputs¶
| Field | Required | Type | Description | Example |
|---|---|---|---|---|
| checkpoint | True | ['Auto','Base','Complex_base','Complex_Fold_base','InpaintSeq','InpaintSeq_Fold','ActiveSite','Base_epoch8','Complex_beta'] | Which model checkpoint to use. Auto selects an appropriate checkpoint based on inputs; manual selection requires ensuring compatibility with your task. | Auto |
| write_trajectory | True | BOOLEAN | If true, returns trajectory PDBs for Xt-1 and pX0. | True |
| model_runner | True | ['default','SelfConditioning','ScaffoldedSampler'] | Sampler variant to run during diffusion. | SelfConditioning |
| align_motif | True | BOOLEAN | Aligns the predicted motif to the provided motif during generation. | True |
| final_step | True | INT | Reverse diffusion stop step (1–50). Higher speed with higher values (stops earlier). | 1 |
| contigs | True | STRING | Sequence layout. Unconditional: length range only (e.g., 100-100). Conditional: combine fixed motifs (A10-25), flexible gaps (5-15), and chain breaks (/0). For partial diffusion (partial_T != 50), must match the exact residue counts and order of the input PDB. | 5-15/A10-25/30-40/0 B1-100 |
| hotspot_res | True | STRING | Residues on the target protein to involve in interactions (conditional design). Format like A30,A33,A34. Leave empty for unconditional. | A30,A33,A34 |
| partial_T | True | INT | Timestep to start denoising from (0–50). Use 50 to disable (i.e., full diffusion). Values <50 enable partial diffusion and require an input PDB and fully specified contigs matching it. | 50 |
| seed | True | INT | Base random seed used for deterministic design runs. | 42 |
| mode | True | ['MOCK','PROD','TEST'] | Execution mode. MOCK uses a predefined demo result. PROD runs the service with your parameters. TEST reduces compute (shorter run, no trajectory, non-cautious) for quick checks. | PROD |
| timeout | True | INT | Timeout in seconds for the diffusion process (30–12000). | 600 |
| input_pdb | False | PDB | Optional starting PDB for conditional or partial diffusion. Required for partial diffusion (partial_T < 50). | {'filename': 'input_structure.pdb', 'data': ' |
| symmetry_config | False | JSON | Symmetry configuration. Produce via RF Diffusion Symmetry Config node. | {'symmetry': 'c2', 'recenter': True, 'radius': 10, 'model_only_neighbors': False, 'symmetric_self_cond': True} |
| contigmap_config | False | JSON | Contig mapping and masking settings. Produce via RF Diffusion Contigmap Config node. | {'inpaint_seq': 'A10-25', 'inpaint_str': 'B165-178', 'provide_seq': '172-177,200-205', 'length': '100-150'} |
| denoiser_config | False | JSON | Noise schedule and scaling for translations/rotations. Produce via RF Diffusion Denoiser Config node. | {'noise_scale_ca': 1.0, 'final_noise_scale_ca': 1.0, 'ca_noise_schedule_type': 'constant', 'noise_scale_frame': 1.0, 'final_noise_scale_frame': 1.0, 'frame_noise_schedule_type': 'constant'} |
| potentials_config | False | JSON | Guiding potentials (contact/shape constraints, substrates, oligomer settings). Produce via RF Diffusion Potentials Config node. | {'guiding_potentials': ['type:monomer_ROG,weight:1,min_dist:15'], 'guide_scale': 10, 'guide_decay': 'constant', 'olig_inter_all': False, 'olig_intra_all': False, 'olig_custom_contact': 'A!B', 'substrate': 'HEM'} |
| scaffoldguided_config | False | JSON | Scaffold-guided or fold-conditioning settings (secondary structure files, target PDB for PPI). Produce via RF Diffusion Scaffold Guided Config node. | {'scaffoldguided': True, 'target_pdb': False, 'scaffold_dir': '/path/to/scaffolds', 'sampled_insertion': 5, 'mask_loops': True} |
Outputs¶
| Field | Type | Description | Example |
|---|---|---|---|
| generation.pdb | PDB | The generated protein backbone structure. | {'filename': 'generation.pdb', 'data': ' |
| trajectory_Xt-1.pdb | PDB | Trajectory snapshot for Xt-1 (returned when write_trajectory is true; may be empty in TEST mode or when disabled). | {'filename': 'trajectory_Xt-1.pdb', 'data': ' |
| trajectory_pX0.pdb | PDB | Trajectory snapshot for pX0 (returned when write_trajectory is true; may be empty in TEST mode or when disabled). | {'filename': 'trajectory_pX0.pdb', 'data': ' |
Important Notes¶
- Unconditional vs Conditional: Unconditional design requires no input_pdb, contigs must be length-only (e.g., 100-100), hotspot_res must be empty, and contigmap_config fields (except length) must be empty.
- Partial diffusion requires input: If partial_T < 50 (partial diffusion), you must provide input_pdb and a fully specified contig layout matching the input PDB residue counts and chain order.
- Conditional contigs: For conditional sampling with full diffusion (partial_T = 50), contigs must include at least one fixed region with chain letters (e.g., A10-25).
- Checkpoint compatibility: Manual checkpoints may not support all input configurations. Auto is recommended unless you know the correct model for your setup.
- Modes: TEST mode forces faster settings (final_step=49, write_trajectory=false, cautious=false). MOCK mode returns precomputed demo data.
- Trajectory outputs: If write_trajectory is false, trajectory outputs may be empty.
- Timeouts: Complex conditional runs with trajectories may require a higher timeout.
Troubleshooting¶
- Error: Non empty
contigsmust be passed: Provide valid contigs. For unconditional, use length-only (e.g., 120-120). For conditional, include fixed regions (e.g., A10-25). - Error: For partial diffusion sampling, expected
input_pdbto be provided: Set partial_T=50 to disable partial diffusion or supply input_pdb. - Error: Unconditional settings invalid: Remove hotspot_res, and ensure contigmap_config fields other than length are empty when input_pdb is not provided.
- Error: For conditional sampling, contigs missing fixed region: Include at least one chain-lettered fixed segment (e.g., A10-25).
- Trajectory not returned: Ensure write_trajectory=true and avoid TEST mode; increase timeout for large jobs.
- Generation times out: Increase the timeout input; reduce complexity (shorter contigs, disable trajectory, use TEST for debugging).
- Unexpected geometry or poor contacts: Use potentials_config to add guiding potentials, adjust guide_scale/decay, or refine contigmap/denoiser settings.
- Symmetry not applied: Verify symmetry_config fields and values (e.g., c2, d5, tetrahedral) and ensure they fit your design goal.