RosettaCommons / RosettaCommons/foundry
[QUEST] Fixing one chain for redesign with RFD3 + LigandMPNN
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 966
- Forks
- 181
- Avg merge
- 4d 4h
- Merged PRs (30d)
- 2
Description
Hi,
I am trying to design a protein binder using RFdiffusion3 + LigandMPNN, where the receptor chain should remain fixed and only the binder chain is redesigned.
I have successfully produced 3D structures with RFdiffusion3, however, when I try using LigandMPNN, both chains are being redesigned. I attempted to control this using (minimal example of my code):
input_configs = [
{
"batch_size": 10,
"fixed_chains": ["A"],
}
]
and passing it to the model as follows:
from mpnn.inference_engines.mpnn import MPNNInferenceEngine
model = MPNNInferenceEngine(model_type="ligand_mpnn", is_legacy_weights=True, ...)
mpnn_outputs = model.run(
input_dicts=input_configs,
atom_arrays=[atom_array]
)
However, this does not seem to have any effect, as both chains are still redesigned.
I have tried looking at the documentation of MPNN but it looks like it's still under construction. I also inspected the codebase and could not find any clear reference to fixed_chains being used within the transform pipeline or inference engine, which suggests it may not be supported.
From reading the implementation, it appears that residue fixing might instead rely on the mpnn_designed_residue_mask annotation on the AtomArray, but I could not find documentation or examples describing how this should be constructed or used.
Could you clarify the intended way to:
- Fix an entire chain during inference
- Ensure only specific chains or residues are redesigned
If fixed_chains is not supported, what is the correct mechanism to achieve this?
Thank you.
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 with MPNNInferenceEngine and trace how fixed_chains moves through the transform pipeline. Inspect the mentioned mpnn_designed_residue_mask annotation and its construction on the AtomArray. Done means the supported mechanism for fixing whole chains or selected residues is identified and verified to leave the fixed chain unchanged.
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
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100