RosettaCommons / RFdiffusion

Code for running RFdiffusion
Other
1.63k stars 311 forks source link

RFdiffusion github showing different results from RFdiffusion on google colab #200

Open ohjeyy93 opened 6 months ago

ohjeyy93 commented 6 months ago

I've been trying motif scaffolding and I noticed there is difference between results produced by github RFdiffusion and by google colab RFdiffusion. I will post screen shots for explanation. Also, due to gpu usage limit I couldn't display or moved on to protein mpnn and alphafold.

rfdiffusion_colab_input_720 Screenshot 1. colab RFdiffusion inputs

Here is the output command for above colab RFdiffusion inputs,

mode: fixed output: outputs/epi contigs: ['A1-36/150-150/A37-64', 'A1-36/150-150/A37-64', 'A1-36/150-150/A37-64'] ./RFdiffusion/run_inference.py --config-name symmetry inference.symmetry=c3 'potentials.guiding_potentials=["type:olig_contacts,weight_intra:1,weight_inter:0.1"]' potentials.olig_intra_all=True potentials.olig_inter_all=True potentials.guide_scale=2 potentials.guide_decay=quadratic inference.output_prefix=outputs/epi inference.num_designs=1 inference.input_pdb=outputs/epi/input.pdb diffuser.T=150 'contigmap.contigs=[A1-36/150-150/A37-64 A1-36/150-150/A37-64 A1-36/150-150/A37-64]' inference.dump_pdb=True inference.dump_pdb_path='/dev/shm'

image_720 Screenshot 2. This is the result of colab RFdiffusion output

./scripts/run_inference.py --config-name symmetry inference.symmetry=c3 'potentials.guiding_potentials=["type:olig_contacts,weight_intra:1,weight_inter:0.1"]' potentials.olig_intra_all=True potentials.olig_inter_all=True potentials.guide_scale=2 potentials.guide_decay=quadratic inference.output_prefix=diffused_2-11-2023/_fixed_1 inference.num_designs=1 inference.input_pdb=input.pdb diffuser.T=150 'contigmap.contigs=[A1-36/150-150/A37-64 A1-36/150-150/A37-64 A1-36/150-150/A37-64]' Above is the command for github RFdiffusion, below is image of the result from it.

image_720 (1) image_480

I also tried breaking chains, adjusting number of iterations, and reinstalling RFdiffusion github. However, all produced same result as above as in a lot of beta sheets.

It seems same command input was used for both colab and github RFdiffusion. However, the result seems very different. Does anyone have idea why there is such discrepancy?

ohjeyy93 commented 6 months ago

I think the discrepancy between github RFdiffusion and colab RFdiffusion is that colab RFdiffusion seems to do automatic z-axis symmetry for input while github RFdiffusion needs manual z-axis symmetry for input

sokrypton commented 6 months ago

The notebook was designed to be a bit more user friendly. Where we expect the user to only provide contig definition once, for single copy of the symmetric assembly, along with the "order", instead of repeating the definition.

This creates a problem in RFdiffusion, as the input is automatically centered and if only single chain is defined, this single chain is used to compute the center and thus throws off the entire symmetry.

For local version, to fix this, you'll have to update your contig to include each of the chains of the full complex, instead of chain A repeated 3 times.

For Colab version, to fix this, we disable the auto centering: https://github.com/sokrypton/RFdiffusion/commit/c042c0e55225eaabb7c709ce7e4ababb0c9cb84e