[ PROMPT_NODE_26540 ]
esm
[ SKILL_DOCUMENTATION ]
# ESM: 进化尺度建模 (Evolutionary Scale Modeling)
## 概述
ESM 提供最先进的蛋白质语言模型,用于理解、生成和设计蛋白质。此工具支持两个模型系列:用于跨序列、结构和功能进行生成式蛋白质设计的 ESM3,以及用于高效蛋白质表示学习和嵌入的 ESM C。
## 核心能力
### 1. 使用 ESM3 进行蛋白质序列生成
利用多模态生成建模生成具有所需属性的新型蛋白质序列。
**何时使用:**
- 设计具有特定功能属性的蛋白质
- 补全部分蛋白质序列
- 生成现有蛋白质的变体
- 创建具有所需结构特征的蛋白质
**基本用法:**
python
from esm.models.esm3 import ESM3
from esm.sdk.api import ESM3InferenceClient, ESMProtein, GenerationConfig
# 本地加载模型
model: ESM3InferenceClient = ESM3.from_pretrained("esm3-sm-open-v1").to("cuda")
# 创建蛋白质提示词
protein = ESMProtein(sequence="MPRT___KEND") # '_' 代表掩码位置
# 生成补全
protein = model.generate(protein, GenerationConfig(track="sequence", num_steps=8))
print(protein.sequence)
**通过 Forge API 进行远程/云端使用:**
python
from esm.sdk.forge import ESM3ForgeInferenceClient
from esm.sdk.api import ESMProtein, GenerationConfig
# 连接到 Forge
model = ESM3ForgeInferenceClient(model="esm3-medium-2024-08", url="https://forge.evolutionaryscale.ai", token="")
# 生成
protein = model.generate(protein, GenerationConfig(track="sequence", num_steps=8))
有关详细的 ESM3 模型规范、高级生成配置和多模态提示词示例,请参阅 `references/esm3-api.md`。
### 2. 结构预测与反向折叠
使用 ESM3 的结构轨道进行序列结构预测或反向折叠 (从结构设计序列)。
**结构预测:**
python
from esm.sdk.api import ESM3InferenceClient, ESMProtein, GenerationConfig
# 从序列预测结构
protein = ESMProtein(sequence="MPRTKEINDAGLIVHSP...")
protein_with_structure = model.generate(
protein,
GenerationConfig(track="structure", num_steps=protein.sequence.count("_"))
)
# 访问预测结构
coordinates = protein_with_structure.coordinates # 3D 坐标
pdb_string = protein_with_structure.to_pdb()
**反向折叠 (从结构生成序列):**
python
# 为目标结构设计序列