Designing proteins from a text description, through Claude or the web Console.
BioM3 designs new protein sequences from a description of what a protein is and does. It works by learning a shared embedding space in which a protein's sequence and a text description are represented together, with a geometry shaped by evolution and by the scientific literature. Because sequence and text share this space, a description can be converted into sequences that are new members of a protein family. This guide is written for a new user and covers both interfaces to the system: Claude (AI or Science) and the web Console.
The blend parameter \(\alpha\). Every design is conditioned on a blend
\[ y = \alpha\, z_p + (1-\alpha)\, z_c \]
where \(z_p\) is a protein-sequence vector and \(z_c\) is a text-caption vector. The value of \(\alpha\) runs from 0 to 1: at \(\alpha = 0\) the design is conditioned on the text description alone; at \(\alpha = 1\) it is conditioned on a protein sequence you provide, producing close relatives of it; intermediate values mix the two. Most tasks reduce to choosing where \(\alpha\) sits between these ends.
Both interfaces use the same models and the same access allowlist. Set up whichever you will use first.
Settings → Connectors → Add custom connector.
URL: https://biom3.ranganathanlab.org; name it BioM3.
Connect, then sign in with your lab-approved Google account.
To confirm, ask Claude to list the BioM3 protein families.
A 401 invalid_token response before sign-in indicates the server is reachable but not yet authenticated.
Open https://console.ranganathanlab.org.
Sign in with the same Google account.
The page opens on the family list.
Nothing is installed locally; jobs run on the lab GPUs.
The console relays your own credential to the gateway and stores none of its own.
Access. Both surfaces share one allowlist. If sign-in is refused, the account needs to be added as a collaborator; a single entry covers Claude and the console.
This section is a complete first run — the same five steps in both interfaces. The prompts to type in Claude are on the left; the corresponding console actions are on the right.
you typeWhat protein families can I design with BioM3?
Claude calls family_list and returns the families (SH3, GPCR, Ras, PDZ, WW, chorismate mutase, Cu/Zn SOD, S1A protease, and others), each with a reference protein.
The landing page is the family list.
Select a family (for example, SH3) to open its workspace.
you typeShow me an example prompt for the SH3 family.
get_example_prompt returns a caption written in the format the model was trained on. Edit it to describe the protein you want.
The workspace pre-loads an example prompt in the text box.
Edit the text to describe the target protein.
you typeGenerate 5 SH3 domains at alpha=0 from:
"a transmembrane SH3 domain involved in
osmotic sensing through the HOG1 MAP kinase."
protein_generator runs on a lab GPU and returns five sequences. At alpha=0 the design is conditioned on the text alone. To stay close to a known protein, provide it as the protein input and raise alpha.
Set the \(\alpha\) slider (0 = text, 1 = protein) and the number of sequences.
Press Generate. Designs appear as points on the family map.
you typeScore those designs against the SH3 family.
compute_edist returns each design's \(d_E\), the distance to the family's natural manifold, together with the natural band (median and p95). A value at or below the p95 indicates the design falls within the range of natural family members.
Each design shows its \(d_E\) and its position on the family map.
Points inside the natural cloud are in-family; points far outside are off-manifold.
you typeFold the best design and compare it
to the SH3 reference structure.
fold predicts the structure with ESMFold; structure_compare aligns it to the family reference and returns TM-score and RMSD. Folding is a longer job: Claude returns a job id and reports the result when it completes.
Select Fold on a design.
The Mol* viewer overlays the design on the reference structure, colored by predicted confidence.
The five steps. Describe, generate, score, fold, compare. After comparing, adjust the description or \(\alpha\) and repeat. The remaining tools in BioM3 extend or refine these steps.
A few concepts that affect how a result should be read. None require the underlying mathematics, which is covered in the geometry note.
At \(\alpha = 0\) a design is conditioned on text; at \(\alpha = 1\) on a supplied protein sequence; intermediate values mix them. Text conditioning is more exploratory; protein conditioning is more faithful but requires a seed sequence.
The distance from a design to a family's natural sequences in the embedding space. It is read against the family's band (median and p95); within the band means comparable to natural members.
A family's natural sequences occupy a bounded region of the space; the band measures its width. For families with several subgroups (Ras, GPCR), \(d_E\) is scored against the relevant subgroup rather than the whole family.
Each family has a fine-tuned decoder. Selecting a family selects the model; some checkpoints are provisional and still in training.
Each family has a canonical member (Sho1 for SH3, H-Ras for Ras, and so on), used for \(\alpha = 1\) conditioning and for the structure overlay.
Claude is suited to scripted requests, batches, and questions; the console is suited to inspecting the family map and structures. Both use the same models and return the same results.
| Goal | Method |
|---|---|
| Vary a specific protein you have | Provide the sequence as the protein input and set alpha=1, or a lower value to combine it with text. |
| Control sequence length | Pass min_length and max_length to protein_generator; equal values fix the length. |
| Reproduce a design | Set the seed; the seed used is recorded and returned. The same seed at a different batch size may differ, so fix both. |
| Generate many sequences | A GPU serializes jobs; large batches return a job id to poll. Keep interactive batches modest. |
| Read a \(d_E\) value | Read it against the reported band, and note which ensemble it was scored on (the reply states this) — for multi-subgroup families, the relevant subgroup rather than the whole family. |
A design that scores poorly. A long, low-complexity sequence with a high \(d_E\) usually indicates that the text prompt has drifted from the family, or that \(\alpha\) is weighted too far toward text. Narrow the description, provide a seed protein, or increase \(\alpha\).
Requests to Claude can be made in plain language; the appropriate tool is selected automatically. The
table lists the tools a new user will most often reach. The complete inventory is in
BIOM3_MCP_TOOLS_AUDIT.
| Tool | Function | Example request |
|---|---|---|
family_list | Lists designable families and their references. | “what families can I design?” |
get_example_prompt | Returns a training-style caption to edit. | “example prompt for PDZ” |
protein_generator | Generates sequences from the text–protein blend. | “generate 10 Ras designs at α=1 from H-Ras” |
compute_edist | Scores \(d_E\) against a family or subgroup band. | “score these against the Ras group” |
fold, structure_compare | Predicts structure and aligns to the reference (TM-score, RMSD). | “fold design 2 and compare to the reference” |
protein_to_text, text_generator | Generates an annotation from a sequence. | “describe this protein” |
list_checkpoints | Lists the models serving each family. | “which checkpoints exist for SH3?” |
get_job_results | Retrieves the output of a completed job. | “get results for job …” |