RosettaCommons / RosettaCommons/foundry
[BUG] RFdiffusion3 not respecting positions of fixed atoms in unindexed residues
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 966
- Forks
- 181
- Avg merge
- 4d 4h
- Merged PRs (30d)
- 2
Description
When designing with unfixed residues while using contig strings, (not the non-scaffolded generation seen in the enzyme design examples) RFdiffusion3 seems to often generate outputs that do not connect to the positions of the fixed parts of those unfixed residues. In my example image below, you can see two unfixed residues. (white)
The leucine (input residue A398, and on top in the picture) has all its atoms fixed in place. The adjacent residues in the output structure do not connect to it at all, almost as if the leucine was in between them, but was moved to its fixed position after diffusion had taken place.
The aspartate (input residue E119, and on bottom in the picture) had only the OD1 and OD2 atoms fixed. The rest of the residue was generated normally WRT the rest of the chain. However, this was much too far away from the carboxylate oxygens, which you can see seem to have been ripped away from the rest of the residue.
Essentially, the overall behavior just seems to be that RFdiffusion will often ignore the positions of fixed atoms in unfixed residues, generating everything around them without trying to connect them to the rest of the structure. One would normally expect RFdiffusion to generate structures which actually connect to those atoms.
Here is the JSON I used, although it's a little long for a bug report, sorry.
{
"bidentate_motif": {
"input": "/home/zdm10/tdt/nt_selectivity/input/bidentate.pdb",
"contig": "B1-5,/0,A146-217,/0,A327-383,20-35,A401-510",
"unindex": "E119,A398",
"ligand": "L:G,D:A",
"select_unfixed_sequence": "A446-449,A451-461",
"select_hotspots": {
"L:G": "N3,N2,N1,O6"
},
"select_fixed_atoms": {
"B1-5": "ALL",
"D:A": "ALL",
"A146-217": "BKBN",
"A327-383": "ALL",
"A401-445": "BKBN",
"A462-510": "BKBN",
"L:G": "ALL",
"A398": "ALL",
"E119": "OD1,OD2"
}
}
}
You can access the PDB file here if you want to reproduce this issue. (I couldn't upload directly to this issue, sorry) Very rarely, RFD will generate a backbone that mostly fits specifications, so generate at least 2 or 3 designs to ensure you'll see the issue.
Edit: Further information, this is an earlier JSON, but I have also been trying lots of other changes to the JSON. Mutating more neighboring residues to alanine and unfixing them, changing the center of mass, conditioning hydrogen bonds. Things that will free up the space the designed loop can occupy, or otherwise things that can better guide RFD3 to a solution. This issue has continued to plague all of my outputs.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the behavior with the supplied JSON configuration and linked PDB file, generating several RFdiffusion3 designs as requested. Compare fixed atoms in A398 and E119 with the surrounding generated residues, especially the leucine backbone connection and aspartate OD1/OD2 placement. Done means unfixed residues connect to their fixed atoms while preserving the stated constraints.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- bioinformatics, machine-learning
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100