BoltzGen is an all-atom diffusion-based binder design service that jointly generates protein or peptide backbone geometry and amino acid sequence to bind user-specified targets, including proteins, small molecules (via SMILES or CCD), and nucleic acids. The API exposes the model’s multi-entity design specification language (binding site masks, covalent bond and cyclization constraints, structure groups, and secondary-structure hints) and a configurable, GPU-accelerated pipeline (design, optional inverse folding, refolding with Boltz-2, affinity prediction for small molecules, and diversity-aware filtering) that returns ranked CIF structures and metrics such as ipTM, pTM, pAE, RMSD, buried surface area, and interaction counts for up to hundreds of designs per request.

Generate

Run the generate action for BoltzGen.

python
from biolmai import BioLM
response = BioLM(
    entity="boltzgen",
    action="generate",
    params={'protocol': 'protein-anything',
     'num_designs': 10,
     'budget': 2,
     'inverse_fold_num_sequences': 1},
    items=[{'entities': [{'protein': {'id': 'A',
                                'sequence': '120..140',
                                'cyclic': False}},
                   {'protein': {'id': 'B',
                                'sequence': 'GGGGGGGILPWKWPWWPWRRGGGGGGG',
                                'cyclic': False}}]}]
)
print(response)
bash
curl -X POST https://biolm.ai/api/v3/boltzgen/generate/ \
  -H "Authorization: Token YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "items": [
    {
      "entities": [
        {
          "protein": {
            "id": "A",
            "sequence": "120..140",
            "cyclic": false
          }
        },
        {
          "protein": {
            "id": "B",
            "sequence": "GGGGGGGILPWKWPWWPWRRGGGGGGG",
            "cyclic": false
          }
        }
      ]
    }
  ],
  "params": {
    "protocol": "protein-anything",
    "num_designs": 10,
    "budget": 2,
    "inverse_fold_num_sequences": 1
  }
}'
python
import requests

url = "https://biolm.ai/api/v3/boltzgen/generate/"
headers = {
    "Authorization": "Token YOUR_API_KEY",
    "Content-Type": "application/json"
}
payload = {
      "items": [
        {
          "entities": [
            {
              "protein": {
                "id": "A",
                "sequence": "120..140",
                "cyclic": false
              }
            },
            {
              "protein": {
                "id": "B",
                "sequence": "GGGGGGGILPWKWPWWPWRRGGGGGGG",
                "cyclic": false
              }
            }
          ]
        }
      ],
      "params": {
        "protocol": "protein-anything",
        "num_designs": 10,
        "budget": 2,
        "inverse_fold_num_sequences": 1
      }
    }

response = requests.post(url, headers=headers, json=payload)
print(response.json())
r
library(httr)

url <- "https://biolm.ai/api/v3/boltzgen/generate/"
headers <- c("Authorization" = "Token YOUR_API_KEY", "Content-Type" = "application/json")
body <- list(
  items = list(
    list(
      entities = list(
        list(
          protein = list(
            id = "A",
            sequence = "120..140",
            cyclic = FALSE
          )
        ),
        list(
          protein = list(
            id = "B",
            sequence = "GGGGGGGILPWKWPWWPWRRGGGGGGG",
            cyclic = FALSE
          )
        )
      )
    )
  ),
  params = list(
    protocol = "protein-anything",
    num_designs = 10,
    budget = 2,
    inverse_fold_num_sequences = 1
  )
)

res <- POST(url, add_headers(.headers = headers), body = body, encode = "json")
print(content(res))
POST /api/v3/boltzgen/generate/

Generate endpoint for BoltzGen.

Request Headers:

Request

  • params (object, optional) — Configuration parameters:

    • protocol (string, enum: [“protein-anything”, “peptide-anything”, “protein-small_molecule”, “nanobody-anything”], default: “protein-anything”) — Design protocol selection

    • steps (array of strings, optional) — Pipeline step names to run

    • num_designs (int, range: 1-500, default: 100) — Total number of designs to generate per item

    • budget (int, range: 1-500, default: 100) — Maximum number of designs to keep after filtering

    • diffusion_batch_size (int, optional, range: 1-100, default: null) — Per-step batch size for diffusion

    • step_scale (float, optional, range: 0.1-10.0, default: null) — Denoiser step scale factor

    • noise_scale (float, optional, range: 0.0-1.0, default: null) — Noise scale factor

    • inverse_fold_num_sequences (int, range: 1-10, default: 1) — Number of inverse-folded sequences per design

    • inverse_fold_avoid (string, optional) — Amino acid pattern to avoid in inverse folding

    • refolding_rmsd_threshold (float, optional, min: 0.0, default: null) — RMSD threshold for refolding-based filtering

    • alpha (float, optional, range: 0.0-1.0, default: null) — Quality-diversity trade-off parameter

    • filter_biased (bool, optional, default: null) — Filter bias toggle

    • additional_filters (array of strings, optional) — Extra metric filter expressions (format: “metric[><]=threshold”)

    • metrics_override (object, optional) — Metric name to override value mapping

    • resume_job_id (string, optional) — Identifier of a previous job to resume instead of providing items

  • items (array of objects, min: 1, max: 1, required unless resume_job_id set) — Design specification items:

    • entities (array of objects, min: 1, required) — Input entities:

      • protein (object, optional) — Protein entity:

        • id (string or array of strings, required) — Protein identifier(s)

        • sequence (string or int or object, required) — Sequence specification or length/config

        • cyclic (bool, default: false) — Cyclic flag

        • secondary_structure (array of objects, optional) — Secondary structure specifications:

          • chain (string or array of strings, required) — Chain identifier(s)

          • loop (string or int or array of [string or int], optional) — Loop residue indices

          • helix (string or int or array of [string or int], optional) — Helix residue indices

          • sheet (string or int or array of [string or int], optional) — Sheet residue indices

        • binding_types (string or array of objects, optional) — Binding site specifications:

          • chain (string or array of strings, required) — Chain identifier(s)

          • binding (string or int or array of [string or int], optional) — Binding residue indices

          • not_binding (string or int or array of [string or int], optional) — Non-binding residue indices

        • msa (int or string, optional) — Multiple sequence alignment setting

      • ligand (object, optional) — Ligand entity:

        • id (string or array of strings, required) — Ligand identifier(s)

        • ccd (string, optional) — Ligand CCD code

        • smiles (string, optional) — Ligand SMILES string

        • binding_types (string or array of objects, optional) — Binding site specifications:

          • chain (string or array of strings, required) — Chain identifier(s)

          • binding (string or int or array of [string or int], optional) — Binding residue indices

          • not_binding (string or int or array of [string or int], optional) — Non-binding residue indices

      • file (object, optional) — Structure file entity:

        • cif (string, optional, min length: 1, max length: 10000000) — mmCIF-formatted structure content

        • pdb (string, optional, min length: 1, max length: 10000000) — PDB-formatted structure content

        • include (array of objects, optional) — Chain and residue selections to include:

          • id (string or array of strings, required) — Chain identifier(s)

          • res_index (string or int or array of [string or int], optional) — Residue indices or ranges

        • exclude (array of objects, optional) — Chain and residue selections to exclude:

          • id (string or array of strings, required) — Chain identifier(s)

          • res_index (string or int or array of [string or int], optional) — Residue indices or ranges

        • include_proximity (array of objects, optional) — Proximity-based include specifications

        • binding_types (string or array of objects, optional) — Binding site specifications:

          • chain (string or array of strings, required) — Chain identifier(s)

          • binding (string or int or array of [string or int], optional) — Binding residue indices

          • not_binding (string or int or array of [string or int], optional) — Non-binding residue indices

        • structure_groups (array of objects, optional) — Structure group specifications:

          • group (object, required) — Group definition keyed by chain and residue indices

          • visibility (int, default: 1, range: 0-2) — Group visibility level

        • design (array of objects, optional) — Design region specifications:

          • chain (string or array of strings, required) — Chain identifier(s)

          • res_index (string or int or array of [string or int], optional) — Residue indices to design

        • not_design (array of objects, optional) — Non-design region specifications:

          • chain (string or array of strings, required) — Chain identifier(s)

          • res_index (string or int or array of [string or int], optional) — Residue indices not to design

        • secondary_structure (array of objects, optional) — Secondary structure specifications:

          • chain (string or array of strings, required) — Chain identifier(s)

          • loop (string or int or array of [string or int], optional) — Loop residue indices

          • helix (string or int or array of [string or int], optional) — Helix residue indices

          • sheet (string or int or array of [string or int], optional) — Sheet residue indices

        • design_insertions (array of objects, optional) — Design insertion specifications:

          • insertion (object, required) — Insertion definition with “id” and “res_index” keys

        • fuse (string, optional) — Fuse mode

        • use_assembly (bool, optional) — Assembly usage flag

        • reset_res_index (array of objects, optional) — Residue index reset specifications:

          • id (string or array of strings, required) — Chain identifier(s)

          • res_index (string or int or array of [string or int], optional) — Residue indices to reset

        • add_cyclization (array of objects, optional) — Cyclization specifications

        • msa (int or string, optional) — Multiple sequence alignment setting

      • dna (object, optional) — DNA entity specification

      • rna (object, optional) — RNA entity specification

    • constraints (array of objects, optional) — Global design constraints:

      • bond (object, optional) — Covalent bond constraint:

        • atom1 (array of [string or int], required) — First atom specification

        • atom2 (array of [string or int], required) — Second atom specification

      • contact (object, optional) — Contact distance constraint:

        • token1 (array of [string or int], required) — First token specification

        • token2 (array of [string or int], required) — Second token specification

        • max_distance (float, required) — Maximum allowed distance

      • pocket (object, optional) — Pocket constraint:

        • binder (string, required) — Binder identifier

        • contacts (array of arrays of [string or int], required) — Contact token specifications

        • max_distance (float, optional) — Maximum allowed distance

      • total_len (object, optional) — Total length constraint:

        • min (int, optional) — Minimum total length

        • max (int, optional) — Maximum total length

    • reset_res_index (array of objects, optional) — Residue index reset specifications at item level:

      • id (string or array of strings, required) — Chain identifier(s)

      • res_index (string or int or array of [string or int], optional) — Residue indices to reset

Example request:

http
POST /api/v3/boltzgen/generate/ HTTP/1.1
Host: biolm.ai
Authorization: Token YOUR_API_KEY
Content-Type: application/json

      {
  "items": [
    {
      "entities": [
        {
          "protein": {
            "id": "A",
            "sequence": "120..140",
            "cyclic": false
          }
        },
        {
          "protein": {
            "id": "B",
            "sequence": "GGGGGGGILPWKWPWWPWRRGGGGGGG",
            "cyclic": false
          }
        }
      ]
    }
  ],
  "params": {
    "protocol": "protein-anything",
    "num_designs": 10,
    "budget": 2,
    "inverse_fold_num_sequences": 1
  }
}
Status Codes:

Response

  • results (array of objects) — One result per input item, in the order requested:

    • cif (string) — Generated complex in mmCIF format, all atoms for target and designed entities

    • metrics (object, optional) — Scalar metrics computed for this design:

      • design_ptm (float, optional, range: 0.0–1.0) — Predicted TM-score of designed chain

      • design_iptm (float, optional, range: 0.0–1.0) — Predicted TM-score of designed chain vs target

      • design_to_target_iptm (float, optional, range: 0.0–1.0) — Predicted TM-score for designed residues vs target

      • design_iiptm (float, optional, range: 0.0–1.0) — Predicted TM-score for interface residues (≤8 Å) vs target

      • ptm (float, optional, range: 0.0–1.0) — Predicted TM-score of entire complex

      • iptm (float, optional, range: 0.0–1.0) — Predicted TM-score between chains in complex

      • interaction_pae (float, optional, units: Å) — Mean predicted aligned error over design–target residue pairs

      • min_design_to_target_pae (float, optional, units: Å) — Minimum predicted aligned error over design–target residue pairs

      • neg_min_design_to_target_pae (float, optional, units: -Å) — Negative of min_design_to_target_pae

      • filter_rmsd (float, optional, units: Å) — RMSD between generated and refolded complex used for filtering

      • filter_rmsd_design (float, optional, units: Å) — RMSD between generated and refolded designed region

      • designfolding-filter_rmsd (float, optional, units: Å) — RMSD between original design and design-only refold

      • plip_hbonds_refolded (float, optional) — Count of hydrogen bonds between design and target in refolded complex

      • plip_saltbridge_refolded (float, optional) — Count of salt bridges between design and target in refolded complex

      • delta_sasa_refolded (float, optional, units: Ų) — Buried solvent-accessible surface area upon binding, refolded complex

      • delta_sasa_original (float, optional, units: Ų) — Buried solvent-accessible surface area upon binding, original complex

      • bindsite_under_3rmsd (float, optional, range: 0.0–1.0) — Fraction of binding-site residues within 3 Å of design

      • bindsite_under_4rmsd (float, optional, range: 0.0–1.0) — Fraction of binding-site residues within 4 Å of design

      • bindsite_under_5rmsd (float, optional, range: 0.0–1.0) — Fraction of binding-site residues within 5 Å of design

      • bindsite_under_6rmsd (float, optional, range: 0.0–1.0) — Fraction of binding-site residues within 6 Å of design

      • bindsite_under_7rmsd (float, optional, range: 0.0–1.0) — Fraction of binding-site residues within 7 Å of design

      • bindsite_under_8rmsd (float, optional, range: 0.0–1.0) — Fraction of binding-site residues within 8 Å of design

      • bindsite_under_9rmsd (float, optional, range: 0.0–1.0) — Fraction of binding-site residues within 9 Å of design

      • design_chain_hydrophobicity (float, optional) — Hydrophobicity score over full designed chain

      • design_hydrophobicity (float, optional) — Hydrophobicity score over designed residues only

      • neg_design_hydrophobicity (float, optional) — Negative of design_hydrophobicity

      • design_largest_hydrophobic_patch_refolded (float, optional, units: Ų) — Area of largest hydrophobic surface patch in refolded design

      • num_design (float, optional) — Number of designed residues

      • ALA_fraction (float, optional, range: 0.0–1.0) — Fraction of alanine in designed sequence

      • ARG_fraction (float, optional, range: 0.0–1.0)

      • ASN_fraction (float, optional, range: 0.0–1.0)

      • ASP_fraction (float, optional, range: 0.0–1.0)

      • CYS_fraction (float, optional, range: 0.0–1.0)

      • GLN_fraction (float, optional, range: 0.0–1.0)

      • GLU_fraction (float, optional, range: 0.0–1.0)

      • GLY_fraction (float, optional, range: 0.0–1.0)

      • HIS_fraction (float, optional, range: 0.0–1.0)

      • ILE_fraction (float, optional, range: 0.0–1.0)

      • LEU_fraction (float, optional, range: 0.0–1.0)

      • LYS_fraction (float, optional, range: 0.0–1.0)

      • MET_fraction (float, optional, range: 0.0–1.0)

      • PHE_fraction (float, optional, range: 0.0–1.0)

      • PRO_fraction (float, optional, range: 0.0–1.0)

      • SER_fraction (float, optional, range: 0.0–1.0)

      • THR_fraction (float, optional, range: 0.0–1.0)

      • TRP_fraction (float, optional, range: 0.0–1.0)

      • TYR_fraction (float, optional, range: 0.0–1.0)

      • VAL_fraction (float, optional, range: 0.0–1.0)

      • UNK_fraction (float, optional, range: 0.0–1.0) — Fraction of unknown residues

      • loop (float, optional, range: 0.0–1.0) — Fraction of loop residues

      • helix (float, optional, range: 0.0–1.0) — Fraction of helical residues

      • sheet (float, optional, range: 0.0–1.0) — Fraction of β-sheet residues

      • liability_score (float, optional) — Aggregate developability liability score

      • liability_num_violations (float, optional) — Total count of detected liability motifs

      • liability_high_severity_violations (float, optional) — Count of high-severity liabilities

      • liability_medium_severity_violations (float, optional) — Count of medium-severity liabilities

      • liability_low_severity_violations (float, optional) — Count of low-severity liabilities

      • affinity_probability_binary1 (float, optional, range: 0.0–1.0) — Predicted probability of binding (small-molecule protocols)

      • final_rank (float, optional) — Rank index after quality-diversity selection (1 = best)

      • num_filters_passed (float, optional) — Number of filter criteria satisfied

      • pass_filters (float, optional, values: 0.0 or 1.0) — Filter pass indicator

      • liability_violations_summary (float, optional) — Encoded summary of liability violations

      • liability_details (float, optional) — Encoded aggregate details string for liabilities

      • liability_HydroPatch_count (float, optional) — Count of hydrophobic patch liabilities

      • liability_HydroPatch_num_positions (float, optional) — Number of positions in HydroPatch motifs

      • liability_HydroPatch_length (float, optional) — Length of longest HydroPatch motif

      • liability_HydroPatch_severity (float, optional) — Severity score for HydroPatch

      • liability_HydroPatch_avg_severity (float, optional) — Mean severity over HydroPatch instances

      • liability_DPP4_count (float, optional) — Count of DPP4 cleavage motifs

      • liability_DPP4_num_positions (float, optional) — Number of positions in DPP4 motifs

      • liability_DPP4_length (float, optional) — Length of longest DPP4 motif

      • liability_DPP4_severity (float, optional) — Severity score for DPP4

      • liability_DPP4_avg_severity (float, optional) — Mean severity over DPP4 instances

      • liability_MetOx_count (float, optional) — Count of methionine oxidation motifs

      • liability_MetOx_num_positions (float, optional) — Number of positions in MetOx motifs

      • liability_MetOx_length (float, optional) — Length of longest MetOx motif

      • liability_MetOx_severity (float, optional) — Severity score for MetOx

      • liability_MetOx_avg_severity (float, optional) — Mean severity over MetOx instances

      • design_ptm>0.75 (float, optional, values: 0.0 or 1.0) — Indicator for design_ptm threshold 0.75

      • design_ptm>0.8 (float, optional, values: 0.0 or 1.0) — Indicator for design_ptm threshold 0.8

      • design_iptm>0.5 (float, optional, values: 0.0 or 1.0) — Indicator for design_iptm threshold 0.5

      • design_iptm>0.6 (float, optional, values: 0.0 or 1.0) — Indicator for design_iptm threshold 0.6

      • design_iptm>0.7 (float, optional, values: 0.0 or 1.0) — Indicator for design_iptm threshold 0.7

      • design_iptm>0.8 (float, optional, values: 0.0 or 1.0) — Indicator for design_iptm threshold 0.8

    • sequence (string, optional) — Designed amino-acid sequence (one-letter codes) for the binder chain(s)

  • job_id (string, optional) — Identifier for this design job, for resuming or polling

  • completed_steps (array of strings, optional) — Names of pipeline steps completed for this job

  • remaining_steps (array of strings, optional) — Names of pipeline steps not yet executed for this job

  • is_complete (boolean) — Indicates whether all requested pipeline steps have finished

Example response:

http
HTTP/1.1 200 OK
Content-Type: application/json

      {
  "results": [
    {
      "cif": "data_model\n_entry.id model\n\n_cell.entry_id model\n_cell.length_a 1\n_cell.length_b 1\n_cell.length_c 1\n_cell.angle_alpha 90\n_cell.angle_beta 90\n_cell.angle_gamma 90\n\n_symmetry.entry_id model\n_symmetry.sp... (truncated for documentation)",
      "metrics": {
        "final_rank": 1.0,
        "num_design": 133.0,
        "design_to_target_iptm": 0.40756,
        "min_design_to_target_pae": 7.24204,
        "design_ptm": 0.79337,
        "filter_rmsd": 4.73593,
        "designfolding-filter_rmsd": 1.52069,
        "plip_hbonds_refolded": 3.0,
        "delta_sasa_refolded": 964.63489,
        "design_largest_hydrophobic_patch_refolded": 1867.59106,
        "design_chain_hydrophobicity": 51.8451,
        "design_hydrophobicity": 51.8451,
        "loop": 0.13534,
        "helix": 0.86466,
        "sheet": 0.0,
        "num_prot_tokens": 160.0,
        "num_lig_atoms": 0.0,
        "num_resolved_tokens": 160.0,
        "num_tokens": 160.0,
        "UNK_fraction": 0.0,
        "GLY_fraction": 0.07519,
        "ALA_fraction": 0.28571,
        "CYS_fraction": 0.0,
        "SER_fraction": 0.03759,
        "PRO_fraction": 0.02256,
        "THR_fraction": 0.01504,
        "VAL_fraction": 0.09023,
        "ILE_fraction": 0.06767,
        "ASN_fraction": 0.0,
        "ASP_fraction": 0.08271,
        "LEU_fraction": 0.11278,
        "MET_fraction": 0.00752,
        "GLN_fraction": 0.00752,
        "GLU_fraction": 0.08271,
        "LYS_fraction": 0.04511,
        "HIS_fraction": 0.0,
        "PHE_fraction": 0.0,
        "ARG_fraction": 0.05263,
        "TYR_fraction": 0.01504,
        "TRP_fraction": 0.0,
        "liability_score": 170.0,
        "liability_num_violations": 18.0,
        "liability_high_severity_violations": 16.0,
        "liability_medium_severity_violations": 2.0,
        "liability_low_severity_violations": 0.0,
        "liability_ProtTryp_count": 0.0,
        "liability_MetOx_count": 0.0,
        "liability_TrpOx_count": 0.0,
        "liability_HydroPatch_count": 0.0,
        "liability_ProtTryp_position": -1.0,
        "liability_ProtTryp_length": 0.0,
        "liability_ProtTryp_severity": 0.0,
        "liability_ProtTryp_num_positions": 13.0,
        "liability_ProtTryp_avg_severity": 10.0,
        "liability_AspCleave_count": 0.0,
        "liability_AspCleave_position": -1.0,
        "liability_AspCleave_length": 0.0,
        "liability_AspCleave_severity": 0.0,
        "liability_AspCleave_num_positions": 3.0,
        "liability_AspCleave_avg_severity": 10.0,
        "liability_AspBridge_count": 0.0,
        "liability_AspBridge_position": -1.0,
        "liability_AspBridge_length": 0.0,
        "liability_AspBridge_severity": 0.0,
        "liability_AspBridge_num_positions": 0.0,
        "liability_AspBridge_avg_severity": 0.0,
        "liability_HydroPatch_position": 116.0,
        "liability_HydroPatch_length": 3.0,
        "liability_HydroPatch_severity": 5.0,
        "liability_HydroPatch_num_positions": 0.0,
        "liability_HydroPatch_avg_severity": 0.0,
        "liability_NTCycl_count": 0.0,
        "liability_NTCycl_position": -1.0,
        "liability_NTCycl_length": 0.0,
        "liability_NTCycl_severity": 0.0,
        "liability_NTCycl_num_positions": 0.0,
        "liability_NTCycl_avg_severity": 0.0,
        "liability_MetOx_position": 63.0,
        "liability_MetOx_length": 1.0,
        "liability_MetOx_severity": 5.0,
        "liability_MetOx_num_positions": 0.0,
        "liability_MetOx_avg_severity": 0.0,
        "liability_DPP4_count": 0.0,
        "liability_DPP4_position": -1.0,
        "liability_DPP4_length": 0.0,
        "liability_DPP4_severity": 0.0,
        "liability_DPP4_num_positions": 0.0,
        "liability_DPP4_avg_severity": 0.0,
        "liability_TrpOx_position": -1.0,
        "liability_TrpOx_length": 0.0,
        "liability_TrpOx_severity": 0.0,
        "liability_TrpOx_num_positions": 0.0,
        "liability_TrpOx_avg_severity": 0.0,
        "native_rmsd": 0.0,
        "native_rmsd_bb": 0.0,
        "native_rmsd_refolded": 0.0,
        "native_rmsd_bb_refolded": 0.0,
        "designfolding-bb_rmsd": 1.52069,
        "designfolding-bb_rmsd_design": 1.52069,
        "designfolding-ligand_iptm": 0.0,
        "designfolding-interaction_pae": 0.0,
        "designfolding-min_interaction_pae": 100000.25,
        "designfolding-min_design_to_target_pae": 100000.25,
        "designfolding-iptm": 0.0,
        "designfolding-ptm": 0.80663,
        "designfolding-protein_iptm": 0.0,
        "designfolding-design_iptm": 0.0,
        "designfolding-design_iiptm": 0.0,
        "designfolding-design_to_target_iptm": 0.0,
        "designfolding-target_ptm": 0.0,
        "designfolding-design_ptm": 0.80663,
        "bb_rmsd": 4.73593,
        "bb_rmsd_design": 0.7096,
        "bb_rmsd_target": 7.24907,
        "bb_rmsd_design_target": 23.63116,
        "bb_target_aligned_rmsd_design": 23.63116,
        "ligand_iptm": 0.0,
        "interaction_pae": 14.265,
        "min_interaction_pae": 7.24204,
        "iptm": 0.40756,
        "ptm": 0.72827,
        "protein_iptm": 0.40756,
        "design_iptm": 0.40756,
        "design_iiptm": 0.40756,
        "target_ptm": 0.50728,
        "design_sasa_unbound_refolded": 2334.18213,
        "design_sasa_bound_refolded": 1369.54724,
        "plip_saltbridge_refolded": 2.0,
        "filter_rmsd_design": 0.7096,
        "neg_min_design_to_target_pae": -7.24204,
        "neg_design_hydrophobicity": -51.8451,
        "neg_design_largest_hydrophobic_patch_refolded": -1867.59106,
        "neg_min_interaction_pae": -7.24204,
        "num_filters_passed": 1.0,
        "design_iiptm_z": 0.2326988041089462,
        "design_ptm_z": 3.3028121065669005,
        "min_design_to_target_pae_z": -0.3683211479464262,
        "design_hydrophobicity_z": 1.042418780448512,
        "design_largest_hydrophobic_patch_refolded_z": 2.858983007033759,
        "delta_sasa_refolded_z": -0.785269633935079,
        "plip_saltbridge_refolded_z": 0.1319642406412137,
        "plip_hbonds_refolded_z": -0.919885955436252,
        "absolute_score": 0.0258702163093565,
        "structure_confidence": 0.900970402135529,
        "rank_design_to_target_iptm": 2.0,
        "rank_design_ptm": 1.0,
        "rank_neg_min_design_to_target_pae": 2.0,
        "rank_plip_hbonds_refolded": 0.5,
        "rank_plip_saltbridge_refolded": 0.5,
        "rank_delta_sasa_refolded": 2.5,
        "max_rank": 2.5,
        "secondary_rank": 1.0,
        "quality_score": 1.0
      },
      "sequence": "SAEDVVAAAIAALEEVLELATDPEVRAGIERILAIVRAAAASGDYDGGARAAADAGLASDSDMVRAAATLAAAGLAAAGALRRGDYDAAIKVVELALEQVKEALALGAISPEIAEVLIKGLKDILDVVKAAKP"
    },
    {
      "cif": "data_model\n_entry.id model\n\n_cell.entry_id model\n_cell.length_a 1\n_cell.length_b 1\n_cell.length_c 1\n_cell.angle_alpha 90\n_cell.angle_beta 90\n_cell.angle_gamma 90\n\n_symmetry.entry_id model\n_symmetry.sp... (truncated for documentation)",
      "metrics": {
        "final_rank": 2.0,
        "num_design": 140.0,
        "design_to_target_iptm": 0.41749,
        "min_design_to_target_pae": 6.57895,
        "design_ptm": 0.78938,
        "filter_rmsd": 6.18054,
        "designfolding-filter_rmsd": 0.60658,
        "plip_hbonds_refolded": 1.0,
        "delta_sasa_refolded": 1383.30737,
        "design_largest_hydrophobic_patch_refolded": 2173.64209,
        "design_chain_hydrophobicity": 57.0204,
        "design_hydrophobicity": 57.0204,
        "loop": 0.19286,
        "helix": 0.76429,
        "sheet": 0.04286,
        "num_prot_tokens": 167.0,
        "num_lig_atoms": 0.0,
        "num_resolved_tokens": 167.0,
        "num_tokens": 167.0,
        "UNK_fraction": 0.0,
        "GLY_fraction": 0.07857,
        "ALA_fraction": 0.21429,
        "CYS_fraction": 0.0,
        "SER_fraction": 0.02143,
        "PRO_fraction": 0.05,
        "THR_fraction": 0.05714,
        "VAL_fraction": 0.1,
        "ILE_fraction": 0.05,
        "ASN_fraction": 0.0,
        "ASP_fraction": 0.03571,
        "LEU_fraction": 0.12143,
        "MET_fraction": 0.03571,
        "GLN_fraction": 0.01429,
        "GLU_fraction": 0.12143,
        "LYS_fraction": 0.0,
        "HIS_fraction": 0.02857,
        "PHE_fraction": 0.00714,
        "ARG_fraction": 0.05714,
        "TYR_fraction": 0.00714,
        "TRP_fraction": 0.0,
        "liability_score": 115.0,
        "liability_num_violations": 15.0,
        "liability_high_severity_violations": 8.0,
        "liability_medium_severity_violations": 7.0,
        "liability_low_severity_violations": 0.0,
        "liability_ProtTryp_count": 0.0,
        "liability_MetOx_count": 0.0,
        "liability_TrpOx_count": 0.0,
        "liability_HydroPatch_count": 0.0,
        "liability_ProtTryp_position": -1.0,
        "liability_ProtTryp_length": 0.0,
        "liability_ProtTryp_severity": 0.0,
        "liability_ProtTryp_num_positions": 8.0,
        "liability_ProtTryp_avg_severity": 10.0,
        "liability_AspCleave_count": 0.0,
        "liability_AspCleave_position": -1.0,
        "liability_AspCleave_length": 0.0,
        "liability_AspCleave_severity": 0.0,
        "liability_AspCleave_num_positions": 0.0,
        "liability_AspCleave_avg_severity": 0.0,
        "liability_AspBridge_count": 0.0,
        "liability_AspBridge_position": -1.0,
        "liability_AspBridge_length": 0.0,
        "liability_AspBridge_severity": 0.0,
        "liability_AspBridge_num_positions": 0.0,
        "liability_AspBridge_avg_severity": 0.0,
        "liability_HydroPatch_position": -1.0,
        "liability_HydroPatch_length": 0.0,
        "liability_HydroPatch_severity": 0.0,
        "liability_HydroPatch_num_positions": 2.0,
        "liability_HydroPatch_avg_severity": 5.0,
        "liability_NTCycl_count": 0.0,
        "liability_NTCycl_position": -1.0,
        "liability_NTCycl_length": 0.0,
        "liability_NTCycl_severity": 0.0,
        "liability_NTCycl_num_positions": 0.0,
        "liability_NTCycl_avg_severity": 0.0,
        "liability_MetOx_position": -1.0,
        "liability_MetOx_length": 0.0,
        "liability_MetOx_severity": 0.0,
        "liability_MetOx_num_positions": 5.0,
        "liability_MetOx_avg_severity": 5.0,
        "liability_DPP4_count": 0.0,
        "liability_DPP4_position": -1.0,
        "liability_DPP4_length": 0.0,
        "liability_DPP4_severity": 0.0,
        "liability_DPP4_num_positions": 0.0,
        "liability_DPP4_avg_severity": 0.0,
        "liability_TrpOx_position": -1.0,
        "liability_TrpOx_length": 0.0,
        "liability_TrpOx_severity": 0.0,
        "liability_TrpOx_num_positions": 0.0,
        "liability_TrpOx_avg_severity": 0.0,
        "native_rmsd": 0.0,
        "native_rmsd_bb": 0.0,
        "native_rmsd_refolded": 0.0,
        "native_rmsd_bb_refolded": 0.0,
        "designfolding-bb_rmsd": 0.60658,
        "designfolding-bb_rmsd_design": 0.60658,
        "designfolding-ligand_iptm": 0.0,
        "designfolding-interaction_pae": 0.0,
        "designfolding-min_interaction_pae": 100000.25,
        "designfolding-min_design_to_target_pae": 100000.25,
        "designfolding-iptm": 0.0,
        "designfolding-ptm": 0.78491,
        "designfolding-protein_iptm": 0.0,
        "designfolding-design_iptm": 0.0,
        "designfolding-design_iiptm": 0.0,
        "designfolding-design_to_target_iptm": 0.0,
        "designfolding-target_ptm": 0.0,
        "designfolding-design_ptm": 0.78491,
        "bb_rmsd": 6.18054,
        "bb_rmsd_design": 0.83462,
        "bb_rmsd_target": 8.06095,
        "bb_rmsd_design_target": 17.39703,
        "bb_target_aligned_rmsd_design": 17.39703,
        "ligand_iptm": 0.0,
        "interaction_pae": 15.67621,
        "min_interaction_pae": 6.57895,
        "iptm": 0.41749,
        "ptm": 0.72828,
        "protein_iptm": 0.41749,
        "design_iptm": 0.41749,
        "design_iiptm": 0.41749,
        "target_ptm": 0.4535,
        "design_sasa_unbound_refolded": 3103.86987,
        "design_sasa_bound_refolded": 1720.5625,
        "plip_saltbridge_refolded": 0.0,
        "filter_rmsd_design": 0.83462,
        "neg_min_design_to_target_pae": -6.57895,
        "neg_design_hydrophobicity": -57.0204,
        "neg_design_largest_hydrophobic_patch_refolded": -2173.64209,
        "neg_min_interaction_pae": -6.57895,
        "num_filters_passed": 1.0,
        "design_iiptm_z": 0.3261840702272029,
        "design_ptm_z": 3.207643023662551,
        "min_design_to_target_pae_z": -0.539911171095474,
        "design_hydrophobicity_z": 1.7264645905692275,
        "design_largest_hydrophobic_patch_refolded_z": 3.55404811294779,
        "delta_sasa_refolded_z": 0.027911932903224,
        "plip_saltbridge_refolded_z": -0.9109110110510452,
        "plip_hbonds_refolded_z": -1.3686429192793437,
        "absolute_score": 0.0230465863290316,
        "structure_confidence": 0.987966701261581,
        "rank_design_to_target_iptm": 1.0,
        "rank_design_ptm": 2.0,
        "rank_neg_min_design_to_target_pae": 1.0,
        "rank_plip_hbonds_refolded": 4.0,
        "rank_plip_saltbridge_refolded": 2.5,
        "rank_delta_sasa_refolded": 0.5,
        "max_rank": 4.0,
        "secondary_rank": 2.0,
        "quality_score": 0.8888888888888888
      },
      "sequence": "MTPEEMEELGLEAVDIVDEHGATPEGMLIAARELLARYPDAPEIGVDEALAIVEEVLAGFTDHPEAMAAAVAVVRTHLGGQARAAGLTTVPVEILLAAVATAALAALSLVLSPEAARARTREIMAAVGRALGEHLQSVGI"
    }
  ],
  "job_id": "26b7a7d8-f155-4109-ac4b-48538e2978a8",
  "completed_steps": [
    "design",
    "inverse_folding",
    "... (truncated for documentation)"
  ],
  "remaining_steps": [],
  "is_complete": true
}

Performance

  • Relative model capabilities and deployment behavior - BoltzGen is a joint structure+sequence generative model that integrates inverse folding (BoltzIF) and refolding/affinity prediction (Boltz-2) in one pipeline - The BioLM deployment keeps these stages tightly coupled, so every returned design has already been refolded and scored with the same Boltz-2 stack exposed as a standalone prediction API - Compared to running RFdiffusion-style backbones plus ProteinMPNN plus a separate predictor, the end-to-end BoltzGen pipeline is more computationally intensive per design but eliminates cross-model glue code and inconsistent scoring

  • Accuracy vs. other BioLM generative models - Versus RFdiffusion3-class backbone generators, BoltzGen’s motif scaffolding benchmark performance shows more “unique successes” under standard RMSD/pLDDT cutoffs, reflecting better enforcement of structural constraints - On target-conditioned design across ~110 targets, successful BoltzGen designs have higher structural diversity (Vendi score) than RFdiffusion/RFdiffusionAA while remaining target-dependent, indicating less collapse to target-agnostic scaffolds - In folding-only mode, BoltzGen matches Boltz-2 lDDT on the Boltz-2 test set (except very large complexes), so using the generative trunk does not materially reduce structure-prediction accuracy

  • Experimental hit rates vs. prediction-only models - For novel protein targets without close bound homologs in the PDB, BoltzGen yields nanomolar binders for ~66% of tested targets (nanobodies and minibinders, ≤15 designs per target), whereas AlphaFold2/ESMFold-class predictors would require additional search or docking to achieve comparable hits - On benchmark targets with known training homologs, BoltzGen achieves nM–pM binders on 4/5 targets for both nanobodies and proteins, matching or exceeding reported RFdiffusion+ProteinMPNN workflows at similar experimental budgets - Across peptide, small-molecule, and intracellular/disordered targets, observed wet-lab hit fractions (e.g., 19.5% GyrA growth inhibitors; 5/6 rucaparib binders) demonstrate that BioLM’s default pipeline configuration translates computational scores into experimentally tractable candidate sets

  • Structural self-consistency and designability - Designs that pass BioLM’s default filters typically show backbone RMSD < 2–2.5 Å between BoltzGen outputs and Boltz-2 refolds and interface-focused ipTM comparable to high-confidence Boltz-2 complex predictions - BoltzIF’s inverse-folding performance (refolding designability and hydrophobic patch statistics) is on par with ProteinMPNN/SolubleMPNN for both native and designed backbones, so internal sequence generation does not compromise foldability - A known failure mode is overuse of ubiquitin-like scaffolds at lengths 73–76; for this narrow window, users should expect reduced structural diversity relative to other length ranges

  • Practical guidance within the BioLM suite - Use BoltzGen when the goal is de novo, target-aware binder creation with integrated structural validation and ranking, especially for novel or structurally challenging targets - For rapid evaluation or ranking of existing sequences, Boltz-2 or AlphaFold-class APIs are faster and cheaper, since they omit the diffusion and inverse-folding stages and reuse the same refolding/affinity components that BoltzGen calls internally

Applications

  • De novo protein binder design against difficult therapeutic protein targets (cytokines, receptors, viral proteins), using BoltzGen’s all-atom diffusion model to generate binders that are structurally complementary to a specified surface and then ranking them via the integrated Boltz-2 refolding and scoring steps; this is useful for companies replacing or augmenting antibody programs with smaller scaffolds (miniproteins, non-IgG binders) when display libraries are slow or have not yielded hits

  • Nanobody CDR redesign for next-generation biologics, by fixing a validated VHH framework (supplied via structure groups in the API) and using BoltzGen’s generative model to redesign only CDR regions around a new antigen structure, while preserving developable scaffolds; this is suited to teams that already have manufacturable nanobody backbones and want to rapidly retarget them to new variants or indications, but is not optimal when only sequence-level target information is available and no reasonable structural model exists

  • Cyclic and disulfide-stapled peptide binders targeting protein–protein interaction sites, leveraging BoltzGen’s covalent bond constraints (e.g., head-to-tail links, intra-peptide disulfides) and learned interface geometry to design conformationally pre-organized peptides that bury substantial surface area on flat or shallow sites; pharma or platform biotech can use this to generate protease-resistant PPI antagonists or toxin-neutralizing peptides, with the caveat that very short peptides or membrane-embedded epitopes remain challenging because training is primarily on soluble, structured complexes

  • Protein pocket design for small-molecule binding, where the API builds an all-atom protein binder around a specified ligand (via SMILES or CCD) and then uses inverse folding plus Boltz-2 affinity prediction to propose ligand-binding proteins as biosensor heads, targeted delivery components, or starting points for de novo small-molecule binders; this is particularly useful when high-specificity binders are needed for known chemotypes, though the model does not optimize catalytic transition states and should not be used as an out-of-the-box enzyme design solution

  • Design of intracellular inhibitory peptides and miniproteins to modulate essential protein–protein interfaces (for example, bacterial gyrase C-gate or growth-factor receptor interfaces), by conditioning BoltzGen on a defined interface patch and generating short, target-complementary binders whose sequences are then filtered for refolding consistency and interface quality; this enables companies working on antimicrobial or targeted degradation strategies to go beyond motif scanning and rational mutagenesis, while downstream properties such as cell permeability, expression strategy, and off-target assessment still require additional modeling and experimental work beyond what BoltzGen directly provides

Limitations

  • Input size and batching constraints: Each request accepts at most one design specification in items (BoltzGenParams.batch_size = 1). The total number of residues across all entities in a request must not exceed BoltzGenParams.max_sequence_len = 2048. Complexes or multi-chain systems above this limit must be truncated, cropped, or split across multiple API calls.

  • Design campaign scale vs. runtime: The diffusion-based design step is computationally expensive. BoltzGenDesignParams.num_designs is limited to 1..500 per request, and budget (final number of returned designs) is constrained to 1..500. Increasing num_designs improves coverage but also increases wall-clock time; designs are generated sequentially within a request and the API does not parallelize across items.

  • Protocol- and modality-specific fit: The protocol option ("protein-anything", "peptide-anything", "protein-small_molecule", "nanobody-anything") is tuned for soluble, structured proteins, peptides, and common binder modalities. Performance is typically poor for membrane proteins, very long intrinsically disordered regions, or systems dominated by multi-state/allosteric behavior. Full IgG antibodies cannot be used directly as design scaffolds; for antibody-like designs, use "nanobody-anything" with a VHH/Nb scaffold and define CDR regions via file.design and secondary_structure.

  • Constraint and selector sensitivity: Fine-grained control depends on correct use of selectors such as BoltzGenChainSelector, BoltzGenDesignSpec, and BoltzGenBindingType. Errors in chain.id or res_index (for example, misaligned PDB/mmCIF numbering, off-by-one ranges, or invalid strings that do not match the N..M / all pattern) will cause the model to ignore intended binding sites, CDRs, or cyclization patterns without raising API errors. BoltzGenConstraint entries (bond, contact, pocket, total_len) are only checked for schema validity, not biological feasibility; impossible or conflicting constraints can degrade design quality or lead to most designs being filtered out.

  • Scientific and model coverage limits: BoltzGen is trained mainly on PDB-like, soluble complexes and uses an all-atom but geometry-encoded representation for designed residues. It does not explicitly model solvent, membranes, cofactors beyond those provided via ligand entities, or catalytic transition states. Designed binders may refold well and score highly in the internal metrics but still fail experimentally due to expression, aggregation, immunogenicity, off-target binding, or incorrect binding mode. External validation and downstream filters (for example, stability or developability models applied to BoltzGenDesignResult.sequence and structure) remain necessary.

  • Generative stochasticity and reproducibility: The diffusion process is stochastic, and the API does not expose a global random seed. Repeated BoltzGenDesignRequest calls with identical entities, constraints, and params will generate different cif, sequence, and metrics outputs. Options such as metrics_override and additional_filters affect only ranking and filtering, not the underlying generation. Users who need reproducibility should store both request parameters and the full metrics/outputs externally and treat the service as a stochastic sampler rather than a deterministic optimizer.

How We Use It

BioLM integrates BoltzGen as a configurable binder design module within larger protein and peptide engineering workflows. We use it to generate diverse nanobody, miniprotein, and cyclic peptide binders against protein, peptide, and small-molecule targets, then pass those candidates through standardized downstream steps (refolding, affinity prediction for small molecules, developability and interface metrics, and diversity-aware ranking). Because the same API surface supports binding-site specification, covalent bonds, secondary structure biasing, and multi-entity targets, teams can reuse one design setup across campaigns, plug designs into automated build–test loops, and quickly launch follow-up optimization rounds without changing integration code.

  • In antibody, nanobody, and enzyme-like binder programs, BoltzGen proposes initial CDRs or pockets while other BioLM models score stability, solubility, off-target risk, and biophysics, enabling selection of candidates that are both active and experimentally tractable.

  • For multi-target or platform studies, a shared BoltzGen request schema lets software and ML engineers schedule parallel design jobs, apply consistent filters and quality metrics, and compare results portfolio-wide for data-driven target and hit prioritization.

References

  • Stark, H., Faltings, F., Choi, M., Xie, Y., Hur, E., O’Donnell, T., Bushuiev, A., Uçar, T., Passaro, S., Mao, W., Reveiz, M., Bushuiev, R., Pluskal, T., Sivic, J., Kreis, K., Vahdat, A., Ray, S., Goldstein, J. T., Savinov, A., Hambalek, J. A., Gupta, A., Taquiri-Diaz, D. A., Zhang, Y., Hatstat, A. K., Arada, A., Kim, N. H., Tackie-Yarboi, E., Boselli, D., Schnaider, L., Liu, C. C., Li, G.-W., Hnisz, D., Sabatini, D. M., DeGrado, W. F., Wohlwend, J., Corso, G., Barzilay, R., & Jaakkola, T. (2025). BoltzGen: Toward universal binder design. bioRxiv preprint.