Protein–Ligand Co-Folding

Co-folding models predict the 3D structure of a biomolecular complex (whether protein, ligand, nucleic acid, or some mix of all three) directly from sequences and SMILES strings, without needing pre-existing structural data. Unlike traditional docking, which places a ligand into a fixed receptor, co-folding models predict the protein and its binding partners together, capturing induced-fit effects like side-chain rotation and loop movement that rigid-receptor methods miss entirely.

Rowan offers a full lineup of state-of-the-art co-folding models through one interface, so you can pick the right tool for a given target or run several side by side and compare.

Choosing a model

ModelNotesLigand affinityPPI affinityTemplates
Chai-1Strong performance on protein–protein complexes, nucleic acid–containing complexes, and single-sequence predictions without MSAsNoNoNo
Boltz-1Supports steering potentials to guide predictionsNoNoNo
Boltz-2Successor to Boltz-1, adding protein–ligand binding-affinity predictionYesNoYes
Boltz-2.1Closed-source successor to Boltz-2, adding protein–protein binding-affinity predictionYesYesYes
OpenFold3Strong performance on targets dissimilar from training dataNoNoYes

If you're not sure which to use, Boltz-2 is a reasonable default for most work thanks to its affinity head. OpenFold3 is a good second option, especially when your target looks unusual or your other predictions seem untrustworthy.

Rowan Boltz-2 result

View this calculation on Rowan

Co-folding in Rowan

Every co-folding prediction on Rowan shares the same underlying structure:

Performance

Despite their strengths, these models are known to struggle in certain cases. Independent benchmarks (such as the Runs N' Poses benchmark) have repeatedly shown that co-folding performance correlates strongly with similarity to each model's training data, and that allosteric or otherwise unusual binding modes remain difficult for every model in this class.

A benchmark comparing the performance of Chai-1, Boltz-1, Boltz-2, and OpenFold3

Co-folding models perform much better on complexes more similar to their training data.

As a result, co-folding is best treated as a fast, powerful hypothesis generator—not a replacement for experimental structures or more rigorous methods like free-energy perturbation.

Interested in seeing more results? Check out our compilation of external Boltz-2 benchmarks.

Python API

Co-folding jobs can be submitted directly from Python with rowan.submit_protein_cofolding_workflow. Here's a protein–ligand complex submitted with pose refinement turned on:

import rowan

folder = rowan.get_folder("examples")

workflow = rowan.submit_protein_cofolding_workflow(
    initial_protein_sequences=[
        "ASKGTSHEAGIVCRITKPALLVLNHETAKVIQTAFQRASYPDITGEKAMMLLGQVKYGLHNIQISHLSIASSQVELVEAKSIDVSIQDVSVVFKGTLKYGYTTAWWLGIDQSIDFEIDSAIDLQINTQLTADSGRVRTDAPDCYLSFHKLLLHLQGEREPGWIKQLFTNFISFTLKLVLKGQICKEINVISNIMADFVQTRAASILSDGDIGVDISLTGDPVITASYLESHHKGHFIYKDVSEDLPLPTFSPTLLGDSRMLYFWFSERVFHSLAKVAFQDGRLMLSLMGDEFKAVLETWGFNTNQEIFQEVVGGFPSQAQVTVHCLKMPKISCQNKGVVVDSSVMVKFLFPRPDQQHSVAYTFEEDIVTTVQASYSKKKLFLSLLDFQITPKTVSNLTESSSESIQSFLQSMITAVGIPEVMSRLEVVFTALMNSKGVSLFDIINPEIITRDGFLLLQMDFGFPEHLLVDFLQSLS"
    ],
    initial_smiles_list=[
        "CCOC(=O)N1c2ccc(C(F)(F)F)cc2[C@@H](N(Cc2cc(C(F)(F)F)cc(C(F)(F)F)c2)C(=O)OC)C[C@H]1CC"
    ],
    ligand_binding_affinity_index=0,
    name="Torcetrapib Cofolding",
    do_pose_refinement=True,
    compute_strain=False,
    folder=folder,
)

print(f"View workflow privately at: https://labs.rowansci.com/protein-cofolding/{workflow.uuid}")
result = workflow.result()
print(result)
# e.g. <ProteinCofoldingResult predictions=5 iptm=0.87>

By default this uses Boltz-2, but any model in the table above can be selected with the model argument (e.g. model=rowan.CofoldingModel.OPENFOLD_3). For more runnable examples, see our example scripts for:

Ready to try it out? Create a free Rowan account and predict your first complex today.