jimliu/science-skills · Archived

ColabFold MSA server (api.colabfold.com)

Structure prediction for protein, nucleic-acid, and small-molecule complexes with the Chai-1 foundation model (Chai Discovery 2024, github.com/chaidiscovery/chai-lab). Reach for this skill to predict an antibody-antigen or protein-ligand complex from a single FASTA, to re-fold designed binders as an AlphaFold-multimer alternative, or to drive co-folding from Python for batched campaigns on a GPU.

First seen Jul 2, 2026

Installation

$ npx skills add jimliu/science-skills --skill chai1

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Also in this package

Other skills from jimliu/science-skills · top by installs.

npx skills add jimliu/science-skills

Browse all from jimliu/science-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 225
License Apache-2.0
Default branch main
Open issues 0
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

LicenseApache-2.0
More metadata
display-name
Chai-1
third_party
{"0":"kind: weights","name":"ColabFold MSA server (api.colabfold.com)","provider":"Steinegger Lab","license":"Apache-2.0","terms_url":"https:\/\/github.com\/chaidiscovery\/chai-lab\/blob\/main\/LICENSE","1":"kind: service","info_url":"https:\/\/github.com\/sokrypton\/ColabFold\/wiki"}

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,615 B
  • docs SUMMARY.md 412 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 2 installs

SKILL.md

Chai-1

Chai-1 is an all-atom diffusion co-folder in the same family as Boltz-2 and AlphaFold3: a multi-entity FASTA in, mmCIF plus pTM/ipTM/pLDDT out, with protein, RNA, DNA, and SMILES-ligand chains all first-class. It and boltz cover the same surface; running both and keeping designs that pass either is a common consensus filter, and Chai's Python entry point makes it the easier of the two to embed in a loop. Code and weights are Apache-2.0 — commercial use including drug discovery is explicitly permitted (github.com/chaidiscovery/chai-lab).

Running it

from pathlib import Path
from chai_lab.chai1 import run_inference

Path("complex.fasta").write_text("""
>protein|name=target
MVTPEGNVSLVDESLLVGVTDEDRAVRS...
>protein|name=binder
AIQRTPKIQVYSRHPAENG...
>ligand|name=cofactor
CCCCCCCCCCCCCC(=O)O
""".strip())

candidates = run_inference(
    fasta_file=Path("complex.fasta"),
    output_dir=Path("out/"),
    num_trunk_recycles=3,
    num_diffn_timesteps=200,
    seed=42,
    device="cuda:0",
    use_esm_embeddings=True,
)
print([rd.aggregate_score.item() for rd in candidates.ranking_data])

The FASTA header is >{entitytype}|name={id} with entitytype ∈ {protein, rna, dna, ligand}; ligand records carry a SMILES string as the sequence body, and modified residues are written inline as ...AAK(SEP)AAG.... From the shell the same job is chai-lab fold complex.fasta out/ --use-msa-server. Without --use-msa-server (or usemsaserver=True in Python) the model runs on ESM embeddings alone, which is faster but typically a few ipTM points behind the MSA-backed run.

outputdir receives pred.modelidx{0..4}.cif plus a matching scores.modelidx{N}.npz per sample with aggregatescore, ptm, iptm, perchainptm, and clash flags. Rank by aggregatescore; treat iptm > 0.5 as a soft pass for an interface. The function refuses a non-empty outputdir, so clear or rotate it between calls.

Unset CHAIDOWNLOADSDIR fails mid-run with PermissionError on a read-only image

Chai downloads ~5 GB on the first inference call (not at install time), including its own traced ESM2-3B for the embedding path. If CHAIDOWNLOADSDIR is unset, the default is inside site-packages: on a read-only image that fails with a confusing PermissionError mid-run, and on a writable one it silently re-downloads ~5 GB into the container on every cold start. Export the variable to a persisted volume so the download happens once.

No-MSA mode still loads a 3 B-parameter ESM — same VRAM, not less

useesmembeddings=True without an MSA still loads a 3-billion-parameter language model into GPU memory alongside the trunk; it removes the MSA-server round-trip, not the VRAM cost. If you OOM, drop numdiffntimesteps or fold fewer chains per call rather than expecting the no-MSA mode to fit a smaller card.

Errors worth recognizing

You see It means / do this
PermissionError under site-packages/chai_lab/... CHAIDOWNLOADSDIR not set on a read-only image — export it to a writable path or the pre-populated mount.
RuntimeError: CUDA out of memory during ESM embedding The traced ESM2-3B is loading alongside the trunk — use an 80 GB tier or split chains across calls.

Next: filter survivors on confidence/clash metrics or feed them back to proteinmpnn for the next design round.