Skip to content

De novo binder design with BindCraft

Patchy edited this page Jul 1, 2025 · 23 revisions

De novo binder design with BindCraft

BindCraft is a computational pipeline that uses a structure of your target protein to generate a set of de novo designed binders. BindCraft was written to minimize user intervention and enable robust and automated design generation. Below we describe several best practices when running BindCraft, answer frequently asked questions, and provide tips for running and troubleshooting the protocol.


Installation

BindCraft runs only on Linux-based systems and requires either conda or mamba package manager to be installed. It can then be installed using a simple bash script, which creates a new conda environment with all required packages. During installation it is recommended to directly specify the necessary CUDA version. Majority of installation problems are caused by version inconsistencies between JAX and other packages, which needs to be addressed on each hardware system individually. If there are problems with conda environment activation, the path to the environment can be manually specified in the run script.

BindCraft utilizes several software packages for design generation, notably ColabDesign, ProteinMPNN, and PyRosetta. Commercial users have to obtain a license for installing and using PyRosetta. BindCraft was intended to run on an HPC cluster with Slurm job scheduling, however can easily be run on local installations using the provided bash or python script.

Hardware considerations

BindCraft requires a CUDA-compatible NVIDIA GPU to run. Alternatively, the code can be run using a Google Colab notebook. However, we note that it runs approximately 10-times slower even with high end GPUs compared to a local installation with the same hardware. Ideal GPUs for running BindCraft include L40, V100, A100, or H100. The limiting factor for design generation is the GPU memory size. The required memory scales semi-linearly with the number of residues in the input PDB plus the size of the binder. For reference, a 32 Gb card can fit about 550 residues (target + binder), an 80 Gb card can fit about 950 residues. Due to the underlying AlphaFold2 code, BindCraft cannot be parallelised across multiple GPUs. However, multiple instances of BindCraft jobs can be run on multiple GPUs, with job outputs into the same output folder to speed up design sampling.

A few terabytes of storage are recommended to store the model weights (5.3 Gb) and BindCraft structural model outputs. To save storage space, one can disable the output of analysis plots and animations, which comprise the majority of data generated. Generally, only one CPU core is required to run the script. There is no strict requirement for RAM size, however, we recommend at least 40 Gb, as sometimes either model compilation or certain PyRosetta features can cause out of memory errors, particularly for large complexes.

Getting started

To run BindCraft, the user selects a structure (experimental or predicted) in the PDB format as input, the size range of desired binders, and the number of final selected designs required. The user can additionally specify desired “hotspots”: residues on the target protein to be engaged by the binder. If no hotspots are defined, the pipeline will select an optimal binding mode based on multiple design criteria. More information regarding target preparation and hotspot selection is described in the section below.

After launching the script, BindCraft will run and perform all operations automatically until either the desired number of binders passing computational filters have been generated, or the design success rates are too low and the script terminates prematurely to avoid wasting computational resources. To accelerate the generation of designs, multiple instances of the same job can be launched into the same output folder. One should monitor the binders being generated throughout the design process, by looking at models inside of the Accepted folder. For instance, unsuitable designs (wrong target site, suboptimal fold, etc.) can be removed from the foldering during the design process, so that they are not considered for the final ranking and design count. Alternatively, one can end the design process early, by first killing all design jobs, setting the desired number of designs to a lower number than present in the Accepted folder, and running a single instance of the job to initiate reranking of the designs.

The optimal size of BindCraft-generated binders is between 60 and 180 amino acids, which results in traditionally folded and globular binders. The maximum size of reliably generated binders is currently 250 amino acids. BindCraft can also generate peptide binders in the range of 8-25 amino acids, which don’t have traditional hydrophobic and packed cores. Technically, the pipeline can generate peptides as short as 4 amino acids, but we almost never observe such peptides passing computational filters. For the generation of peptides, the advanced peptide settings and peptide filters need to be applied. We observed that success rates for certain targets can be length-dependent, therefore we recommend trying first a wide range of binder sizes, and subsequently to narrow it down after observing which size ranges commonly pass computational filters.

The default design settings and filters have been extensively optimized to apply to a wide variety of targets. Generally, we recommend running only those to achieve highest experimental success rates. We recommend monitoring the Accepted folder for a few hours and if no designs are passing filters it is probably worth changing the input PDB, hotspots, or selecting a different set of settings as described in sections below. The main difference in success rates will stem from the type of target input PDB being used (prediction vs experimental, different trimmings, different hotspots, etc.). Therefore, we recommend trying different types of input structures first to see which result in successful designs.

The speed at which designs are generated is determined by the overall size of the complex (number of amino acids in the target PDB + binder size being sampled), as well as the GPU type. For example, H100 is about 4 times faster than an A100 GPU. For reference, a 900 residue trajectory takes about 2-3 hours to be generated on an H100, while a 250 residue trajectory takes about 5 minutes. “Easy” targets require the sampling of only about 100 individual trajectories to get a sufficient number of designs passing computational filters, while difficult targets could require anywhere from 1000 to 10000 trajectories to be generated. In silico success rates for peptide designs are expected to be around 5-10 times lower. Accounting for the sampling speed, the design process can take anywhere from a few hours to several weeks on a single GPU, depending on the difficulty of the target and the size of the complex being generated. It is also entirely possible that no designs will pass computational filters for certain difficult targets or particular target sites.

Under the hood

BindCraft utilizes backpropagation through the AlphaFold2 multimer network to generate protein sequences predicted to bind to the target protein, guided by multiple design criteria/loss functions, as defined in the Methods. BindCraft employs multiple self-consistency checks, which ensure robust generation of plausible binder designs. Additionally, both the hallucination and prediction steps are performed in MSA-free/single sequence mode, which requires the model to rely on its learned “pseudo energy function” and protein structural principles rather than on co-evolutionary information, which would not be present in a de novo designed sequence. It first optimizes the binder sequence in “relaxed” (soft) sequence space, which enables the rapid exploration of a diverse sequence space. The sequence is then iteratively converted into a one hot encoding, which enables the designs to converge to a realistic protein sequence. As a first self-consistency check, we randomly swap between the five trained AlphaFold2 multimer models during the hallucination process, to avoid the sequence overfitting to a single model, and to converge to a sequence that can confidently be predicted by all five models. This results in a “trajectory”: the initial hallucinated binder model and sequence. Sometimes trajectories appear to “get worse” towards the conversion to a one-hot encoded sequence, with confidence metrics seemingly dropping, however, this simply indicates that this trajectory probably converged towards an adversarial sequence or did not fulfil other design criteria in addition to high confidence prediction (globularity, folding, etc.).

We and others have previously found the AlphaFold2 hallucinated sequences to be difficult to purify and characterize experimentally. Therefore, we utilize the sequence optimization network ProteinMPNN to optimize the core and surface composition of the binder. This additionally serves as a second self consistency check, as the hallucinated interface is preserved, and should be readily repredicted if robust enough to pass sequence optimization of non-interface regions. MPNN sequence optimization of the interface is also possible, as due to the backbone distance restraints the majority of the hallucinated interface will be preserved. We found, however, that certain electrostatic interactions can be lost, most likely due to the local amino acid neighbourhood-decoding nature of ProteinMPNN. We utilize the “soluble” MPNN weights for sequence redesign, which result in a primarily negatively charged surface of the binder. If a more neutral charge distribution is required, the “original” MPNN weights can be used.

The sequence optimized binder is next repredicted in a third self-consistency check. We utilize the AlphaFold2 monomer model for the final complex prediction. The monomer model was exclusively trained on single chain proteins, and was not trained on multi-chain complexes. Using this model to repredict the MPNN-optimized sequence ensures that the interface is sufficiently well-defined to be detected even by a model that has never been exposed to multimeric complexes. This makes the final filtering highly stringent and robust, but also implies that potentially viable binders may be filtered out at this stage. Additionally, we repredict the binder alone, without the target protein, to compare the structural difference in and outside the context of a complex. Lastly, PyRosetta interface scores are used to analyze the composition of the interface and to provide additional biophysical metrics for filtering.

Throughout the whole BindCraft design protocol we implemented multiple early termination checkpoints to facilitate faster design generation, such as during hallucination or prediction steps. Designs from each step are collected in individual folders (Trajectory → MPNN → Accepted) and the corresponding computational metrics and sequences are written into separate CSV files (trajectory_stats.csv → mpnn_design_stats.csv → final_design_stats.csv). Additionally, BindCraft generates visual animations of the hallucination process, as well as plots detailing the optimization of individual loss components throughout the trajectory generation. Custom loss functions can be easily added to guide the designs towards new design objectives.

Target preparation & Hotspot selection

The structure of the target protein must be provided in PDB format. The input structure can be either experimentally determined (NMR, CryoEM, Crystallography, etc.) or predicted (AlphaFold2, AlphaFold3, Boltz1, Rosetta, Molecular dynamics, etc.). We observed that different variations of a target structure (e.g. predicted vs experimental, different types of trimmings) can result in largely different in silico success rates, despite high structural similarity, so we recommend trying different inputs in parallel to see which results in highest success rates. Unfortunately, we have not observed any consistent preferences in the source of the target model. Commonly, we advise to use experimental structures as templates for AlphaFold2 prediction of the target, to fill in missing loops and segments that might be important for binding.

The input target can be either a single protein or even a multi-chain complex. However, since the size of the target influences how much memory and time is required to generate a binder trajectory we highly recommend trimming the input only to the parts necessary to facilitate correct binding. Flexible ends, flexible loops (if not required for binding), or domains and chains that are not being targeted should be removed from the target PDB. Sometimes even minor differences in trimming can result in significant differences in success rates, such as leaving or removing a few terminal residues in the structure. We recommend keeping the trimmed structures as realistic as possible, such as trimming at domain boundaries, or at hinge residues such as glycines or prolines. Hinge residues are usually located in domain-bordering loop regions and can be identified by either high B factors in experimental structures or low pLDDT values in predicted structures.

In certain cases it might not be possible to perform a “realistic” trimming of the target, such as at multi-chain interfaces or transmembrane proteins. BindCraft also supports “unrealistic” trims as input, i.e. protein structures that would not fold experimentally. For instance, in the case of GPCRs, the protein can be split along the membrane axis, such that each of the seven transmembrane helices becomes disconnected from the others. If the provided structural template includes sufficient surrounding context, it will preserve the integrity of the secondary structural elements. However, if only a few isolated loops or residues are present without a stabilizing structural core, they will lack the necessary constraints and are likely to be rearranged randomly. Ideally, such trimmings should not expose core hydrophobics and should still sufficiently represent the desired binding mode of the binder in the context of the full protein. We recommend performing these trimmings in either PyMOL or ChimeraX by selecting individual sections or residues. It is important to delete entire residues, and not to leave any residual atoms or residue parts, as this will result in an error.

Residues that should be targeted on the target protein are called hotspots. Hotspots can be defined in the target input .json file according to the residue numbering in the input PDB file. In single chain targets, hotspots can be either defined individually (“23,25,27,29,30”), as residue ranges (“23,25,27-30,35-45”), or left empty to let the pipeline determine an optimal binding site. In multichain inputs, the corresponding chain also needs to be defined (“A23,A25,A27-50,B45,B73,C24”) or entire chains can be selected as target sites (“A23,A37,B45,C”). We recommend defining several surface residues within a radial patch as hotspots, although individual residues are also acceptable in the case of well defined binding sites. We generally recommend targeting secondary structures, as opposed to loops, and hydrophobic residues with few rotameric states. Ideal target patches contain either a phenylalanine, tyrosine, tryptophan, isoleucine, leucine, or methionine at the binding site.

It is important to note that the user hotspot definition can be ignored if the choice of target site is suboptimal or if there is a significantly better binding site in the vicinity. This is because the hotspot contact loss is part of a larger composite loss function with multiple design goals to be satisfied, and therefore the pipeline will always try to generate a more optimal solution satisfying all criteria. If the user requires a specific set of hotspots to be targeted, there are multiple ways to guide it towards a different site. Firstly, the off-target site can be mutated to lysines in either Coot or PyMOL. We found lysines to be poorly targetable by BindCraft, presumably due to their high entropic penalty and underrepresentation at natural interfaces. Second strategy is to trim away the off-target region if possible. Lastly, an initial design trajectory where a binder is already covering the off-target site can be used as an input into a new design campaign to generate binders at the user selected site.

Advanced settings

There are many settings and elements that can be adjusted when running BindCraft. The provided default settings (prefixed with default_) have been extensively tested across several targets and conditions, and we consider them to be robust enough to be applied in most design campaigns. In addition, we provide optimized setting files to generate either beta sheeted proteins (betasheet_) that are enforced through a negative helicity loss. Lastly, custom settings have been optimized for the generation of peptide binders (peptide_). We generally do not recommend adjusting the relative loss function weights and settings.

However, there might be targets where these settings fail to provide satisfactory binders. We provide variations of all three advanced settings that extend the functionality and may rescue certain BindCraft campaigns. The “_mpnn” setting files additionally enable the interface sequence redesign using ProteinMPNN, which may be desirable in certain cases . The “_hardtarget” settings activate the use of initial guess-based complex prediction, which can rescue design with difficult to predict binding modes, although it may reduce overall experimental success rates. The “_flexible” settings permit larger structural movements of the target template to occur. This is achieved by masking the sequence from the input template, after which the backbone coordinates are no longer used as a hard constraint, which allows to preserve the overall fold but enable relative domain movement, movement of flexible loops, hinges, or disordered regions. Non-flexible settings also enable backbone and sidechain movement, but to a lesser extent and generally preserve the relative positioning of secondary structure elements. Lastly, for complexes above 600 amino acids, we recommend enabling the “predict_bigbang” setting, which facilitates a more efficient prediction of large complexes in the final stage.

Filtering

BindCraft utilizes a range of filters, based on deep learning metrics as predicted by AlphaFold2, as well as PyRosetta physics-based metrics. Generally, we find the set of default filters to be very robust and do not recommend changing or relaxing it, the exception being the use of peptide filters for peptide design. Another exception is disabling or relaxing the “Binder_RMSD” filter, which compares the backbone deviation of the binder in complex with the target protein and the binder alone. Higher RMSD might be desired for more conformationally flexible binders or peptides with induced fit. We consider the pLDDT, i_pTM and i_pAE AlphaFold2 filters to be most discriminative. However, we caution that NONE of the current computational metrics are predictive of affinity in any way.

Design selection

We generally recommend generating at least a 100 designs passing computational filters. Since design sampling is random, by generating more designs we can sample more interface diversity and increase chances of obtaining a successful design. Once the total number of request designs is reached, they will be ranked by the i_pTM score inside the final_design_stats.csv file and structural models will be copied into the “Accepted/Ranked” folder. We found i_pTM to be a good binary predictor of binding (i.e. binder or non-binder), however it is not predictive of affinity. Therefore, lower ranked designs could still have better affinity than higher ranked designs. The ranking is simply for prioritisation purposes, and all designs within the Accepted folder should be considered of high enough quality for experimental testing.

When sub selecting from the filtered designs, we recommend to first sample diverse interfaces, rather than multiple designs resulting from the same trajectory. Additionally, we recommend repredicting potential candidates in the context of the full biological complex, if such information is available, and confirm the absence of post-translational modifications at the target interface. We also recommend a final visual inspection of the designs in PyMOL or ChimeraX to exclude designs with high filtering scores but undesirable structural properties, such as wrong binding modes, too small interfaces, or poorly folded protein cores.

Finally, the ultimate test is experimental validation. The majority of BindCraft generated binders fall into the nanomolar range, and usually require only screening of 10 designs experimentally. If a picomolar binder is required, we recommend the screening of 50-100 designs. The binders are usually well behaved biochemically, can be readily purified from E.coli from small amounts of culture, and are highly thermostable.

Troubleshooting & common questions

  • Mismatched number of atoms during alignment

Check that your input target PDB does not have partial residues or orphan atoms left over from target trimming.

  • Binder does not target the intended hotspot

This is both a bug and a feature. The hotspot (contact) loss is only a part of the composite design function, and a successful design has to satisfy multiple criteria to be accepted, including the confidence of prediction. If the model determines there is a more suitable binding site in the area and it provides significantly better computational scores, it will place the binder there. This is an intended functionality, as it disallows forcing binders into unfavourable sites. If the targeting of a particular site is still desired, one can either do a more forceful trimming of the target, mutating the preferred site to lysines, or including a binder covering the site in the input model. Alternatively, in some cases, “_hardtarget” settings with initial guess prediction can help to correct this.