Skip to content
Skillpedia
Agents51k · #1863

esm

Has your agent generate proteins and predict their structures. It's useful for researchers studying proteins and how they work.

What it does

This tool uses a toolkit called ESM to create, understand, and predict protein shapes. It can generate new protein sequences, create numerical representations (embeddings) for existing sequences, and predict the 3D structure (folding) of proteins.

When to use it

  • ✓To generate new protein sequences based on a pattern.
  • ✓To get a numerical representation of a protein sequence for further analysis.
  • ✓To predict the 3D structure of a protein from its sequence.

Example of what to ask your AI

“Generate a new protein sequence based on 'MPRT___KEND' and then predict its 3D structure.”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/K-Dense-AI/scientific-agent-skills/blob/main/skills/esm/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/K-Dense-AI/scientific-agent-skills/blob/main/skills/esm/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

You provide a protein sequence or a pattern to the tool. It uses pre-trained models to generate new sequences, calculate embeddings, or predict the 3D structure. Results are checked for errors before being returned.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add K-Dense-AI/scientific-agent-skills --skill esm

Or download just the file:

curl -L https://raw.githubusercontent.com/K-Dense-AI/scientific-agent-skills/main/skills/esm/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

ESM: protein generation, embeddings, and folding

When to use

Use for Biohub's esm SDK: ESM3 masked multimodal generation, ESMC sequence representations, and ESMFold2 all-atom prediction. The former Forge platform migrated to https://biohub.ai, including ESM3; SDK class names still contain Forge. This skill targets the released esm 3.4.1.post1, verified against its wheel and current official documentation.

fair-esm is Meta's separate, older ESM2/ESMFold/ESM-IF distribution. Both packages import as esm; install them in separate environments. The legacy esm.pretrained.esm2_* interface is not the Biohub ESMC interface. Hugging Face Transformers' native ESMC implementation is another API: do not interchange its version requirements or output types with this SDK.

Setup and model choice

uv venv --python 3.12 .venv-esm
uv pip install --python .venv-esm/bin/python "esm==3.4.1.post1"

The release declares Python >=3.12, Torch >=2.11,<2.12 and Transformers

=4.57.6,<5. Python 3.12, Torch 2.11.0 and Transformers 4.57.6 were tested on CPU. Linux x86_64 installs include GPU-specific dependencies; use a supported inference machine and budget disk space. Flash Attention is optional; it is unnecessary for the tiny CPU tests. Do not install this stack into a shared environment containing incompatible Transformers or Torch pins.

Task Local model/API Hosted client/model
ESM3 sequence/structure/function generation ESM3.from_pretrained("esm3-sm-open-v1") client("esm3-medium-2024-08"); small/large IDs in the ESM3 reference
ESMC embeddings EsmcForMaskedLM and EsmcTokenizer; biohub/ESMC-300M, biohub/ESMC-600M, biohub/ESMC-6B esmc_client("esmc-600m-2024-12"); 300M/6B also documented
ESMFold2 all-atom structures EsmFold2Model, ESMFold2InputBuilder; biohub/ESMFold2 esmfold2_client("esmfold2-fast-2026-05")

ESMC 6B weights are now available locally. Current Biohub model cards identify MIT licensing, with ESMC cards also linking third-party notices; review the exact selected artifact's card and access requirements. The older ESMC class remains as a deprecated compatibility wrapper. Local model sizes, hosted availability and account quotas are different constraints; a larger model does not guarantee better performance on a particular assay.

Workflow

  1. Specify the sequence/chain/residue mapping and whether the objective is generation, representation extraction or folding. Preserve input IDs and source provenance. Reject accidental ..., spaces, FASTA headers or gaps in plain single-chain sequences rather than silently deleting them.
  2. Choose a local checkpoint or explicit hosted model ID. Record SDK, checkpoint revision, model settings, mask locations and random seed where supported.
  3. Check every SDK result for ESMProteinError. Hosted failures may be returned as values. Use finite request timeouts, context managers and bounded concurrency. See hosted contracts.
  4. Validate the output contract: sequence length and fixed residues, residue-only embedding axes, or chain/atom mapping and confidence. Keep model predictions separate from experimental validation.
  5. Save sequences/structures with settings and identifiers. Avoid caches keyed only by sequence when model, structure, function or generation settings differ.

ESM3 completion and fresh structure prediction

Illustrative pretrained inference; no weights or hosted jobs were run in this refresh. This toy sequence demonstrates API mechanics, not a functional design.

import torch
from esm.models.esm3 import ESM3
from esm.sdk.api import ESMProtein, ESMProteinError, GenerationConfig

model = ESM3.from_pretrained("esm3-sm-open-v1", device=torch.device("cpu"))
prompt = "MPRT___KEND"
completed = model.generate(
    ESMProtein(sequence=prompt),
    GenerationConfig(track="sequence", num_steps=3, temperature=0.7),
)
if isinstance(completed, ESMProteinError):
    raise completed
assert completed.sequence is not None and len(completed.sequence) == len(prompt)
assert "_" not in completed.sequence
assert all(a == "_" or a == b for a, b in zip(prompt, completed.sequence))

# A fresh sequence-only prompt prevents old coordinates conditioning the check.
folded = model.generate(
    ESMProtein(sequence=completed.sequence),
    GenerationConfig(track="structure", num_steps=8),
)
if isinstance(folded, ESMProteinError):

…
FAQ

What is the difference between ESM3, ESMC, and ESMFold2?

ESM3 is for sequence and structure generation. ESMC creates numerical representations (embeddings) of sequences. ESMFold2 predicts the 3D structure (folding) of a protein.

Can I run this tool on my computer?

Yes, you can install and run the models locally, but you might need a powerful computer, especially for larger models.

What is an 'embedding'?

It's a way to represent a protein sequence as a set of numbers. This helps computers understand and compare different sequences.

Details

Original description by the author

Uses the Biohub esm Python SDK for ESM3 protein generation, ESMC embeddings, and ESMFold2 all-atom folding. Applies to local model inference and Biohub hosted clients, including former Forge workflows; distinguishes the separate legacy fair-esm distribution.

repo: K-Dense-AI/scientific-agent-skills

Popularity

GitHub stars
51k
Ranking position
#1863
License
MIT
Updated
10/15/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills