본문으로 건너뛰기
cccskills
무료GitHub에 공개

fair-esm2

Convert protein sequences into numerical features with Meta AI's ESM-2 for machine learning. Extract features for individual amino acids or whole sequences, score mutations, and predict which positions in a protein may contact each other.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

Embed proteins with Meta AI's ESM-2 (`fair-esm` package). Use this skill when: (1) Extracting per-residue or per-sequence embeddings for downstream ML, (2) Masked-LM likelihood / mutation effect scoring, (3) Contact prediction from a sequence.

설치 방법 보기

이럴 때 유용합니다

  • Extracting protein features for machine learning
  • Scoring the effects of amino acid mutations
  • Predicting contacts from protein sequences
  • Processing multiple protein sequences together

포함된 파일(2)

  • SKILL.md5.9 KB
  • .catalog_stamp13 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

fair-esm2 — ESM-2 (Meta AI)

ESM-2 code and weights are MIT (Meta AI, github.com/facebookresearch/esm).

Package disambiguation. pip install fair-esm gives you import esm with esm.pretrained.* (ESM-1/2). Biohub's github.com/Biohub/esm fork (MIT) gives you from esm.models.esmfold2 import ESMFold2InputBuilder — see the esmfold2 skill. Both share the esm namespace but are different libraries. This skill covers fair-esm (the Meta package).

Prerequisites

RequirementMinimumRecommended
Python3.8+3.11
CUDA11.7+12.x
GPU VRAM8 GB (8M), 16 GB (650M)24 GB+ (650M / 3B)

How to run

Embeddings

import torch, esm

model, alphabet = esm.pretrained.esm2_t33_650M_UR50D()
model = model.eval().cuda()
bc = alphabet.get_batch_converter()

_, _, toks = bc([("ubq", "MQIFVKTLTGKTITLEVEPSDTIENVK")])
with torch.no_grad():
    out = model(toks.cuda(), repr_layers=[33])
emb = out["representations"][33]      # (1, L+2, 1280) — includes BOS/EOS
seq_emb = emb[0, 1:-1].mean(0)        # per-sequence mean

Masked-LM scoring

with torch.no_grad():
    out = model(toks.cuda(), repr_layers=[33])
logits = out["logits"][0, 1:-1]       # (L, |vocab|)
# WT marginal log-likelihood; for mutation scoring, mask the position and
# compare logit[mut] − logit[wt].

Contact prediction

with torch.no_grad():
    out = model(toks.cuda(), repr_layers=[33], return_contacts=True)
contacts = out["contacts"][0]         # (L, L)

Models

NameLayersDimParamsUse
esm2_t6_8M_UR50D63208 MFast smoke / tiny embeddings
esm2_t33_650M_UR50D331280650 MDefault embedding model
esm2_t36_3B_UR50D3625603 BBest embeddings, 24 GB+

Output format

out["representations"][layer] is (B, L_max+2, D), where L_max is the longest tokenized residue sequence in the batch. ESM-2 adds BOS/EOS and pads shorter sequences after EOS. The single-sequence 1:-1 slice above is valid without padding; in a mixed-length batch it includes EOS and may include padding for shorter sequences.

For a batch, count non-padding tokens separately for each sequence, then remove BOS/EOS before pooling. Here toks and out must come from the same batch:

token_lengths = (toks != alphabet.padding_idx).sum(1).tolist()  # includes BOS/EOS
emb = out["representations"][33]
residue_embs = [emb[i, 1 : token_length - 1] for i, token_length in enumerate(token_lengths)]
seq_embs = torch.stack([residues.mean(0) for residues in residue_embs])  # (B, D)

Use nonempty protein sequences. Keep the batch order when associating embeddings with sequence IDs. out["contacts"] (when return_contacts=True) has shape (B, L_max, L_max); for sequence i, retain only out["contacts"][i, : token_lengths[i] - 2, : token_lengths[i] - 2].

Remote compute

Needs ≥16 GB VRAM (650M model) and either pre-cached .pt checkpoints or egress to dl.fbaipublicfiles.com. Read compute_details({provider, mode:'read'}) for an environment with fair-esm and a torch-hub weight cache, then:

c = host.compute.create(provider)
job = c.submitJob(
    intent="ESM-2 650M embeddings for 200 sequences — 1×GPU, ~2 min",
    inputs=[
        {"src": "seqs.fasta", "dstFilename": "seqs.fasta"},
        {"src": "embed_esm2.py", "dstFilename": "embed_esm2.py"},
    ],
    command="python3 embed_esm2.py",
    environment=...,   # env name from compute_details
    outputs=["embeddings.pt"],
    timeoutSeconds=1800,
)
print(job.job_id)   # cell ends here — kernel never blocks on compute

Retain the exact returned job_id. Query that saved ID with the non-blocking c.attachJob(job_id).status() or .result() when its state or result is relevant; do not scan Job history. A final .result() read reports whether its follow-up was suppressed or had already been committed; otherwise the app starts the later analysis turn for an unread final result. See the remote-compute-ssh skill for details.

Inside embed_esm2.py, set TORCH_HOME to the provider's torch-hub cache mount (path is in compute_details) so esm.pretrained.* resolves locally.

Troubleshooting

SymptomCauseFix
ModuleNotFoundError: No module named 'esm.models'You want Biohub's esm fork, not fair-esmSee esmfold2 skill; this skill uses esm.pretrained.*
Slow first callDownloading weights via torch.hubSet TORCH_HOME to a cached location

Next: feed embeddings to a classifier. For structure prediction, use esmfold2.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Predict structures for single proteins or protein complexes with AlphaFold2 through ColabFold. Use confidence scores and comparisons with a designed structure to assess whether a designed sequence folds as intended.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Predicting a single protein's structure from its sequence
  • Predicting structures of protein complexes
  • Checking designed sequences against a target structure
aipoch/open-science5.3천2026년 10월 20일 업데이트

boltz

무료

Use Boltz-2 to predict structures of complexes containing proteins, DNA, RNA, and small molecules. Obtain structure files and confidence scores to assess designed binders, with optional predictions of binding strength between a protein and a small molecule.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Assessing a designed binder against its target
  • Predicting a protein and small-molecule complex
  • Predicting complexes containing DNA or RNA
aipoch/open-science5.3천2026년 10월 20일 업데이트

borzoi

무료

Predict patterns of gene expression and other genomic measurements from DNA sequences with Borzoi. Compare reference and altered sequences to estimate regulatory effects, generate predicted coverage tracks, and prioritize variants in regions that do not encode proteins.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Comparing predicted effects before and after a DNA variant
  • Generating predicted coverage tracks for a genomic region
  • Prioritizing variants in non-coding regions
aipoch/open-science5.3천2026년 10월 20일 업데이트

chai1

무료

Predict three-dimensional structures of complexes containing proteins, RNA, DNA, and small molecules with Chai-1. Compare candidate structures using confidence scores and clash indicators, or run repeated predictions from Python to evaluate designed binders.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Predicting antibody–antigen complex structures
  • Evaluating protein–ligand binding structures
  • Reassessing designed binders
aipoch/open-science5.3천2026년 10월 20일 업데이트

Prepare reproducible setup and removal instructions for software environments on Open-Science SSH hosts, including Slurm clusters. Check available tools, define named activation settings, and validate the environment where jobs run after the user installs it.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Preparing a remote environment for required packages
  • Making job environment activation repeatable
  • Checking software and GPU operation on Slurm nodes
aipoch/open-science5.3천2026년 10월 20일 업데이트

customize

무료

Create and manage focused Specialist agents and Skills through conversation. Draft agent roles, review available Skills and Connectors, configure access, and manage changes, with Skill creation and publishing handled by the application's internal skill-creator.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Creating a Specialist for a focused role
  • Updating an agent's Skills and Connectors
  • Creating, revising, and publishing Skills
aipoch/open-science5.3천2026년 10월 20일 업데이트

aipoch의 스킬 모두 보기

이 스킬의 문제 신고