Skip to content

PyRosetta alignment error in predict_binder_alone for peptide designs on MDM2 #344

@AglowRaph

Description

@AglowRaph

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

  1. Is this a known issue when binder alone predictions fail or when chain IDs differ between complex and binder alone outputs?

  2. 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

  1. Would it be reasonable to catch this exception in align_pdbs and 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

  1. How do you determine how a target should be trimmed? Didi you trim MDM2 (1YCR)? If yes, please, could you share your recommendation?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions