文章目錄
- ESM3介紹
- ESM3在線使用
- 本地使用api批量預測
- ESM相較于AlphaFold的優勢
ESM3介紹
ESM3是由EvolutionaryScale(前Meta團隊)開發的一款蛋白質大語言模型,于2025年以《用語言模型模擬 5 億年的進化》為題正式發表在Science上
文章鏈接: https://www.science.org/doi/10.1126/science.ads0018
文章展示了一個例子,如何用ESM3設計新型綠色熒光蛋白(GFP),設計出的新蛋白與自然界中最相近的序列相比也僅有58%的相似度,證明該模型在拓展蛋白質新編碼空間上具有巨大潛力。
盡管該science論文主推ESM3的蛋白質設計功能,本文僅介紹如何使用ESM3的蛋白質結構預測功能
ESM3在線使用
使用EvolutionaryScale的在線網站可以預測結構、生成新蛋白,速度非常快,500個氨基酸左右的蛋白結構基本幾秒內就可以給出,比AlphaFold3快不少
鏈接: https://forge.evolutionaryscale.ai/tools/predict
注意非商業使用需要通過學術機構后綴的郵箱來申請
本地使用api批量預測
如果你不想下載那些很大的權重文件到本地,或者你沒有算力足夠的機器來運行,可以使用官方提供的api來進行批量預測
首先需要在你的電腦上安裝esm3,非常簡單,只需要
pip install esm
即可安裝
安裝完畢后在EvolutionaryScale上獲取你的api keys
在下面填入你 EvolutionaryScale的token即可,兩個都是可以免費獲取的
from esm.sdk import client
from esm.sdk.api import ESM3InferenceClient, ESMProtein, GenerationConfigmodel: ESM3InferenceClient = client("esm3-large-2024-03", token="<your evolutionary token>")sequence= "MALWMRLLPLLALLALWGPDPAAAFVNQHLCGSHLVEALYLVCGERGFFYTPKTRREAEDLQVGQVELGGGPGAGSLQPLALEGSLQKRGIVEQCCTSICSLYQLENYCN"
# 替換為你感興趣的蛋白序列protein = ESMProtein(sequence=sequence)protein = model.generate(protein, GenerationConfig(track="structure", num_steps=8,temperature=0.1))
protein.to_pdb("./predict.pdb")
使用EvolutionarySclae的api時可以有以下幾種模型進行選擇,替換client的模型名稱即可:
同時預測時num_steps和temperature參數都是可調的,num_steps越多消耗的tokens數也越多
每日默認總積分數只有10分,在Credits處可查
可以通過填寫一下表格申請到每日100個credits,填了一下發現幾分鐘就給通過了,估計也沒有人工審批
ESM相較于AlphaFold的優勢
之前一直想做大規模蛋白質結構預測,盡管ColabFold和AlphaFold 3都已經公開可用,但這兩個模型都需要進行多序列比對,而這一步在部署到本地后十分耗時,之前本人嘗試過結果表明一個200氨基酸左右的序列需要近20分鐘才能預測完成。
相比之下,如今使用ESM3每個蛋白預測時間在num_steps數設置合適的時候半分鐘不到就可以預測完成,極大提高效率。而Credits限制的問題可以通過開多個賬號或者本地部署ESM3模型來解決,比解決AlphaFold MSA的問題方便多了。