Example: Browse SAE Features

Explore the 16,384 SAE features that characterize proteins in the Atlas.

List all features

Endpoint: GET /esm/protein/api/v1alpha1/features

Returns the full catalog of 16,384 features with minimal fields (feature_index, label, description). No pagination or filtering — call once and slice client-side.

curl

curl "https://biohub.ai/esm/protein/api/v1alpha1/features"

Python

import httpx

response = httpx.get("https://biohub.ai/esm/protein/api/v1alpha1/features")
features = response.json()["data"]

for feature in features[:10]:
    print(feature["feature_index"], feature["label"])

Response

{
  "data": [
    {
      "feature_index": 0,
      "label": "Aromatic residue cluster",
      "description": "Activates on aromatic side-chain clusters …"
    }
  ]
}

(data contains all 16,384 features.)

Get details for a single feature

Endpoint: GET /esm/protein/api/v1alpha1/features/{feature_index}

Returns rich metadata for one feature: longform description, top activating UniRef90 and SwissProt proteins, decoder nearest-neighbor features, and activation statistics.

curl

curl "https://biohub.ai/esm/protein/api/v1alpha1/features/1234"

Python

import httpx

response = httpx.get("https://biohub.ai/esm/protein/api/v1alpha1/features/1234")
feature = response.json()

print(feature["label"], "—", feature["summary"])
print("Top UniRef proteins:", feature["top_100_uniref_ids"][:5])
print("Decoder neighbors:", feature["decoder_nearest_neighbors"][:5])

Response

{
  "feature_index": 1234,
  "label": "Folate cofactor-binding pocket",
  "summary": "Short blurb describing the feature.",
  "description": "Longer write-up …",
  "activation_pattern": "Domain-specific",
  "category": "Functional",
  "exemplar_protein_families": "Pfam: PF00185, PF01872",
  "uniref90_frequency": 4231,
  "uniref90_idf": 7.42,
  "uniref90_max_activation": 18.5,
  "top_100_uniref_ids": [
    {"uniref_id": "UPI002409BCBC", "activation": 18.5}
  ],
  "top_swissprot_activations": [
    {"uniprot_id": "Q8CHH5", "activation": 17.38}
  ],
  "decoder_nearest_neighbors": [80, 5236, 7143],
  "threshold": 0.12
}