Protein Fold Space - SCOPe ASTRAL 40%
15,177 domainsbiologyprotein-sciencestructural
A TMAP of the SCOPe ASTRAL 40% dataset (15,177 representative protein domains at 40% sequence identity, 1,257 folds). The tree separates SCOP structural classes: all-alpha (2,644), all-beta (3,059), alpha/beta (4,463), alpha+beta (3,653), and smaller classes. 19.1% of tree edges cross class boundaries, with the most connected pair being all-beta <-> alpha+beta (828 edges). Mean subtree purity is 0.879 (median 1.0). Bridge proteins - the closest cross-class edges - connect specific domain pairs at distances as low as 0.005. A fold transition path from all-alpha to all-beta traverses just 7 hops through alpha+beta intermediates.
Protein Fold Space - SCOPe ASTRAL 40%Open full page
Loading interactive demo…
How it was made
generate.pypython
from tmap import TMAP
from tmap.graph.analysis import boundary_edges, subtree_purity
model = TMAP(metric="cosine", n_neighbors=15, seed=42)
model.fit(esm2_embeddings)
# Cross-class boundary edges
be = boundary_edges(model.tree_, scop_classes)
print(f"Boundary edges: {len(be)} / {len(model.tree_.edges)}")
# Subtree purity by structural class
purity = subtree_purity(model.tree_, scop_classes, min_size=10)
print(f"Mean purity: {purity[~np.isnan(purity)].mean():.3f}")
# Fold transition path: all-alpha -> all-beta
path = model.path(alpha_domain, beta_domain)
model.to_html("protein_folds.html", color=fold_class)