Skip to content

RF Diffusion

Generates protein backbone designs using an RF Diffusion sampler. Supports unconditional generation from a length range or conditional tasks such as motif scaffolding, partial diffusion, symmetry, denoiser tuning, and guiding potentials. Offers deterministic runs via a seed and optional trajectory outputs.
Preview

Usage

Use this node to design protein structures either from scratch (unconditional) or conditioned on an input PDB and contig layout (conditional). For unconditional designs, provide a numeric length range in contigs and leave input_pdb empty. For conditional or partial diffusion tasks, provide input_pdb and a contig layout that specifies fixed regions; you can also add optional configs for symmetry, contig mapping (mask/provide regions, length), denoiser behavior, and guiding potentials.

Inputs

FieldRequiredTypeDescriptionExample
checkpointTrueSTRINGCheckpoint selection. Auto will choose the most appropriate checkpoint based on inputs; selecting a specific checkpoint requires compatibility with your task.Auto
write_trajectoryTrueBOOLEANWhether to include trajectory outputs from the diffusion process.True
model_runnerTrueSTRINGSampler variant to use.SelfConditioning
align_motifTrueBOOLEANAligns the model’s predicted motif to the input motif during conditional tasks.True
final_stepTrueINTReverse diffusion stopping step (1–50). Larger values reduce compute; stopping early speeds up inference.1
contigsTrueSTRINGSequence layout. Unconditional: specify only a numeric length range (e.g., 100-100). Conditional: combine fixed motif ranges (e.g., A10-25), flexible gaps (5-15), and chain breaks (/0). For partial diffusion (partial_T != 50), specify the full layout matching the input PDB residue counts and order.5-15/A10-25/30-40/0 B1-100
hotspot_resTrueSTRINGResidues on the target protein that should contact the binder. Comma-separated chain-index pairs. Leave empty for unconditional generation.A30,A33,A34
partial_TTrueINTStarting timestep for denoising (0–50). Set to 50 to disable (full diffusion). Values below 50 enable partial diffusion from a partially noised structure.50
seedTrueINTBase seed for deterministic runs.42
modeTrueSTRINGExecution mode. PROD runs the service, MOCK returns predefined data, TEST uses minimal parameters for faster runs.PROD
input_pdbFalsePDBInput structure for conditional tasks (motif scaffolding or partial diffusion). Leave empty for unconditional generation.PDB handle from an upstream node
symmetry_configFalseJSONAdditional symmetry configuration. Build via RF Diffusion Symmetry Config node.{'symmetry': 'c2', 'recenter': True, 'radius': 10, 'model_only_neighbors': False, 'symmetric_self_cond': True}
contigmap_configFalseJSONAdditional contig mapping configuration (masking structure/sequence, provided regions, length). Build via RF Diffusion Contigmap Config node.{'inpaint_seq': 'A50-80', 'inpaint_str': 'B165-178', 'provide_seq': '172-177,200-205', 'length': '100-150'}
denoiser_configFalseJSONDenoiser noise scales and schedules for translations and rotations. Build 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_configFalseJSONGuiding potentials configuration (e.g., contacts, ROG, substrate interactions). Build via RF Diffusion Potentials Config node.{'guiding_potentials': ['type:monomer_ROG,weight:1,min_dist:15', 'type:olig_contacts,weight_intra:1,weight_inter:0.1'], 'guide_scale': 10, 'guide_decay': 'constant', 'olig_inter_all': False, 'olig_intra_all': False, 'olig_custom_contact': 'A!B,B&C', 'substrate': 'LLK'}

Outputs

FieldTypeDescriptionExample
generation.pdbPDBThe designed protein backbone(s).PDB handle containing generated structure(s)
trajectory_Xt-1.pdbPDBOptional trajectory at Xt-1 steps if write_trajectory is true.PDB handle for Xt-1 trajectory frames
trajectory_pX0.pdbPDBOptional posterior mean trajectory (pX0) if write_trajectory is true.PDB handle for pX0 trajectory frames

Important Notes

  • Unconditional vs Conditional: Unconditional requires no input_pdb and contigs must be numeric length range only (e.g., 100-100). Conditional requires input_pdb and a contig layout containing at least one fixed region (e.g., A10-25), unless you are doing partial diffusion.
  • Partial diffusion: Set partial_T to 50 to disable. Values below 50 enable partial diffusion and require input_pdb. For partial diffusion, ensure contigs fully reflect the exact residue counts and order in the input PDB.
  • Hotspot residues: Must be empty for unconditional generation.
  • Contigmap config in unconditional mode: Only length is applicable; other fields should be empty.
  • Determinism: seed is used to produce deterministic outputs; the node derives per-sample seeds internally.
  • Trajectory outputs: trajectory_Xt-1.pdb and trajectory_pX0.pdb are only produced when write_trajectory is true.
  • Mode behavior: TEST mode reduces compute by adjusting parameters (e.g., increases final_step number for speed and disables trajectory and cautious behavior). MOCK mode returns predefined data for quick prototyping.

Troubleshooting

  • Error: Non empty contigs must be passed: Provide a valid contigs string. For unconditional use a numeric range (e.g., 120-120). For conditional include fixed regions and optional gaps/breaks (e.g., 5-15/A10-25/30-40/0 B1-100).
  • Error: For partial diffusion sampling, expected input_pdb to be provided: When partial_T < 50, you must supply an input_pdb.
  • Error: For unconditional sampling, expected contigs numeric: If contigs includes chain letters (e.g., A10-25) while input_pdb is empty, switch to conditional mode or use a numeric length range only.
  • Error: For unconditional sampling, hotspot_res must be empty: Remove hotspot_res entries for unconditional runs.
  • Error: Unexpected contigmap_config fields in unconditional mode: Only length is allowed; clear inpaint/provide fields.
  • Conditional contigs missing fixed region: If input_pdb is provided and partial_T is disabled (50), include at least one fixed region (e.g., A10-25) in contigs.

Example Pipelines

Example
Example