BindCraft
commit b971db4Design de novo protein binders for target surfaces using structure-guided sequence generation.
ProteinIQ runs an experimental Rosetta-free BindCraft variant for protein binder design. It retains AlphaFold2-guided backbone design, ProteinMPNN sequence redesign, binder-alone validation, and ranking by interface confidence. Restrained OpenMM minimization replaces Rosetta relaxation; FreeSASA and sc-rs provide separately named geometric measurements.
Rosetta/PyRosetta is not included due to licensing. Projects that need Rosetta relaxation, energies, or filtering should contact sales to discuss licensing and requirements. Accepted designs pass a different filter policy from the published BindCraft pipeline; equivalent experimental success rates have not been established.
FreeBindCraft is an alternative with staged OpenMM relaxation, FASPR side-chain repacking, and optional ipSAE ranking. The two tools record different methods and filter policies, so scores carry over between them only when those records agree.
The standard compute quote reserves 5,400 credits for two hours on an A100 80 GB GPU at 45 credits per minute. Actual billable runtime is settled after the run and unused reserved credits are returned. The exact quote appears before submission. Full diagnostic artifacts do not change the standard compute reservation.
Target size, binder length, design count, and iteration settings can change runtime but do not change the standard compute reservation. The requested accepted-design count is a search goal, not a guaranteed yield.
| Input | Accepted value |
|---|---|
| Target protein | One .pdb or .ent structure, up to 50 MB, or a PDB-format structure fetched from RCSB. |
| Target chains | One chain ID or comma-separated IDs, such as A,B; only selected chains are used. |
| Hotspot residues | Optional residue numbers, ranges, or whole chains, such as 56, 1-10, A15, A1-10,B1-20, or A. Unchained values use the first selected target chain. |
Only the chains listed in Target chains are used, so that field defines the binding context the design sees, and a multi-chain site needs comma-separated IDs such as A,B. Read the residue numbering out of the file itself before writing a selector. Cropped or renumbered structures are the usual reason a hotspot lands on the wrong surface without any error.
The BindCraft authors recommend cutting an unnecessarily large target down to lower memory use and speed up sampling. Keep enough structure around the intended site to judge whether a binder could reach it, because an artificial cut surface is a poor basis for a binding claim. What the file omits matters just as much: a missing domain, partner chain, glycan, or membrane can block an interface that looks clean in isolation.
A hotspot steers the search toward a patch rather than pinning one interaction. Give Hotspot residues (optional) a small accessible patch instead of a single buried residue, leave it empty when the search should choose the site, and confirm in the Viewer afterwards that the accepted designs sit where they were asked to.
The displayed defaults make a reasonable setup check: Design protocol Default, Minimum binder length 40, Maximum binder length 80, Number of designs 1, and Preset overrides off. They are defaults, not a validated optimum for a particular target.
Switching Design protocol to Peptide or Beta-sheet selects a different advanced preset but leaves both length fields exactly as entered, so a peptide run keeps the 40 to 80 range until those fields change. Check both after every protocol change.
The BindCraft repository ships a PD-L1 target example that makes a compact first submission: its PDL1.pdb sample as Target protein, A as Target chains, and A56 as the hotspot. The repository's own settings file asks for 65 to 150 residue binders and 100 final designs, which is a campaign rather than a setup check, so keep the hosted defaults for the first run. The exercise covers the inputs only; no acceptance rate or score is implied.
Defaults below are the displayed controls. With preset overrides off, the design protocol selects the advanced preset. Advanced options may inherit protocol-specific values; inspect advanced_settings.json for resolved values. Quality controls override matching thresholds even when a custom filter or no_filters preset is selected. Inspect scientific_protocol.json for effective filters.
| Parameter | Type | Default | Description |
|---|---|---|---|
design_protocol | enum | default | Choices: default, beta_sheet, peptide. All use the experimental Rosetta-free protocol. |
num_designs | integer | 1 | Number of final binder designs to generate. More designs = longer runtime. Range: 1 to 100. |
length_min | integer | 40 | Minimum number of residues in the designed binder. Range: 20 to 100. |
length_max | integer | 80 | Maximum number of residues in the designed binder. Range: 30 to 300. Must be at least the minimum binder length. |
target_chains | string | A | Chain ID(s) from the target PDB to design binders against. Use comma for multiple chains (e.g., A,B). |
hotspot_residues | string | optional | Specific residues, ranges, or whole chains to focus binding. Unchained numbers use the first selected target chain. Leave empty for automatic selection. |
| Parameter | Type | Default | Description |
|---|---|---|---|
prediction_protocol | enum | default | Default performs single-sequence binder prediction. Hard target uses initial guess to improve difficult complex prediction, with possible bias. Choices: default, hardtarget. |
interface_protocol | enum | alphafold2 | AlphaFold2 generates the interface by default. MPNN uses soluble ProteinMPNN to optimize the interface. Choices: alphafold2, mpnn. |
template_protocol | enum | default | Default allows limited target flexibility. Flexible masks template sequence for more backbone and sidechain flexibility. Choices: default, flexible. |
filter_type | enum | auto | Rosetta-free presets retain confidence and geometry checks. Choices: auto, default_filters, relaxed_filters, peptide_filters, peptide_relaxed_filters, no_filters. Confidence controls still apply. |
design_algorithm | enum | auto | Select the preset algorithm with auto or explicitly choose an optimization schedule. Choices: auto, 4stage, 3stage, 2stage, greedy, mcmc. |
use_multimer | boolean | true | Use AlphaFold2-multimer for better interface prediction. Recommended for most cases. |
sample_models | boolean | true | Randomly sample AlphaFold2 parameter sets during design, as recommended by BindCraft to reduce overfitting. |
| Parameter | Type | Default | Description |
|---|---|---|---|
plddt_threshold | number | 80 | Minimum accepted pLDDT shown on the familiar 0-100 scale. BindCraft applies this internally as a normalized 0-1 filter threshold to the Average/1/2 pLDDT checks. Range: 50 to 95. |
ptm_threshold | number | 0.55 | Minimum accepted pTM threshold. BindCraft uses normalized 0-1 values internally and applies this to the Average/1/2 pTM filters. Range: 0.3 to 0.9. |
i_ptm_threshold | number | 0.5 | Minimum accepted interface pTM threshold. BindCraft uses normalized 0-1 values internally and applies this to the Average/1/2 i_pTM filters. Range: 0.3 to 0.9. |
i_pae_threshold | number | 0.35 | Maximum accepted interface pAE threshold for Average/1/2 i_pAE filters. Lower is stricter. Range: 0.1 to 0.8. |
binder_rmsd_threshold | number | 3.5 | Maximum binder-alone RMSD threshold for Average/1-5 Binder_RMSD filters. Lower is stricter. Range: 1 to 8. |
include_unaccepted | boolean | true | With full diagnostic artifacts enabled, also display evaluated designs that did not pass the configured BindCraft filters. These are exploratory candidates, not accepted BindCraft designs. |
| Parameter | Type | Default | Description |
|---|---|---|---|
preset_options | boolean | false | Override the BindCraft advanced and filter JSON presets directly. |
advanced_preset | enum | default_4stage_multimer | BindCraft advanced JSON preset. Leave preset overrides off to let binder mode choose the matching preset automatically. Choices: default_4stage_multimer, default_4stage_multimer_flexible, default_4stage_multimer_hardtarget, default_4stage_multimer_flexible_hardtarget, default_4stage_multimer_mpnn, default_4stage_multimer_mpnn_flexible, default_4stage_multimer_mpnn_hardtarget, default_4stage_multimer_mpnn_flexible_hardtarget, betasheet_4stage_multimer, betasheet_4stage_multimer_flexible, betasheet_4stage_multimer_hardtarget, betasheet_4stage_multimer_flexible_hardtarget, betasheet_4stage_multimer_mpnn, betasheet_4stage_multimer_mpnn_flexible, betasheet_4stage_multimer_mpnn_hardtarget, betasheet_4stage_multimer_mpnn_flexible_hardtarget, peptide_3stage_multimer, peptide_3stage_multimer_flexible, peptide_3stage_multimer_mpnn, peptide_3stage_multimer_mpnn_flexible. |
filter_preset | enum | default_filters | BindCraft filter JSON preset. Leave preset overrides off to let binder mode choose the matching preset automatically. Choices: default_filters, relaxed_filters, peptide_filters, peptide_relaxed_filters, no_filters. |
custom_advanced_json | string | optional | Custom advanced JSON object; execution paths and protected controls cannot be overridden. |
custom_filters_json | string | optional | Use the Rosetta-free metric names below. Unavailable Rosetta metrics cannot have active thresholds; confidence controls override matching custom thresholds. |
| Parameter | Type | Default | Description |
|---|---|---|---|
max_trajectories | integer | 0 | Maximum hallucination trajectories before stopping. Use 0 for default behavior with only the runtime cap. Range: 0 to 10000. |
enable_rejection_check | boolean | true | Stop early if the accepted-design rate stays below the configured acceptance rate after monitoring starts. |
acceptance_rate | number | 0.01 | Minimum fraction of trajectories expected to yield accepted designs once rejection monitoring starts. Range: 0 to 0.5. |
start_monitoring | integer | 600 | Trajectory count before acceptance-rate monitoring can stop the run. Range: 1 to 5000. |
| Parameter | Type | Default | Description |
|---|---|---|---|
predict_initial_guess | boolean | false | Bias prediction with binder atom positions; use cautiously when redesigns fail validation. |
predict_bigbang | boolean | false | Bias atom initialization for large target/design systems. Useful for larger complexes. |
rm_template_seq_design | boolean | false | Remove target template sequence during binder design. |
rm_template_seq_predict | boolean | false | Remove target template sequence during validation prediction. |
rm_template_sc_design | boolean | false | Remove target sidechains from the design template. |
rm_template_sc_predict | boolean | false | Remove target sidechains from the validation prediction template. |
| Parameter | Type | Default | Description |
|---|---|---|---|
mpnn_fix_interface | boolean | true | Keep the interface generated by the trajectory fixed during ProteinMPNN redesign. |
num_seqs | integer | 20 | Number of ProteinMPNN sequences sampled per accepted trajectory. Higher values cost more. Range: 1 to 200. |
max_mpnn_sequences | integer | 2 | Maximum passing MPNN redesigns saved for each trajectory. Higher values can produce more outputs and more validation work. Range: 1 to 10. |
sampling_temp | number | 0.1 | ProteinMPNN sampling temperature. Higher values sample more diverse sequences. Range: 0 to 1. |
backbone_noise | number | 0 | Backbone noise used during ProteinMPNN sampling. Range: 0 to 0.05. |
mpnn_weights | enum | soluble | ProteinMPNN weights used by BindCraft. Choices: soluble, original. |
omit_AAs | string | C | Comma-separated amino acids to avoid; cysteine is omitted by default. |
force_reject_AA | boolean | false | Force rejection when a design contains any amino acids listed in omit_AAs. |
| Parameter | Type | Default | Description |
|---|---|---|---|
weights_helicity | number | -0.3 | Helicity loss weight; negative values favor beta sheets and positive values favor helices. Range: -3 to 1. |
random_helicity | boolean | false | Sample a random helicity weight per trajectory instead of using the fixed value. |
use_i_ptm_loss | boolean | true | Use interface pTM as an optimization loss. |
weights_iptm | number | 0.05 | Weight for the interface pTM optimization loss. Range: 0 to 1. |
use_rg_loss | boolean | true | Use compactness loss for the binder. |
weights_rg | number | 0.3 | Weight for the radius-of-gyration loss. Range: 0 to 2. |
use_termini_distance_loss | boolean | false | Try to minimize distance between the binder N- and C-termini. Useful for grafting. |
weights_termini_loss | number | 0.1 | Weight for the N/C-terminus distance loss. Range: 0 to 2. |
| Parameter | Type | Default | Description |
|---|---|---|---|
soft_iterations | integer | 75 | Iterations that optimize continuous amino-acid preferences. Range: 0 to 500. |
temporary_iterations | integer | 45 | Iterations that optimize softened amino-acid probabilities. Range: 0 to 500. |
hard_iterations | integer | 5 | Iterations using discrete amino-acid choices. Range: 0 to 200. |
greedy_iterations | integer | 15 | Iterations that test sequence mutations to reduce the design loss. Range: 0 to 500. |
greedy_percentage | number | 1 | Percentage of binder positions mutated during a greedy step. Range: 0 to 20. |
num_recycles_design | integer | 1 | AlphaFold recycles during design. Higher values cost more. Range: 1 to 12. |
num_recycles_validation | integer | 3 | AlphaFold recycles during validation. Higher values cost more. Range: 1 to 12. |
optimise_beta | boolean | true | Apply extra optimization when a beta-sheet trajectory is detected. |
optimise_beta_extra_soft | integer | 0 | Additional soft iterations for beta-sheet optimization. Range: 0 to 300. |
optimise_beta_extra_temp | integer | 0 | Additional temporary iterations for beta-sheet optimization. Range: 0 to 300. |
optimise_beta_recycles_design | integer | 3 | AlphaFold recycles during beta-sheet design optimization. Range: 1 to 12. |
optimise_beta_recycles_valid | integer | 3 | AlphaFold recycles during beta-sheet validation. Range: 1 to 12. |
| Parameter | Type | Default | Description |
|---|---|---|---|
weights_plddt | number | 0.1 | Weight for local confidence in the designed binder. Range: 0 to 2. |
weights_pae_intra | number | 0.4 | Weight for predicted aligned error within the binder. Range: 0 to 2. |
weights_pae_inter | number | 0.1 | Weight for predicted aligned error between target and binder. Range: 0 to 2. |
weights_con_intra | number | 1 | Weight for contacts within the binder. Range: 0 to 5. |
weights_con_inter | number | 1 | Weight for contacts between target and binder. Range: 0 to 5. |
intra_contact_distance | number | 14 | Within-binder contact distance cutoff in angstroms. Range: 4 to 30. |
inter_contact_distance | number | 20 | Target-binder contact distance cutoff in angstroms. Range: 4 to 40. |
intra_contact_number | number | 2 | Desired contacts per residue within the binder. Range: 1 to 8. |
inter_contact_number | number | 2 | Desired contacts per residue between target and binder. Range: 1 to 8. |
| Parameter | Type | Default | Description |
|---|---|---|---|
artifact_options | boolean | false | Return full trajectory animations, plots, rejected PDBs, and optional archive outputs. This can substantially increase the number and size of downloaded files. Leave off for compact accepted-design and CSV diagnostic outputs. |
save_design_animations | boolean | true | Save design animations when full diagnostics are enabled. |
save_design_trajectory_plots | boolean | true | Save trajectory plots when full diagnostics are enabled. |
save_trajectory_pickle | boolean | false | Save trajectory arrays as pickle files; can use substantial storage. |
save_mpnn_fasta | boolean | false | Save ProteinMPNN sequences as FASTA files in full diagnostics. |
zip_animations | boolean | true | Archive animation files when full diagnostics are enabled. |
zip_plots | boolean | true | Archive plot files when full diagnostics are enabled. |
remove_unrelaxed_trajectory | boolean | true | Remove unrelaxed trajectory PDBs after scoring. |
remove_unrelaxed_complex | boolean | true | Remove unrelaxed complex PDBs after scoring. |
remove_binder_monomer | boolean | true | Remove binder-alone PDBs after scoring. |
The protocol proteiniq-restrained-min-v1 prepares predicted complexes with PDBFixer 1.12, preserving protein residue identities and original target chain breaks. OpenMM 8.2.0 minimizes Amber99SB energy with harmonic restraints on the original heavy atoms. It adds missing atoms and hydrogens at pH 7, performs no molecular dynamics or sidechain repacking, and restores residue numbers and confidence B factors. Failed minimization stops execution rather than returning an unchanged structure as a relaxed result.
The original AF2 and ProteinMPNN stages retain their settings. When fixed-interface redesign is enabled, the relaxed trajectory determines which binder residues remain fixed. This means changing relaxation can change the resulting sequences as well as the final scores.
The rosetta_free_v1 presets retain AF2 confidence, binder RMSD, secondary structure, contact counts, amino-acid composition and nonzero buried-area checks. The original confidence defaults remain pLDDT 0.8, pTM 0.55, i_pTM 0.5 and normalized i_pAE at most 0.35. Only models actually predicted participate in per-model checks and averages.
Rosetta energy, packing, and hydrogen-bond thresholds are disabled. Shape complementarity and surface hydrophobicity are reported without default acceptance thresholds because their new methods have not been calibrated against successful designs. Removing filters can increase the accepted count without improving experimental quality.
Custom filters must use the new metric names below. For example:
{
"Average_ShapeComplementarity_sc_rs": {
"threshold": 0.4,
"higher": true
}
}This is an example of syntax, not a recommended cutoff. Unknown keys and non-null thresholds for unavailable Rosetta metrics are rejected. Old names such as Average_ShapeComplementarity and Average_Surface_Hydrophobicity are rejected rather than translated. Confidence sliders still set their corresponding confidence thresholds. An enabled filter fails when its required measurement is missing or nonfinite.
The Viewer shows selected designs and confidence scores. The Data tab and downloaded CSV files preserve the full per-model and average measurements. Ranked accepted structures are the outputs available for workflow reuse. Below-threshold candidates remain diagnostic files when full artifacts are enabled.
The Checks tab shows each evaluated candidate, stage, model, measured value, comparison and threshold. Filter it by candidate or show failures only. Disabled checks do not reject a candidate; an unavailable measurement fails an enabled final filter. Later checks may not run after an earlier failure. Trajectory screens use the native rounded confidence, initial complex-validation checks use the unrounded model value, and final filters use the values saved in the native design statistics.
The Residue confidence tab shows pLDDT on the 0-100 scale for every saved trajectory, complex prediction and binder-only prediction, including rejected predictions. Chain, residue number and insertion code follow the source PDB. These values come from prediction C-alpha B factors before minimization or file cleanup, without running another prediction. Historical jobs without these reports show an unavailable message.
| Metric | Meaning |
|---|---|
Average_i_pTM | AF2 interface confidence; used for ranking. |
Average_pLDDT, Average_pTM | Normalized local and global confidence. |
Average_pAE, Average_i_pAE | BindCraft normalized predicted aligned error, not angstroms. |
Average_ShapeComplementarity_sc_rs | Signed shape-complementarity score from pinned sc-rs. Negative values are retained. Missing or failed scores stay empty. |
Average_Buried_Total_SASA_A2 | FreeSASA isolated-target SASA plus isolated-binder SASA minus complex SASA, in Ų. |
Average_Surface_Hydrophobic_SASA_Fraction | Fraction of isolated-binder SASA contributed by residues A, C, F, I, L, M, P, V, W and Y. This is a residue-based SASA fraction, not an atom-type hydrophobicity score. |
Average_TotalBuried_to_BoundBinder_SASA_Percent | 100 × total buried SASA / binder SASA within the complex. It can exceed 100%; it is not the fraction of binder surface buried. |
Average_n_InterfaceResidues, Average_InterfaceAAs | Binder residues with any parsed atom within 4 Å of a target atom, including hydrogens in minimized structures. |
Average_Interface_Hydrophobicity | Percentage of contact residues in the same ACFILMPVWY set. |
Average_Hotspot_RMSD | Matched heavy-atom RMSD between the designed and re-predicted binder poses, without an additional fit, in Å. |
Average_Binder_RMSD | Matched heavy-atom RMSD after aligning the binder-alone prediction to the designed binder, in Å. |
Average_Target_RMSD | Fitted target C-alpha RMSD, in Å. |
Average_Relaxed_Clashes | BindCraft interchain heavy-atom pairs within 2.4 Å, not a MolProbity clashscore. |
Binder_Energy_Score, dG, dG/dSASA, PackStat, and interface hydrogen-bond and unsatisfied-hydrogen-bond metrics remain empty because Rosetta does not run. OpenMM potential energy is recorded only as a minimization diagnostic, never as a binding-energy estimate. Averages remain missing if a required model measurement is missing.
Rank order is one input to a decision. Open each candidate in the Viewer and check that the proposed interface would still be reachable in the complete biological target and that the binder does not clash with structure the design never saw. The Checks tab then gives the individual measurements behind a candidate, and the Residue confidence tab shows where a strong average hides one weak stretch at the interface.
Ranking uses interface pTM, while Average_Binder_RMSD reports the RMSD between the binder-alone prediction and the designed fold, so a candidate can rank well on one and fail the other. Prefer a shortlist of distinct sequences and poses over several near-identical designs with similar scores.
Expression and solubility, direct binding measurement, and off-target controls still have to be planned, and an intended inhibition or activation has to be tested separately from binding. The published BindCraft study reports experimental results for its own Rosetta-inclusive pipeline, which says nothing about the yield of this variant.
Alongside structures and CSV files, each run preserves:
scientific_protocol.json: method versions, effective filters, active prediction models and disabled model filters.postprocessing.jsonl: minimization outcomes, seed, energy change, coordinate displacement, residue mapping and interface-scoring status. It also contains the isolated and bound binder SASA and the fraction of isolated binder SASA buried.settings.json, advanced_settings.json, requested_filters.json: the resolved run configuration.bindcraft.log, failure_csv.csv, and trajectory/design statistics for diagnosing low yield or failures.candidate_checks.csv and residue_confidence.csv: complete downloadable versions of the two report tables, retained in compact results too.model_runtime.jsonl: which model roles were created or reused and their setup times.No accepted designs can be a valid result. Inspect the recorded rejection reasons and confidence measurements before changing search settings or thresholds. High model confidence and favorable geometry require experimental validation.
| Symptom | What to inspect |
|---|---|
| No accepted designs | failure_csv.csv, the trajectory and design statistics, and the Checks tab, to separate an early trajectory failure from a final-filter one |
| A hotspot or chain is not found | The chain IDs and residue numbers in the uploaded file, especially after cropping or renumbering |
| The run stops below the requested design count | The two-hour runtime budget, Maximum trajectories, Minimum acceptance rate, and Start monitoring at trajectory |
| A relaxed filter preset still rejects candidates | scientific_protocol.json, because the quality threshold sliders override matching preset and custom thresholds |
| Rosetta energy or hydrogen-bond columns are empty | Expected behavior, since those metrics are not calculated here |
| An animation, FASTA, or intermediate PDB is missing | Full diagnostic artifacts and the individual save and remove switches |
Relaxing every filter to force an accepted design changes the count without changing the designs. Find the stage that failed first, change one relevant choice such as the target patch or the binder length, and keep the earlier run and its resolved settings for comparison.
Historical Rosetta-based jobs retain their saved values and labels. Their energy and packing scores are not recomputed or presented as measurements from this variant. Older results must be interpreted using their saved scientific protocol.
FreeBindCraft is a separate tool based on an independently maintained fork. Its staged relaxation, repacking and optional ipSAE workflow differ from this conservative restrained-minimization protocol. Results from the two tools should be compared using their recorded methods and filter policies.
For an existing backbone, use ProteinMPNN for sequence redesign. For existing sequences, use AlphaFold 2 for structure prediction.
Genetic algorithm-based protein binder optimization using AlphaFold2 and ProteinMPNN
Design de novo protein binders for target surfaces using structure-guided sequence generation.
Target sequence-conditioned peptide binder design using masked language modeling
Design protein, peptide, and nanobody binders against protein or small-molecule targets.
Design VHH nanobody binders using structure-guided modeling.
Peptide binder design through binding interface mimicry with a latent diffusion model
Generate protein binder candidates with Proteina-Complexa binder design settings.
Protein design by backpropagation through AlphaFold
Small-molecule design against a protein target from purchasable chemical space.
Protein, peptide, nanobody and antibody binder design.