ESM-3 FAQ
Common questions about ESM-3 embeddings, model selection, and comparison with ESMFold.
These answers cover how ESM-3 differs from ESMFold, which model size to pick, and how its embeddings behave for similarity, function prediction, and downstream ML — check here when you're choosing a model variant or deciding whether embeddings fit your task.
Frequently asked questions
What is the difference between ESM-3 and ESMFold?
ESM-3 and ESMFold are complementary tools from the ESM model family, but they serve different purposes:
- ESM-3 produces high-dimensional embedding vectors for similarity search, function prediction, clustering, and feature extraction. It does not predict 3D structures.
- ESMFold predicts atomic-level 3D protein structures from amino acid sequences. It produces PDB files with confidence scores (pLDDT).
Use ESM-3 when you need numerical representations for machine learning or comparison. Use ESMFold when you need a 3D structural model for docking, visualization, or structural analysis.
What sequences are supported?
Single-chain protein sequences containing only the 20 standard amino acids (ACDEFGHIKLMNPQRSTVWY), up to 2,048 residues in length. Non-standard amino acids, ambiguous codes, and multi-chain complexes are not supported.
Which model size should I use?
- Small (1.4B): Best for batch processing, rapid exploration, or memory-constrained environments. Good enough for clustering and initial screening.
- Medium (7B): Recommended default. Good balance of embedding quality and computational cost. Suitable for most tasks including function prediction and similarity analysis.
- Large (98B): Best for high-stakes analyses where embedding quality is critical. Significantly slower and more memory-intensive. Use for final-stage analyses, not exploratory work.
Can I compare embeddings from different model sizes?
No. Embeddings from different model sizes live in different vector spaces with different dimensions. A sequence embedded with the small model produces a 1,536-dimensional vector, while the large model produces a 6,144-dimensional vector. Always use the same model size when comparing embeddings across sequences.
Are embeddings deterministic?
Yes. Given the same sequence, model variant, and parameters, ESM-3 always produces identical embeddings. No random seed is needed for reproducibility.
How do ESM-3 embeddings compare to BLAST for protein similarity?
ESM-3 embeddings capture functional and structural similarity beyond raw sequence identity. They are faster than BLAST for pairwise comparison (cosine similarity vs. alignment) and can detect remote homology that BLAST misses. However, BLAST provides explicit alignments with statistical significance (E-values), which embeddings do not. For comprehensive homology analysis, use both together.
Can ESM-3 predict protein function?
Yes, through zero-shot function prediction. ESM-3's multimodal architecture jointly models sequence, structure, and function during training. The embedding vectors encode functional information that can be used for GO term prediction, enzyme classification, and functional annotation of novel proteins without requiring homology search.
What is the attention map used for?
Attention maps from the transformer layers encode predicted residue-residue interactions. Averaging attention weights across heads and layers produces an approximate contact map that can identify physically close residues in the 3D structure. This is useful for quick structural insight without running a full structure prediction. For higher-accuracy contact information, use ESMFold.
How do I use embeddings in my own ML models?
Download the per-residue (L x D) or per-sequence (1 x D) embedding tensors in NPY or PT format. Per-sequence embeddings work well as feature vectors for standard classifiers (random forest, XGBoost, logistic regression). Per-residue embeddings are suitable for sequence-level models (RNNs, 1D-CNNs, transformers) that make per-position predictions. Combine with molecular descriptors from DeepChem for multi-modal protein-ligand models.
Read next
Was this page helpful?