Github官方文檔包含了整個包的所有代碼及使用方法:
Github官方文檔:https://github.com/facebookresearch/esm
一客扎、python代碼實(shí)現(xiàn)esm模型蛋白embedding
示例代碼見:E:\cgx硬盤\★Python and AI\(cgx★★)生物\esm (Facebook)\esm_protein_embedding\facebook_ems_model_protein_embedding.ipynb
二、整個FASTA文件內(nèi)蛋白embedding(采用命令行腳本)
1.按官網(wǎng)步驟pip安裝esm包岭接;
2.官網(wǎng)下載原文件并解壓得到:
image.png
3.進(jìn)入該文件一級目錄,在該目錄下打開終端并進(jìn)入安裝有esm包的環(huán)境待侵,然后運(yùn)行以下代碼(來源于Github官網(wǎng)):
python scripts/extract.py esm2_t33_650M_UR50D examples/data/some_proteins.fasta examples/data/some_proteins_emb_esm2 --repr_layers 0 32 33 --include mean per_tok
說明:
scripts/extract.py:原代碼
esm2_t33_650M_UR50D:用到的預(yù)訓(xùn)練模型(其他模型可以在官網(wǎng)找)
examples/data/some_proteins.fasta:待embedding的蛋白質(zhì)fasta文件
examples/data/some_proteins_emb_esm2:存儲fasta文件中每個蛋白的embedding結(jié)果文件(一個蛋白一個文件),其中some_proteins_emb_esm2是文件夾(目錄)名稱根穷,如有該目錄已經(jīng)存在則直接用物邑,不存在則自動生成。
--rep -layers: (默認(rèn)值:final only)選擇要包含嵌入的層溃论。
--include: 指定要保存的嵌入屎蜓。您可以使用以下方法:
- per_tok 完整的序列嵌入(seq_len x hidden_dim),即每個氨基酸都有一個hidden_dim長度的嵌入蔬芥。
- mean 完整的序列嵌入上的平均值(1 x hidden_dim)梆靖,即在(seq_len x hidden_dim)的基礎(chǔ)上對seq_len方向求平均,結(jié)果是所有蛋白質(zhì)都被表征成了hidden_dim長度的向量笔诵。
-
bos 包括序列開始標(biāo)記的嵌入。(注意:不要與預(yù)訓(xùn)練模型一起使用-我們在沒有boss令牌監(jiān)督的情況下進(jìn)行了訓(xùn)練)
下圖是我的實(shí)操:
1.png
從上圖可以看出姑子,代碼首先自動下載了模型乎婿,然后自動處理:
預(yù)訓(xùn)練模型存儲路徑.png
代碼運(yùn)行結(jié)束后,已經(jīng)在對應(yīng)目錄下生成了每個蛋白的embedding文件了(以.pt結(jié)尾):
自動生成目標(biāo)文件.png