← Biohub ESMCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Biohub ESM
Snapshot Sep 30, 2026 · 23:14 UTC · version 0.2.4
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "esmc",
"description": "Use when the user needs ESMC embeddings, hidden states, logits, entropy, zero-shot mutation scoring, SAE features, fitted heads, or fine-tuning. Sequence only; not for folding, Atlas lookup, or calling an untrained classifier predictive.",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 195
},
{
"relative_path": "references/analysis.md",
"size_in_bytes": 6217
},
{
"relative_path": "references/api.md",
"size_in_bytes": 5802
},
{
"relative_path": "references/self-hosted.md",
"size_in_bytes": 1555
}
],
"skill_md_contents": "---\nname: esmc\ndescription: Use when the user needs ESMC embeddings, hidden states, logits, entropy, zero-shot mutation scoring, SAE features, fitted heads, or fine-tuning. Sequence only; not for folding, Atlas lookup, or calling an untrained classifier predictive.\n---\n\n# ESMC\n\nESMC is a sequence-only masked protein language model. Validate the input before inference:\n\n```bash\npython3 <plugin-root>/scripts/biohub_esm.py validate-sequence \\\n --target esmc --sequence-file /absolute/path/query.fasta\n```\n\nThe context is 2,048 tokens. Because current tokenizers add BOS/EOS, the helper uses a conservative 2,046-residue raw-sequence cap unless a pinned tokenizer probe proves a different count. Do not pass structures, DNA, RNA, or ligands.\n\n## Model and route\n\n| Route | IDs |\n| --- | --- |\n| Biohub managed | `esmc-300m-2024-12`, `esmc-600m-2024-12`, `esmc-6b-2024-12` |\n| Hugging Face | `biohub/ESMC-300M`, `biohub/ESMC-600M`, `biohub/ESMC-6B` |\n\nDefault to managed ESMC for public inference, including bounded concurrent calls that the managed backend can auto-batch. The plugin ships no ESMC Modal function. Use pinned Hugging Face weights on user-owned compute for private, offline, custom-head, fine-tuned, sustained, or explicitly owned-compute workloads.\n\n## Analysis contract\n\n1. Preserve the normalized sequence digest and exact model/revision.\n2. Request only the outputs needed: sequence logits, per-residue embedding, mean embedding, selected hidden states, or named SAE models.\n3. For the default biological residue-entropy metric, mask the evaluated residue, predeclare the allowed residue-token set, exclude special/control tokens, and renormalize over only those residue tokens. Keep full-vocabulary log probabilities separate. When explicitly reproducing the official PETase notebook, report its complete-vocabulary entropy in bits as a separately named tutorial metric with its token set and log base; never relabel it as residue entropy.\n4. For zero-shot mutation scoring, report the documented score definition, typically `log P(mutant | masked context) - log P(wild type | masked context)`. Keep raw log probabilities and residue numbering.\n5. Treat embeddings and SAE activations as features, not biological labels.\n6. A downstream classifier/regressor becomes a prediction only after fitting on appropriate labeled data and validating on held-out, leakage-controlled data. Never run an untrained classification head and name its random output.\n7. Record outputs and provenance atomically; large tensors should be files with checksums, not pasted into chat.\n\nBiohub's pinned official mutation-landscape and SAE tutorials define two page-facing workflows in `../../examples/tutorial-use-cases.json`:\n\n- `Map the mutational landscape of PETase and show me where it is most constrained or tolerant.` is a curated tutorial launcher. Disclose the pinned CaPETase literal before adopting it, run status-only preflight, then execute the exact `runtime.command` from the tutorial contract using the verified Python 3.12 environment; do not recreate the analysis in generated code. The shipped `esmc-landscape --tutorial petase` path validates the literal digest, uses a bounded 16-worker `ThreadPoolExecutor` for all 259 host-pinned managed logits calls, and writes exact-request-bound per-position checkpoints before producing `raw-responses.json`, `mutation-landscape.json`, `mutation-landscape.csv`, and `provenance.json`. If interrupted, use only `runtime.resume_command`; never replay an indeterminate submission. Present its constrained/tolerant summary, separately named full-vocabulary tutorial entropy, genuine-substitution fraction, and canonical-amino-acid LLRs. Do not route this to Modal: the plugin ships no ESMC Modal function.\n- `Show me what ESMC has learned about ATP synthase and map the strongest features onto its structure.` is a curated launcher for experimental PDB 2XND chain A, using managed `esmc-6b-2024-12` with SAE `esmc-6b-2024-12-sae-layer60-k64-codebook16384`. Disclose that identity and the calls it makes: one RCSB FASTA fetch, one RCSB structure fetch, one managed encode request, one managed logits request, and five Atlas feature-detail fetches. Reproduce managed rather than local tokenization, normalized features, the strict `activation > 0.01` predicate, top 10 rankings by both maximum activation and prevalence, descriptions for the top five maximum-activation features, and a structure coloured by activation for the top three maximum-activation features, only after explicit sequence-to-coordinate alignment. Preserve the named raw, feature, ranking, alignment, Structure Viewer handoff, and provenance artifacts. This contract does not authorize provider calls: after the exact disclosure, obtain separate explicit current-turn confirmation before the RCSB, managed, or Atlas requests.\n\nLead with the science. Order every answer this way:\n\nFor the ATP structure map, follow the shared [result presentation handoff](../../references/structure-viewer-handoff.md): open the verified absolute artifact once, style only when ready, and report pending or unavailable viewing separately from the completed analysis.\n\n1. The result: the ranked features, the score card, or the structure. Open or display it\n automatically; never ask permission to show a result.\n2. Two or three sentences a scientist can react to — which positions or regions are\n constrained, which are tolerant, what stands out.\n3. One line of scientific status: this is a model hypothesis, not an experimental\n measurement, and it needs validation.\n4. The artifact paths, listed briefly.\n5. Provenance, collapsed: pinned model revision, SDK revisions, input digest, checksums,\n and the exact route.\n6. A link back to the relevant model card, such as <https://biohub.ai/models/esmc>.\n\nDo not open with a plan, a list of the calls you intend to make, a cost estimate, or a\nrequest for permission. If the user explicitly asks for a dry run or a planning-only answer, describe\nthe plan and say plainly that no provider call was made — that is the only case where a\nno-call answer is correct.\n\nThe two exact page-facing prompts above may resolve their disclosed pinned tutorial targets. Otherwise resolve a bundled sequence only when the user explicitly names the official tutorial example. A generic PETase, ATP-synthase, A3M, or MSA request uses the user's supplied inputs or pauses for them; never silently substitute tutorial literals. Keep mutation analysis in the ESMC model family. For SAE interpretation, ESMC owns activation extraction; Atlas is an optional description lookup for the exact compatible feature dictionary, not a substitute inference route.\n\nRun status-only preflight first; it reads no credential value and costs nothing. If managed access is missing, hand the user the key page from `$biohub-esm-setup` instead of a plan, then resume automatically once it is configured. The focused GB1 starter and exact PETase runtime run without separate confirmation; the ATP-synthase workflow requires the confirmation stated above. Managed requests may incur cost. Report provider-returned credit or token usage when available; otherwise state that the API did not report usage or cost, and never invent an estimate. Self-hosted GPU work and bulk data transfers are different: freeze the exact route, model/revision, item and call counts, input digest, output paths, persistence plan, and cost ceiling, show that scope, and ask a plain yes/no question before spending. Never require the user to repeat a specific phrase back to you.\n\nFor `What might W43F do to GB1?`, resolve the pinned fixture through `../../examples/starter-examples.json`; do not ask the user to paste the bundled sequence. Its managed path performs exactly one no-retry logits request and writes `raw-response.json`, `mutation-score.json`, `mutation-score.svg`, and `provenance.json`. The score records the masked context, both natural-log probabilities, one-based residue and zero-based tensor indices, exact model and SDK revisions, and checksums. After successful materialization, display `mutation-score.svg` inline by default; it is a visual summary of the model score, not evidence of fitness, stability, activity, binding, or function.\n\nRead the exact [managed/SDK contract](references/api.md), [analysis guidance](references/analysis.md), and [self-hosting guidance](references/self-hosted.md).\n"
}SHA-256: 9843d910d2c17110c2f580765988bb61868e79e65a84a9cdc9355b7f08b392af