Skill Tracer
Skills › Scientific Agent Skills › esm › review.md

review.md

70 lines · skills/esm/references/review.md at 5f2bc03

Open on GitHub
1# Review evidence — 2026-09-30
2

Review evidence — 2026-09-30

Raw lines 1 to 2
3## Release and primary sources
4
5The target is the published `esm==3.4.1.post1` wheel (uploaded 2026-09-16),
6not the earlier 3.2.3 API or an unpinned GitHub checkout. The wheel's SHA-256
7was checked against official PyPI metadata. Current upstream `main` documentation
8was cross-checked against that released source before adopting its examples.
9
10| Primary source | What was verified |
11| --- | --- |
12| [PyPI release](https://pypi.org/project/esm/3.4.1.post1/) and [release JSON](https://pypi.org/pypi/esm/3.4.1.post1/json) | Python >=3.12; Torch >=2.11,<2.12; Transformers >=4.57.6,<5; Linux x86_64 GPU dependency markers |
13| [Biohub repository](https://github.com/Biohub/esm) | Current local ESMC/ESMFold2 interfaces, Biohub migration, open ESMC6B weights |
14| [ESM3 README](https://github.com/Biohub/esm/blob/main/_assets/ESM3_README.md) | Local/hosted model IDs, masked generation, clearing tracks before a round trip |
15| [SDK factories](https://github.com/Biohub/esm/blob/main/esm/sdk/__init__.py) | Distinct ESM3/ESMC/folding factories, Biohub defaults, import-time token capture |
16| [SDK types](https://github.com/Biohub/esm/blob/main/esm/sdk/api.py) | Generation/Folding/Logits configs, per-track output containers, PDB methods |
17| [Hosted clients](https://github.com/Biohub/esm/blob/main/esm/sdk/forge.py) | Exact endpoint names, request and response fields, ESMProteinError values, MSA warning, omitted pair-chain IPTM flag |
18| [HTTP transport](https://github.com/Biohub/esm/blob/main/esm/sdk/base_forge_client.py) and [retry](https://github.com/Biohub/esm/blob/main/esm/sdk/retry.py) | Bearer auth, `/api/v1/`, httpx, timeout semantics, bounded retries and response decoding |
19| [Native ESMC](https://github.com/Biohub/esm/blob/main/esm/models/esmc/model.py), [tokenizer](https://github.com/Biohub/esm/blob/main/esm/models/esmc/tokenizer.py), [compatibility](https://github.com/Biohub/esm/blob/main/esm/models/esmc/compatibility.py) | Batched token API, special tokens, hidden states, deprecated wrapper differences |
20| [Generation implementation](https://github.com/Biohub/esm/blob/main/esm/utils/generation.py), [function tokenizer](https://github.com/Biohub/esm/blob/main/esm/tokenization/function_tokenizer.py), [annotation type](https://github.com/Biohub/esm/blob/main/esm/utils/types.py) | Track masking, temperature annealing, supported-label validation, 1-based inclusive annotations |
21| [Complex input types](https://github.com/Biohub/esm/blob/main/esm/utils/structure/input_builder.py) | Typed polymer/ligand inputs, list-valued CCD IDs, zero-based modification indices |
22| [ESMC300M](https://huggingface.co/biohub/ESMC-300M), [ESMC600M](https://huggingface.co/biohub/ESMC-600M), [ESMC6B](https://huggingface.co/biohub/ESMC-6B), [ESMFold2](https://huggingface.co/biohub/ESMFold2) | Model cards, 2048-token ESMC context, weight availability and license notices |
23| [Legacy Meta ESM](https://github.com/facebookresearch/esm) | Separate `fair-esm` distribution and ESM2/ESMFold APIs |
24| [scikit-learn pitfalls](https://scikit-learn.org/stable/common_pitfalls.html), [PCA](https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html), [KMeans](https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html) | Leakage boundaries, PCA dimension bounds, explicit clustering settings |
26Public Hugging Face model metadata and the three small ESMC `config.json` files
27were fetched without authentication or weights. Configs reported dimensions
28960/1152/2560, layers 30/36/80, and 2048 maximum position metadata. All parsed
29with the released `EsmcConfig`. Public access metadata does not test weight
30loading, hosted account access or model quality. ESMC cards list MIT plus
31`other` with a third-party-notice link; retain those notices rather than treating
32all dependency licenses as MIT.

Release and primary sources

The target is the published esm==3.4.1.post1 wheel (uploaded 2026-09-16), not the earlier 3.2.3 API or an unpinned GitHub checkout. The wheel's SHA-256 was checked against official PyPI metadata. Current upstream main documentation was cross-checked against that released source before adopting its examples.

Primary sourceWhat was verified
PyPI release and release JSONPython >=3.12; Torch >=2.11,<2.12; Transformers >=4.57.6,<5; Linux x86_64 GPU dependency markers
Biohub repositoryCurrent local ESMC/ESMFold2 interfaces, Biohub migration, open ESMC6B weights
ESM3 READMELocal/hosted model IDs, masked generation, clearing tracks before a round trip
SDK factoriesDistinct ESM3/ESMC/folding factories, Biohub defaults, import-time token capture
SDK typesGeneration/Folding/Logits configs, per-track output containers, PDB methods
Hosted clientsExact endpoint names, request and response fields, ESMProteinError values, MSA warning, omitted pair-chain IPTM flag
HTTP transport and retryBearer auth, /api/v1/, httpx, timeout semantics, bounded retries and response decoding
Native ESMC, tokenizer, compatibilityBatched token API, special tokens, hidden states, deprecated wrapper differences
Generation implementation, function tokenizer, annotation typeTrack masking, temperature annealing, supported-label validation, 1-based inclusive annotations
Complex input typesTyped polymer/ligand inputs, list-valued CCD IDs, zero-based modification indices
ESMC300M, ESMC600M, ESMC6B, ESMFold2Model cards, 2048-token ESMC context, weight availability and license notices
Legacy Meta ESMSeparate fair-esm distribution and ESM2/ESMFold APIs
scikit-learn pitfalls, PCA, KMeansLeakage boundaries, PCA dimension bounds, explicit clustering settings

Public Hugging Face model metadata and the three small ESMC config.json files were fetched without authentication or weights. Configs reported dimensions 960/1152/2560, layers 30/36/80, and 2048 maximum position metadata. All parsed with the released EsmcConfig. Public access metadata does not test weight loading, hosted account access or model quality. ESMC cards list MIT plus other with a third-party-notice link; retain those notices rather than treating all dependency licenses as MIT.

Raw lines 3 to 33
34## Executed checks
36The suite in `tests/esm/` exercises a two-layer, 32-dimensional random ESMC model
37on CPU. It checks native batch/individual equivalence, token axes and hidden
38states, residue-only pooling including NaN padding, malformed inputs and context
39length, legacy SDK output containers, tiny saved-checkpoint reload, and a
40synthetic two-residue PDB round trip. Random weights establish software behavior,
41not learned scientific performance.
43`httpx.MockTransport` exercises actual released ESM3 generation, ESMC
44encode/logits/decode, and folding transport paths with synthetic responses. It
45checks host/path, bearer-header construction, request timeout, payload fields,
46response envelopes, and returned 400/401 error values. Folding serialization
47checks reproduce the unsupported distogram flag and absent pair-chain IPTM
48request field. These checks do not call Biohub or use real keys.
50The isolated suite uses Python 3.12, esm 3.4.1.post1, Torch 2.11.0 and
51Transformers 4.57.6. The documentation's tiny native ESMC example, small-dataset
52clustering recipe (2 and 12 synthetic rows), and variant bookkeeping with a fake
53generator were also run. Every Python code fence was syntax-checked. The PDB
54fixture warns about absent entity metadata, expected for its minimal synthetic
55input; sequence and coordinates round-trip correctly.

Executed checks

The suite in tests/esm/ exercises a two-layer, 32-dimensional random ESMC model on CPU. It checks native batch/individual equivalence, token axes and hidden states, residue-only pooling including NaN padding, malformed inputs and context length, legacy SDK output containers, tiny saved-checkpoint reload, and a synthetic two-residue PDB round trip. Random weights establish software behavior, not learned scientific performance.

httpx.MockTransport exercises actual released ESM3 generation, ESMC encode/logits/decode, and folding transport paths with synthetic responses. It checks host/path, bearer-header construction, request timeout, payload fields, response envelopes, and returned 400/401 error values. Folding serialization checks reproduce the unsupported distogram flag and absent pair-chain IPTM request field. These checks do not call Biohub or use real keys.

The isolated suite uses Python 3.12, esm 3.4.1.post1, Torch 2.11.0 and Transformers 4.57.6. The documentation's tiny native ESMC example, small-dataset clustering recipe (2 and 12 synthetic rows), and variant bookkeeping with a fake generator were also run. Every Python code fence was syntax-checked. The PDB fixture warns about absent entity metadata, expected for its minimal synthetic input; sequence and coordinates round-trip correctly.

Raw lines 34 to 56
57## Verification boundaries
59No pretrained model weights, full protein datasets or CUDA toolchains were
60downloaded. Pretrained ESM3/ESMC/ESMFold2 inference, fine tuning, function-vocabulary
61assets, Flash Attention, multi-GPU/Fold-CP, authenticated service availability,
62rate limits, pricing, and scientific performance were not executed. Examples
63requiring these are explicitly illustrative. The skill does not claim tested
64SageMaker deployment, direct submitted batch-job workflows, or an API-compatible
65migration from `fair-esm`.
67The old workflow diagram connected ESMC/t-SNE output to ESMFold2 and labeled
68folding as `esm.sdk.client()`. Those relationships are incorrect: ESMC features,
69ESM3 generation and ESMFold2 folding are distinct routes. A replacement must
70show their separate input/output contracts and prediction/validation boundary.

Verification boundaries

No pretrained model weights, full protein datasets or CUDA toolchains were downloaded. Pretrained ESM3/ESMC/ESMFold2 inference, fine tuning, function-vocabulary assets, Flash Attention, multi-GPU/Fold-CP, authenticated service availability, rate limits, pricing, and scientific performance were not executed. Examples requiring these are explicitly illustrative. The skill does not claim tested SageMaker deployment, direct submitted batch-job workflows, or an API-compatible migration from fair-esm.

The old workflow diagram connected ESMC/t-SNE output to ESMFold2 and labeled folding as esm.sdk.client(). Those relationships are incorrect: ESMC features, ESM3 generation and ESMFold2 folding are distinct routes. A replacement must show their separate input/output contracts and prediction/validation boundary.

Raw lines 57 to 70