The RfDiffusion API runs RfDiffusion (https://github.com/RosettaCommons/RFdiffusion) on an input template PDB file. RfDiffusion is a method for structure generation useful for protein design challenges.
Running RfDiffusion
RfDiffusion can be run with the following command:
cyrus submit rf-diffusion input-template.pdb --n-rfdiffusion-designs 23 --n-mpnn-designs 3 --rfdiffusion-contigs A1-25/25-25 --mpnn-af2-contigs A1-25/25-25
The contigs
flags are discussed at length in the RFdiffusion repository README https://github.com/RosettaCommons/RFdiffusion#running-the-diffusion-script:
Now, what does
'contigmap.contigs=[150-150]'
mean? To those who have used RFjoint inpainting, this might look familiar, but a little bit different. Diffusion, in fact, uses the identical 'contig mapper' as inpainting, except that, because we're using hydra, we have to give this to the model in a different way. The contig string has to be passed as a single-item in a list, rather than as a string, for hydra reasons and the entire argument MUST be enclosed in''
so that the commandline does not attempt to parse any of the special characters.The contig string allows you to specify a length range, but here, we just want a protein of 150aa in length, so you just specify [150-150] This will then run 10 diffusion trajectories, saving the outputs to your specified output folder.
…
In more detail, if we want to scaffold a motif, the input is just like RFjoint Inpainting, except needing to navigate the hydra config input. If we want to scaffold residues 10-25 on chain A a pdb, this would be done with
'contigmap.contigs=[5-15/A10-25/30-40]'
. This asks RFdiffusion to build 5-15 residues (randomly sampled at each inference cycle) N-terminally of A10-25 from the input pdb, followed by 30-40 residues (again, randomly sampled) to its C-terminus.
The job will produce an outputs directory containing the results of the rf-diffusion and MPNN/AF2 runs.