Claude Skill

alterlab-chai

Predict biomolecular complexes with Chai-1, an open AlphaFold3-style model that folds multi-entity assemblies (proteins, ligands, nucleic acids) from a single typed FASTA — strong on antibody–antigen and protein–ligand complexes, with optional MSA and restraint inputs. Use when p

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download alterlab-ieu-alterlab-academic-skills-skills_bioinformatics_alterlab-chai-e4836c0.zip · 6 KB
Part of alterlab-ieu/alterlab-academic-skills — 94 skills

Install

skills CLI npx skills add https://github.com/AlterLab-IEU/AlterLab-Academic-Skills/tree/main/skills/bioinformatics/alterlab-chai
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install alterlab-ieu-alterlab-academic-skills@llmmart
Git git clone https://github.com/AlterLab-IEU/AlterLab-Academic-Skills.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole alterlab-ieu/alterlab-academic-skills collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Chai-1 (open complex prediction)

Overview

Chai-1 (Chai Discovery 2024; chaidiscovery/chai-lab) is an open AlphaFold3-style model that predicts multi-entity biomolecular complexes — proteins, small-molecule ligands, and nucleic acids together — from a single typed FASTA. It is particularly used for antibody–antigen and protein–ligand complexes, can run with or without MSAs, and accepts restraints to guide the prediction.

Its niche relative to the other folders: one FASTA describing a mixed assembly, and antibody–antigen in particular. For a ligand co-fold where you specifically want a binding affinity, use alterlab-boltz; for a bare protein, use alterlab-alphafold.

When to Use This Skill

Use this skill when the user wants to:

  • Predict an antibody–antigen complex structure.
  • Fold a mixed assembly (protein + ligand + nucleic acid) described in one FASTA.
  • Run complex prediction with or without MSAs, optionally guided by restraints.
  • Get an open AlphaFold3-style complex prediction with per-entity confidence.

Does NOT Trigger

Scenario Use instead
Predict a protein–ligand binding affinity alterlab-boltz
Protein-only or protein–protein folding alterlab-alphafold
Dock a ligand into a fixed receptor structure alterlab-diffdock
Look up an experimental complex structure alterlab-pdb
Design antibody/interface sequences alterlab-proteinmpnn / alterlab-ligandmpnn

Core Capabilities

1. Single-FASTA multi-entity input

Chai-1 reads one FASTA whose records are typed by entity. A protein + ligand example:

>protein|name=antibody-Fv
EVQ...SS
>protein|name=antigen
MKT...GG
>ligand|name=cofactor
CC(=O)Oc1ccccc1C(=O)O
chai-lab fold input.fasta out/                          # single-sequence, fastest
chai-lab fold --use-msa-server --use-templates-server input.fasta out/   # recommended

Each header is <entity_type>|name=<unique label> (the bare type|label form also parses). Valid entity types: protein, ligand (SMILES), rna, dna, glycan. Names must be unique — a repeated name raises. The output directory must be empty.

2. Antibody–antigen complexes

The common use case: fold an antibody Fv/Fab against its antigen and read the interface confidence (per-model / interface score) to judge whether the predicted epitope/paratope contact is trustworthy. Use restraints when you have partial epitope knowledge.

3. MSA, templates and restraints

  • MSA optional — Chai-1 runs single-sequence by default; --use-msa-server fetches MSAs from the shared ColabFold MMseqs2 server (discloseable for sensitive sequences) and generally improves accuracy at a time cost. Local MSAs are supplied as aligned.pqt files (convert a3m with chai a3m-to-pqt).
  • Templates--use-templates-server, or your own m8 hit table plus CIFs in CHAI_TEMPLATE_CIF_FOLDER.
  • Restraints — a CSV passed as constraint_path, one row per restraint with columns restraint_id, chainA, res_idxA, chainB, res_idxB, connection_type, confidence, min_distance_angstrom, max_distance_angstrom, comment. connection_type is contact (residue↔residue) or pocket (chain↔residue, so res_idxA is left blank). Residue indices are the residue letter plus its 1-based position (D4), and chains are lettered A–Z in input order. Published example: two ground-truth contacts lifted antibody–antigen interface DockQ from ~0.02 to ~0.4 on PDB 7SYZ.

4. Confidence and GPU dispatch

A run writes pred.model_idx_{0..4}.cif plus scores.model_idx_N.npz holding aggregate_score (the ranking number), ptm, iptm, per_chain_ptm, per_chain_pair_iptm, has_inter_chain_clashes and chain_chain_clashes. For an antibody–antigen job the pair-wise per_chain_pair_iptm entry for the two chains — not the global score — is what tells you whether the predicted epitope is trustworthy; check the clash flags before believing a high score.

The Python entry point is chai_lab.chai1.run_inference(fasta_file=..., output_dir=..., num_diffn_samples=5, num_trunk_recycles=3, seed=..., device="cuda:0"), returning a StructureCandidates with cif_paths and ranking_data. Batch an antibody panel against one antigen via alterlab-remote-compute (submit → poll → harvest out/).

Resources

  • references/chai_usage.md — install/pinning, FASTA type-tag syntax, MSA/restraint options, outputs, and folder-choice guidance. Loaded on demand.

Part of the AlterLab Academic Skills suite.

Files (alterlab-academic-skills)
  • evals
    • evals.json 2.9 KB
      {
        "skill": "alterlab-chai",
        "evals": [
          {
            "id": "antibody-antigen",
            "prompt": "Predict the structure of my antibody Fv bound to its antigen. I have both sequences and want to see the predicted binding interface.",
            "expected_output": "Invokes alterlab-chai: folds the antibody and antigen as a complex from a single typed FASTA with Chai-1, and reports the interface confidence so the user can judge the predicted paratope–epitope contact. Notes GPU/weights and dispatch via alterlab-remote-compute.",
            "assertions": [
              { "type": "should_trigger", "value": true },
              { "type": "output_contains", "value": "interface" },
              { "type": "behavior", "value": "Treats it as an antibody–antigen complex prediction and reads interface confidence." }
            ]
          },
          {
            "id": "mixed-assembly",
            "prompt": "I have one FASTA describing a protein, an RNA strand, and a small-molecule cofactor. Fold the whole assembly together with Chai.",
            "expected_output": "Invokes alterlab-chai: reads the single typed FASTA (protein/rna/ligand records), predicts the multi-entity complex in one pass, and returns per-entity confidence.",
            "assertions": [
              { "type": "should_trigger", "value": true },
              { "type": "output_contains", "value": "FASTA" }
            ]
          },
          {
            "id": "restraint-guided",
            "prompt": "I know two residues that should be in contact at the interface. Can Chai use that as a restraint to guide the complex prediction?",
            "expected_output": "Invokes alterlab-chai and explains running the complex prediction with contact restraints to bias toward the known interface, verifying the restraint format for the installed version.",
            "assertions": [
              { "type": "should_trigger", "value": true },
              { "type": "behavior", "value": "Incorporates user-provided restraints into the Chai-1 prediction." }
            ]
          },
          {
            "id": "near-miss-boltz",
            "prompt": "For this protein–ligand complex I mainly need a predicted binding affinity to rank a few analogs.",
            "expected_output": "Should NOT trigger this skill; defers to alterlab-boltz, whose Boltz-2 model predicts binding affinity alongside the co-folded pose. Chai-1 predicts complex structure but is not the affinity-ranking tool.",
            "assertions": [
              { "type": "should_not_trigger", "value": true },
              { "type": "output_contains", "value": "alterlab-boltz" }
            ]
          },
          {
            "id": "near-miss-alphafold",
            "prompt": "Just fold this single enzyme sequence into its 3D structure — there's no antibody, ligand, or other chain.",
            "expected_output": "Should NOT trigger this skill; defers to alterlab-alphafold. A single-protein fold with no other entities is AlphaFold2/ColabFold's job; Chai-1 is for multi-entity complexes.",
            "assertions": [
              { "type": "should_not_trigger", "value": true },
              { "type": "output_contains", "value": "alterlab-alphafold" }
            ]
          }
        ]
      }
      
  • references
    • chai_usage.md 4.6 KB
      # Chai-1 — Usage Reference
      
      Deeper detail for `alterlab-chai`, verified against **chai_lab 0.6.1** (current PyPI release
      as of 2026-09) and the upstream `chaidiscovery/chai-lab` docs. The project pins its own
      version in its README ("API is quite stable, but pin the version"), so pin it in your env too.
      
      ## Install
      
      ```bash
      uv pip install chai_lab==0.6.1
      # bleeding edge (updates daily): uv pip install git+https://github.com/chaidiscovery/chai-lab.git
      ```
      
      Requires Linux, Python >= 3.10, and a CUDA GPU with bfloat16 support. A100/H100 80GB or
      L40S 48GB are recommended; A10/A30 and consumer RTX 4090 handle smaller complexes. Weights
      download on first use into the installed package directory unless `CHAI_DOWNLOADS_DIR`
      points elsewhere (useful in Docker or on a mounted drive).
      
      ## Input: one typed FASTA
      
      ```text
      >protein|name=heavy-chain
      EVQLVESGG...
      >protein|name=antigen
      MKTAYIAKQ...
      >ligand|name=cofactor
      CC(=O)Oc1ccccc1C(=O)O
      >rna|name=aptamer
      AGCUUAGC
      ```
      
      - Entity types: `protein`, `ligand` (SMILES), `rna`, `dna`, `glycan`.
      - Header is `type|name=<label>`; the bare `type|label` form also parses. Labels must be
        unique across the file.
      - Modified residues go inline in brackets: `AAA(SEP)AAA`.
      - Chai warns (rather than fails) when a sequence looks like a different entity type than the
        header claims — read the log.
      
      ## Run
      
      ```bash
      chai-lab fold input.fasta output_dir/
      chai-lab fold --use-msa-server --use-templates-server input.fasta output_dir/
      chai-lab fold --use-msa-server --msa-server-url https://my-colabfold input.fasta output_dir/
      chai-lab a3m-to-pqt msa_dir/        # convert local a3m MSAs to Chai's aligned.pqt
      ```
      
      The output directory must be empty. Five diffusion samples are produced by default.
      
      Python API:
      
      ```python
      from chai_lab.chai1 import run_inference
      
      candidates = run_inference(
          fasta_file=fasta_path,
          output_dir=output_dir,
          use_esm_embeddings=True,
          use_msa_server=False,          # msa_directory=... for local MSAs
          constraint_path=None,          # restraints CSV
          num_trunk_recycles=3,
          num_diffn_timesteps=200,
          num_diffn_samples=5,
          seed=42,
          device="cuda:0",
      )
      cif_paths = candidates.cif_paths
      scores = [rd.aggregate_score.item() for rd in candidates.ranking_data]
      ```
      
      `run_folding_on_context` is the lower-level entry point when you want to build the feature
      context (custom templates, embeddings, covalent bonds) yourself.
      
      ## MSAs
      
      Single-sequence by default. `--use-msa-server` queries the shared ColabFold MMseqs2 server
      — a community resource, and it sends your sequence off-machine, so say so for unpublished
      work. Local MSAs are `aligned.pqt` files (a3m plus source/pairing-key columns); convert with
      `chai a3m-to-pqt`. Note Chai's published benchmarks used a different search strategy than
      MMseqs2, so hosted-MSA results may differ slightly from the paper.
      
      ## Restraints
      
      A CSV passed as `constraint_path` / `--constraint-path`:
      
      | restraint_id | chainA | res_idxA | chainB | res_idxB | connection_type | confidence | min_distance_angstrom | max_distance_angstrom | comment |
      |---|---|---|---|---|---|---|---|---|---|
      | restraint0 | A | R84 | C | G7 | contact | 1.0 | 0.0 | 22.0 | residue↔residue |
      | restraint1 | C |  | A | S18 | pocket | 1.0 | 0.0 | 11.0 | chain↔residue |
      
      - `contact` pins two specific residues in different chains; `pocket` is coarser and
        asymmetric (any residue of chain A against a named residue of chain B), so `res_idxA` is
        blank.
      - Residue references are the one-letter residue plus its 1-based index (`D4`); Chai checks
        that the residue matches the sequence and errors on a mismatch.
      - Chains are lettered A–Z in the order entities appear in the FASTA.
      - `confidence` and `min_distance_angstrom` are accepted but currently unused by the model.
      - `restraint_id` must be unique; `comment` is ignored.
      
      ## Outputs
      
      Per run: `pred.model_idx_{0..4}.cif` and `scores.model_idx_N.npz`. The score arrays are
      `aggregate_score` (ranking), `ptm`, `iptm`, `per_chain_ptm`, `per_chain_pair_iptm`,
      `has_inter_chain_clashes`, `chain_chain_clashes`. For an interface question read the relevant
      `per_chain_pair_iptm` cell and the clash flags, not just `aggregate_score`.
      
      ## Choosing between the folding skills
      
      | Task | Skill |
      |------|-------|
      | Antibody–antigen; mixed one-FASTA assembly; restraint-guided folding | `alterlab-chai` |
      | Protein–ligand co-fold **with binding affinity** | `alterlab-boltz` |
      | Protein / protein–protein only (AF2 confidence) | `alterlab-alphafold` |
      | Ligand pose into a **fixed** receptor (docking) | `alterlab-diffdock` |
      
      ## GPU dispatch
      
      Batch an antibody panel against one antigen as separate predictions via
      `alterlab-remote-compute` (submit → poll → harvest).
      
  • SKILL.md 5.9 KB
    ---
    name: alterlab-chai
    description: Predict biomolecular complexes with Chai-1, an open AlphaFold3-style model that folds multi-entity assemblies (proteins, ligands, nucleic acids) from a single typed FASTA — strong on antibody–antigen and protein–ligand complexes, with optional MSA and restraint inputs. Use when predicting an antibody–antigen complex, folding a mixed protein/ligand/nucleic-acid assembly described in one FASTA, or generating a complex with experimental restraints. For binding-affinity prediction or a ligand-focused co-fold prefer alterlab-boltz; for protein-only or protein–protein folding prefer alterlab-alphafold; to dock into a fixed receptor prefer alterlab-diffdock. Part of the AlterLab Academic Skills suite.
    license: Apache-2.0
    allowed-tools: Read Write Edit Bash(python:*) Bash(uv:*)
    compatibility: "Chai-1 (`chaidiscovery/chai-lab`; `uv pip install chai_lab==0.6.1`, current as of 2026-09) under `uv run python`. Needs Linux, Python >= 3.10 and a CUDA GPU with bfloat16 (A100/H100/L40S recommended; A10/A30/RTX 4090 for smaller complexes). Weights download on first run (relocate with CHAI_DOWNLOADS_DIR). Input: one typed FASTA; MSAs, templates, restraints optional. Apache-2.0 code and weights. Dispatch heavy runs via alterlab-remote-compute."
    metadata:
        skill-author: AlterLab
        version: "1.1.0"
        last_updated: "2026-09-23"
    ---
    
    # Chai-1 (open complex prediction)
    
    ## Overview
    
    **Chai-1** (Chai Discovery 2024; `chaidiscovery/chai-lab`) is an open AlphaFold3-style model
    that predicts **multi-entity biomolecular complexes** — proteins, small-molecule ligands, and
    nucleic acids together — from a **single typed FASTA**. It is particularly used for
    **antibody–antigen** and protein–ligand complexes, can run with or without MSAs, and accepts
    **restraints** to guide the prediction.
    
    Its niche relative to the other folders: one FASTA describing a *mixed assembly*, and
    antibody–antigen in particular. For a ligand co-fold where you specifically want a **binding
    affinity**, use `alterlab-boltz`; for a bare protein, use `alterlab-alphafold`.
    
    ## When to Use This Skill
    
    Use this skill when the user wants to:
    - Predict an **antibody–antigen** complex structure.
    - Fold a **mixed assembly** (protein + ligand + nucleic acid) described in one FASTA.
    - Run complex prediction **with or without MSAs**, optionally guided by restraints.
    - Get an open AlphaFold3-style complex prediction with per-entity confidence.
    
    ### Does NOT Trigger
    
    | Scenario | Use instead |
    |----------|-------------|
    | Predict a protein–ligand **binding affinity** | `alterlab-boltz` |
    | Protein-only or protein–protein folding | `alterlab-alphafold` |
    | Dock a ligand into a **fixed** receptor structure | `alterlab-diffdock` |
    | Look up an experimental complex structure | `alterlab-pdb` |
    | Design antibody/interface sequences | `alterlab-proteinmpnn` / `alterlab-ligandmpnn` |
    
    ## Core Capabilities
    
    ### 1. Single-FASTA multi-entity input
    
    Chai-1 reads one FASTA whose records are typed by entity. A protein + ligand example:
    
    ```text
    >protein|name=antibody-Fv
    EVQ...SS
    >protein|name=antigen
    MKT...GG
    >ligand|name=cofactor
    CC(=O)Oc1ccccc1C(=O)O
    ```
    
    ```bash
    chai-lab fold input.fasta out/                          # single-sequence, fastest
    chai-lab fold --use-msa-server --use-templates-server input.fasta out/   # recommended
    ```
    
    Each header is `<entity_type>|name=<unique label>` (the bare `type|label` form also parses).
    Valid entity types: `protein`, `ligand` (SMILES), `rna`, `dna`, `glycan`. Names must be
    unique — a repeated name raises. The output directory must be empty.
    
    ### 2. Antibody–antigen complexes
    
    The common use case: fold an antibody Fv/Fab against its antigen and read the **interface
    confidence** (per-model / interface score) to judge whether the predicted epitope/paratope
    contact is trustworthy. Use restraints when you have partial epitope knowledge.
    
    ### 3. MSA, templates and restraints
    
    - **MSA optional** — Chai-1 runs single-sequence by default; `--use-msa-server` fetches MSAs
      from the shared ColabFold MMseqs2 server (discloseable for sensitive sequences) and
      generally improves accuracy at a time cost. Local MSAs are supplied as `aligned.pqt`
      files (convert a3m with `chai a3m-to-pqt`).
    - **Templates** — `--use-templates-server`, or your own `m8` hit table plus CIFs in
      `CHAI_TEMPLATE_CIF_FOLDER`.
    - **Restraints** — a CSV passed as `constraint_path`, one row per restraint with columns
      `restraint_id, chainA, res_idxA, chainB, res_idxB, connection_type, confidence,
      min_distance_angstrom, max_distance_angstrom, comment`. `connection_type` is `contact`
      (residue↔residue) or `pocket` (chain↔residue, so `res_idxA` is left blank). Residue
      indices are the residue letter plus its 1-based position (`D4`), and chains are lettered
      A–Z in input order. Published example: two ground-truth contacts lifted antibody–antigen
      interface DockQ from ~0.02 to ~0.4 on PDB 7SYZ.
    
    ### 4. Confidence and GPU dispatch
    
    A run writes `pred.model_idx_{0..4}.cif` plus `scores.model_idx_N.npz` holding
    `aggregate_score` (the ranking number), `ptm`, `iptm`, `per_chain_ptm`,
    `per_chain_pair_iptm`, `has_inter_chain_clashes` and `chain_chain_clashes`. For an
    antibody–antigen job the pair-wise `per_chain_pair_iptm` entry for the two chains — not the
    global score — is what tells you whether the predicted epitope is trustworthy; check the
    clash flags before believing a high score.
    
    The Python entry point is `chai_lab.chai1.run_inference(fasta_file=..., output_dir=...,
    num_diffn_samples=5, num_trunk_recycles=3, seed=..., device="cuda:0")`, returning a
    `StructureCandidates` with `cif_paths` and `ranking_data`. Batch an antibody panel against one
    antigen via `alterlab-remote-compute` (submit → poll → harvest `out/`).
    
    ## Resources
    
    - `references/chai_usage.md` — install/pinning, FASTA type-tag syntax, MSA/restraint options,
      outputs, and folder-choice guidance. Loaded on demand.
    
    Part of the AlterLab Academic Skills suite.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related