← Biohub ESMCONTENT HISTORY

Update to Biohub ESM

Snapshot Sep 30, 2026 · 23:14 UTC · version 0.2.4

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "esm-atlas",
  "description": "Use when the user needs ESM Atlas similarity search, MD5 protein lookup, structures, clusters, Pfam/taxonomy context, the existing 16,384-feature Atlas SAE catalog, thumbnails, batch jobs, or anonymous S3 data. Use ESMC instead to extract SAE activations for a supplied sequence. Atlas is not a deployable model and currently needs no client key.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 207
    },
    {
      "relative_path": "references/api.md",
      "size_in_bytes": 12410
    },
    {
      "relative_path": "references/bulk-data.md",
      "size_in_bytes": 4336
    }
  ],
  "skill_md_contents": "---\nname: esm-atlas\ndescription: Use when the user needs ESM Atlas similarity search, MD5 protein lookup, structures, clusters, Pfam/taxonomy context, the existing 16,384-feature Atlas SAE catalog, thumbnails, batch jobs, or anonymous S3 data. Use ESMC instead to extract SAE activations for a supplied sequence. Atlas is not a deployable model and currently needs no client key.\n---\n\n# ESM Atlas\n\nAtlas is public data/discovery infrastructure, not another model to run through Modal or Hugging Face. The current `v1alpha1` API needs no client-side key and is explicitly unstable/not recommended for production assumptions.\n\nAtlas feature details cover the 16,384-feature catalog for the pinned tutorial's `esmc-6b-2024-12-sae-layer60-k64-codebook16384`. Do not apply them across checkpoints, models, layers, or codebooks. Extract activations with `$esmc`; record normalization separately because it changes scaling and ranking, not feature-index identity. The k64 SAE retains at most 64 positive features per residue. `per_residue_activations` is the complete post-sparsification tensor, not API truncation, although quantization can round small values to zero.\n\nFor `Find proteins similar to GB1.`, resolve the pinned fixture through `../../examples/starter-examples.json`; do not ask the user to paste the bundled sequence. Make exactly one public similarity-search GET with `topk_results=10`, `topk_features=20`, `min_similarity=0.5`, and `include_cluster_info=true`, writing to `/absolute/path/gb1-atlas-similarity-search`. Return up to ten hits only after validating unique MD5s, non-empty accessions, client-required positive integer lengths, scores in 0–1 and at or above 0.5, and nonincreasing score order. Use only cluster metadata embedded in that search response and make zero protein or cluster-detail follow-ups. Preserve `raw-response.json`, `result.json`, and `provenance.json`; optional `search-<n>.pdb` artifacts exist only for hits with provider-embedded coordinates. Atlas needs no client-side key, so run it directly and do not substitute a model deployment.\n\n## Conservative boundaries\n\n- similarity search: raw Atlas accepts 1 to 2,048 sequence characters; the bundled plugin must validate at no more than 800 residues. Never clip; ask for a domain or search labeled windows.\n- on-demand fold: opt-in only. The partner-inspected backend accepts 1 to 700 sequence characters, while published guidance says <700; the plugin exposes only hash-based fold-on-miss and caps the returned stored sequence at 699 sequence characters. It first performs a non-folding lookup and proceeds only when the actual returned sequence matches the MD5 and plugin-supported alphabet and the record lacks coordinates; `sequence_length` alone or missing sequence evidence is rejected. It cannot fold an unknown hash or caller-supplied sequence; do not bypass it with an ad hoc request. Start with similarity search when the input is a sequence.\n- feature index: 0–16,383\n- batch: at most 500 unique MD5 hashes. The plugin rejects malformed hashes before submission; the raw API instead returns per-protein errors.\n\nOnly relax a boundary after a live schema/probe is captured and tests are updated. Preserve the raw alpha response before normalization.\n\n## Workflows\n\n```bash\n# Learned-feature similarity search\npython3 <plugin-root>/scripts/biohub_esm.py atlas search \\\n  --sequence \"$SEQUENCE\" --topk-results 10 --include-cluster-info \\\n  --output-dir /absolute/path/atlas-search\n\n# Separate opt-in protein and representative-cluster traversal; not part of the canonical starter\npython3 <plugin-root>/scripts/biohub_esm.py atlas protein \\\n  --protein-hash <md5> --output-dir /absolute/path/protein\npython3 <plugin-root>/scripts/biohub_esm.py atlas cluster \\\n  --protein-hash <cluster-representative-md5> --output-dir /absolute/path/cluster\n\n# Feature catalog/detail with raw response and provenance\npython3 <plugin-root>/scripts/biohub_esm.py atlas features \\\n  --output-dir /absolute/path/features\npython3 <plugin-root>/scripts/biohub_esm.py atlas feature \\\n  --feature-index 42 --output-dir /absolute/path/feature-42\n\n# Batch submit creates atomic resumable state. --output handles a possible\n# synchronous zip; the same path can be supplied again when waiting.\npython3 <plugin-root>/scripts/biohub_esm.py atlas batch-submit \\\n  --hashes /absolute/path/hashes.json \\\n  --state /absolute/path/batch-state.json \\\n  --output /absolute/path/batch.zip\npython3 <plugin-root>/scripts/biohub_esm.py atlas batch-status \\\n  --state /absolute/path/batch-state.json\npython3 <plugin-root>/scripts/biohub_esm.py atlas batch-wait \\\n  --state /absolute/path/batch-state.json \\\n  --output /absolute/path/batch.zip\n# Or request cancellation; terminal states are preserved as no-ops.\npython3 <plugin-root>/scripts/biohub_esm.py atlas batch-cancel \\\n  --state /absolute/path/batch-state.json\n```\n\nSupport feature catalog/list/detail, `pct-characterized` and `plddt` thumbnails, batch submit/poll/cancel/download, and empty-hit results. Small batches may return a zip immediately; large batches return `202` job state. Each state transition is atomically replaced under a per-state advisory lock; after a completed operation, its separate provenance sidecar is refreshed while that lock is held and repaired from authoritative state after a process crash. An interrupted submit without a durably captured `job_id` becomes `submission-indeterminate`: preserve its input digest, reconcile manually with Atlas operators, and never resume or resubmit that state. Atlas has no public recovery endpoint for a lost job ID; only consider a distinct new state and submission after separate explicit confirmation and a duplicate-work warning. A definitive `400`/`401`/`402`/`403`/`404`/`422`/`429` response instead becomes `submission-rejected`. After remediating the response, only a newly invoked `batch-submit` for the exact same request may retry, and not before the persisted `Retry-After` deadline. A synchronous HTTP 200 completion has no remote `job_id`, so status/wait return its persisted evidence and cancellation is a terminal no-op. An interrupted idempotent cancellation remains `cancellation-requested` with unknown acceptance and may safely retry DELETE. Otherwise, a new process can resume using only `--state`. Ephemeral signed download URLs are used in memory and deliberately omitted from state. To adopt an older job once, pass both `--state <new-path>` and `--job-id <id>`. Cancellation is idempotent but completed results can remain available.\n\nUse `cluster_pct_characterized_max=0` only as the documented proxy for clusters without characterized Pfam annotations; do not call that proof of unknown function. Preserve Atlas CC-BY-4.0 attribution.\n\nFinish searches with the [result presentation handoff](../../references/structure-viewer-handoff.md). Open the first verified absolute coordinate artifact once through the available structure-viewing capability and retain presentation status independently of the search result. Otherwise, for non-empty results, make at most one public `atlas thumbnail --thumbnail-type plddt` request for the first-ranked hit, save it as `top-hit-plddt.png` with its provenance sidecar, and display it inline. Empty results remain a valid artifact-only outcome. Atlas coordinates and thumbnails are predictions; an experimental record or PDB container does not change their provenance. For requested experimental method, resolution, or citation evidence, query RCSB or PDBe when possible and report it separately; otherwise state the lookup limitation.\n\nRead the exact [alpha HTTP contract](references/api.md), [batch and S3 guidance](references/bulk-data.md), and shared [safety/provenance contract](../../references/safety-and-provenance.md).\n"
}

SHA-256: da5ad380a64133164536c4c339a9bbf170b50bbddc2ba65ee64437b740d62e21