Most protein–ligand structure-prediction tools, like AlphaFold 3, Boltz-1, and Chai-1, stop at predicting the geometry of the resultant complex. Boltz-2 (preprint) goes further by predicting both structures and small-molecule binding affinity from sequence and SMILES, while supporting DNA and RNA partners. It builds on the cofolding ideas in Boltz-1, then adds a larger backbone, better controllability, and a dual affinity head. The result is a practical way to generate poses, prioritize compounds, and guide follow-up physics or experiments when speed matters.
Boltz-2 is similar to Boltz-1, but contains numerous enhancements and new capabilities (as well as some deleterious changes). Here's a brief overview:
Aspect | Boltz-1 | Boltz-2 |
---|---|---|
Structural engine | 48 PairFormer layers, 512-token crop | 64 layers, trifast kernels, 768-token crop |
Controllability | None | • Method conditioning (X-ray / NMR / MD) • Multi-chain template steering • Contact & pocket constraints |
Physics quality | Optional steering potential (Boltz-1x) | Optional steering potential (Boltz-2x) |
Affinity head | None | PairFormer-based dual head (probability + pIC50) |
MSA | Optional | Required |
Here's the authors' architecture diagram:
The architecture of Boltz-2 (Figure 2 from the preprint).
Several of these new features are incredibly powerful:
Unfortunately, Boltz-2 removes the ability to run inference without costly MSAs. If MSA-free inference is requested, consider using Boltz-1 or Chai-1 instead.
For more details about how Boltz-2 works, see our full Boltz-2 FAQ or the original preprint.
Cofolding is useful whenever a rigid receptor limits realism. Boltz-2 generates binding poses that include side chain and backbone motion, then attaches a confidence score and an affinity estimate. This is not a replacement for FEP or long-timescale MD, but it is a strong first pass that can prune search space and surface plausible chemotypes.
Here's a plot showing Boltz-2's accuracy in virtual screening, illustrating superior accuracy vs. other high-throughput binding-affinity-prediction methods:
Figure 7 from the Boltz-2 paper, comparing Boltz-2's affinity prediction to other low-cost methods.
Despite the myriad successes of Boltz-2, challenges remain:
Furthermore, there are concerns that the reported performance of Boltz-2 can in large part be attributed to train–test leakage, meaning that the performance on targets dissimilar to the training set will be much worse. (Here's a review from Karson Crispens and co-workers which alleges this.)
For a compilation of Boltz-2 benchmark results, see our external Boltz-2 benchmark page.
Through Rowan's web interface scientists can upload sequences and ligands, submit Boltz-2 jobs to GPU runners and our privately hosted MSA server, and analyze the resulting structures and predicted binding affinity—all totally free of charge. Rowan automatically applies a series of structural checks and filters to help scientists detect model failures or invalid results. Here's what a completed Boltz-2 prediction looks like on Rowan:
Boltz-2 calculations can also easily be submitted via Rowan's Python API, which is available for free to all Rowan users:
import rowan
rowan.api_key = "rowan-sk-asdf"
workflow = rowan.submit_protein_cofolding_workflow(
initial_protein_sequences=[
"MENFQKVEKIGEGTYGVVYKARNKLTGEVVALKKIRLDTETEGVPSTAIREISLLKELNHPNIVKLLDVIHTENKLYLVFEFLHQDLKKFMDASALTGIPLPLIKSYLFQLLQGLAFCHSHRVLHRDLKPQNLLINTEGAIKLADFGLARAFGVPVRTYTHEVVTLWYRAPEILLGCKYYSTAVDIWSLGCIFAEMVTRRALFPGDSEIDQLFRIFRTLGTPDEVVWPGVTSMPDYKPSFPKWARQDFSKVVPPLDEDGRSLLSQMLHYDPNKRISAKAALAHPFFQDVTKPVPHLRL"
],
initial_smiles_list=["CCC(C)CN=C1NCC2(CCCOC2)CN1"],
name="Boltz-2 cofolding job",
model="boltz_2",
ligand_binding_affinity_index=0,
)
workflow.wait_for_result()
workflow.fetch_latest(in_place=True)
print(workflow.data)
print(f"View the 3D structure on the web at labs.rowansci.com/protein-cofolding/{workflow.uuid}")
This prints the following data; the corresponding 3D structure can be viewed through Rowan's web interface.
{
'lddt': [0.779, 0.909, 0.958, 0.982, 0.979, 0.969, 0.975, 0.959, 0.952, 0.918, 0.885, 0.848, 0.828, 0.803, 0.824, 0.873, 0.912, 0.953, 0.975, 0.985, 0.987, 0.987, 0.978, 0.969, 0.928, 0.946, 0.976, 0.961, 0.984, 0.987, 0.979, 0.977, 0.959, 0.918, 0.889, 0.738, 0.69, 0.614, 0.533, 0.575, 0.578, 0.707, 0.763, 0.809, 0.841, 0.877, 0.904, 0.896, 0.923, 0.948, 0.941, 0.947, 0.952, 0.953, 0.963, 0.962, 0.961, 0.929, 0.969, 0.988, 0.988, 0.99, 0.986, 0.985, 0.985, 0.981, 0.98, 0.971, 0.967, 0.962, 0.909, 0.865, 0.825, 0.766, 0.864, 0.915, 0.964, 0.972, 0.983, 0.979, 0.965, 0.986, 0.985, 0.952, 0.976, 0.972, 0.989, 0.973, 0.973, 0.989, 0.987, 0.982, 0.981, 0.984, 0.977, 0.976, 0.964, 0.986, 0.989, 0.987, 0.989, 0.989, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.989, 0.989, 0.99, 0.988, 0.983, 0.989, 0.987, 0.976, 0.965, 0.974, 0.953, 0.979, 0.951, 0.95, 0.985, 0.972, 0.985, 0.945, 0.914, 0.989, 0.985, 0.989, 0.988, 0.986, 0.977, 0.989, 0.989, 0.99, 0.989, 0.987, 0.971, 0.906, 0.883, 0.876, 0.894, 0.882, 0.877, 0.845, 0.838, 0.814, 0.82, 0.779, 0.752, 0.776, 0.746, 0.678, 0.744, 0.783, 0.766, 0.808, 0.81, 0.928, 0.964, 0.983, 0.987, 0.975, 0.989, 0.989, 0.989, 0.978, 0.987, 0.99, 0.984, 0.979, 0.95, 0.967, 0.939, 0.986, 0.988, 0.99, 0.987, 0.989, 0.99, 0.99, 0.989, 0.99, 0.99, 0.99, 0.99, 0.99, 0.99, 0.989, 0.99, 0.989, 0.988, 0.987, 0.985, 0.986, 0.989, 0.989, 0.985, 0.983, 0.948, 0.967, 0.969, 0.987, 0.985, 0.986, 0.988, 0.989, 0.989, 0.99, 0.99, 0.989, 0.989, 0.989, 0.989, 0.99, 0.989, 0.988, 0.989, 0.986, 0.986, 0.99, 0.989, 0.989, 0.989, 0.989, 0.985, 0.987, 0.987, 0.988, 0.989, 0.989, 0.988, 0.989, 0.989, 0.989, 0.988, 0.989, 0.986, 0.986, 0.981, 0.95, 0.93, 0.974, 0.982, 0.979, 0.987, 0.974, 0.897, 0.989, 0.984, 0.985, 0.989, 0.99, 0.988, 0.988, 0.99, 0.99, 0.987, 0.99, 0.99, 0.99, 0.989, 0.989, 0.99, 0.989, 0.988, 0.987, 0.99, 0.99, 0.99, 0.99, 0.989, 0.99, 0.99, 0.99, 0.989, 0.99, 0.989, 0.99, 0.99, 0.987, 0.988, 0.989, 0.989, 0.988, 0.987, 0.972, 0.984, 0.945, 0.966, 0.901, 0.929, 0.502, 0.601, 0.671, 0.589, 0.677, 0.666, 0.735, 0.695, 0.671, 0.801, 0.71, 0.707, 0.733, 0.743, 0.738, 0.709, 0.69],
'model': 'boltz_2',
'scores': {'ptm': 0.974, 'iptm': 0.87, 'avg_lddt': 0.936, 'confidence_score': 0.923},
'messages': [],
'affinity_score': {'pred_value': 1.434, 'pred_value1': 2.226, 'pred_value2': 0.643, 'probability_binary': 0.045, 'probability_binary1': 0.034, 'probability_binary2': 0.056},
'use_msa_server': True,
'use_potentials': False,
'pocket_constraints': [],
'contact_constraints': [],
'initial_smiles_list': ['CCC(C)CN=C1NCC2(CCCOC2)CN1'],
'use_templates_server': False,
'predicted_structure_uuid': '7eb21671-eec8-450a-a64c-fbb46fdd758d',
'initial_protein_sequences': ['MENFQKVEKIGEGTYGVVYKARNKLTGEVVALKKIRLDTETEGVPSTAIREISLLKELNHPNIVKLLDVIHTENKLYLVFEFLHQDLKKFMDASALTGIPLPLIKSYLFQLLQGLAFCHSHRVLHRDLKPQNLLINTEGAIKLADFGLARAFGVPVRTYTHEVVTLWYRAPEILLGCKYYSTAVDIWSLGCIFAEMVTRRALFPGDSEIDQLFRIFRTLGTPDEVVWPGVTSMPDYKPSFPKWARQDFSKVVPPLDEDGRSLLSQMLHYDPNKRISAKAALAHPFFQDVTKPVPHLRL'],
'ligand_binding_affinity_index': 0
}
For a more complex example showing how to do a virtual screen in parallel with Boltz-2, see our example script on GitHub. Rowan automatically scales GPU-based compute to meet demand, making it possible to run hundreds or thousands of Boltz-2 jobs in just a few lines of code.
Ready to test a target or a series? Create a free Rowan account and start running Boltz-2 today.