-
Notifications
You must be signed in to change notification settings - Fork 225
Description
Hi Martin,
I am currently trying to reproduce the peptide design results from the following published journal:
“Evaluating BindCraft for Generative Design of High Affinity Peptides” (ACS Chem Biol, 2025)_
using the public GitHub version of BindCraft.
While running peptide designs for MDM2, I ran into a PyRosetta alignment error in predict_binder_alone, and I am not sure whether this is a bug, a configuration issue on my side, or an edge case that might benefit from more robust handling.
When I run the peptide design pipeline for MDM2, the run progresses into the binder alone prediction stage, then crashes with the following error:
ERROR: Assertion `count == ref_coords.size()` failed.
ERROR:: Exit from: /home/benchmark/rosetta/source/src/protocols/toolbox/superimpose.cc line: 106
Traceback (most recent call last):
File "/TURBO/BindCraft/BindCraft/./bindcraft.py", line 308, in <module>
binder_statistics = predict_binder_alone(binder_prediction_model, mpnn_sequence['seq'], mpnn_design_name, length,
File "/TURBO/BindCraft/BindCraft/functions/colabdesign_utils.py", line 326, in predict_binder_alone
align_pdbs(trajectory_pdb, binder_alone_pdb, binder_chain, "A")
File "/TURBO/BindCraft/BindCraft/functions/pyrosetta_utils.py", line 165, in align_pdbs
align.apply(align_pose)
RuntimeError:
File: /home/benchmark/rosetta/source/src/protocols/toolbox/superimpose.cc:106
[ ERROR ] UtilityExitException
ERROR: Assertion `count == ref_coords.size()` failed.
From the code, this happens when align_pdbs tries to superimpose the binder chain from the complex onto chain A of the binder alone pose. The Rosetta assertion suggests that the two poses do not have matching coordinates (for example, mismatched residue counts or a missing chain in one of the PDBs).
Again, I am specifically reproducing the MDM2 peptide design from the ACS Chem Biol paper. Some of the settings I used for MDM2 are:
chains: "A"
target_hotspot_residues: "73-94"
lengths: [10, 20]
number_of_final_designs: 100
Filters: settings_filters/peptide_relaxed_filters.json
Advanced settings: settings_advanced/peptide_3stage_multimer.json
Command I used:
python -u ./bindcraft.py \
--settings ./settings_target/MDM2.json \
--filters ./settings_filters/peptide_relaxed_filters.json \
--advanced ./settings_advanced/peptide_3stage_multimer.json
The pipeline runs for some time, generates designs, and then crashes during predict_binder_alone with the PyRosetta alignment error shown above.
I have not yet modified the BindCraft code, so this is the stock behavior from the current repo.
My questions are:
Questions
-
Is this a known issue when binder alone predictions fail or when chain IDs differ between complex and binder alone outputs?
-
Are there recommended best practices for configuring the binder alone alignment step for peptide designs, for example:
assumptions about chain IDs in the binder alone model
expected matching of binder chain lengths between complex and binder alone PDBs
- Would it be reasonable to catch this exception in
align_pdbsand either:
skip the binder alone analysis for that specific design, or
return a default value that flags the design as unusable, rather than terminating the whole run
- How do you determine how a target should be trimmed? Didi you trim MDM2 (1YCR)? If yes, please, could you share your recommendation?