-
Notifications
You must be signed in to change notification settings - Fork 134
[QUEST] Fixing one chain for redesign with RFD3 + LigandMPNN #246
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.