用esm模型do蛋白 embedding

Github官方文档包含了整个包的所有代码及使用方法:
Github官方文档:https://github.com/facebookresearch/esm

一、python代码实现esm模型蛋白embedding

示例代码见:E:\cgx硬盘\★Python and AI\(cgx★★)生物\esm (Facebook)\esm_protein_embedding\facebook_ems_model_protein_embedding.ipynb

二、整个FASTA文件内蛋白embedding(采用命令行脚本)

1.按官网步骤pip安装esm包;

2.官网下载原文件并解压得到:

image.png

3.进入该文件一级目录,在该目录下打开终端并进入安装有esm包的环境,然后运行以下代码(来源于Github官网):

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:用到的预训练模型(其他模型可以在官网找)
examples/data/some_proteins.fasta:待embedding的蛋白质fasta文件
examples/data/some_proteins_emb_esm2:存储fasta文件中每个蛋白的embedding结果文件(一个蛋白一个文件),其中some_proteins_emb_esm2是文件夹(目录)名称,如有该目录已经存在则直接用,不存在则自动生成。
--rep -layers: (默认值:final only)选择要包含嵌入的层。
--include: 指定要保存的嵌入。您可以使用以下方法:

  • per_tok 完整的序列嵌入(seq_len x hidden_dim),即每个氨基酸都有一个hidden_dim长度的嵌入。
  • mean 完整的序列嵌入上的平均值(1 x hidden_dim),即在(seq_len x hidden_dim)的基础上对seq_len方向求平均,结果是所有蛋白质都被表征成了hidden_dim长度的向量。
  • bos 包括序列开始标记的嵌入。(注意:不要与预训练模型一起使用-我们在没有boss令牌监督的情况下进行了训练)
    下图是我的实操:
    1.png

    从上图可以看出,代码首先自动下载了模型,然后自动处理:
    预训练模型存储路径.png

    代码运行结束后,已经在对应目录下生成了每个蛋白的embedding文件了(以.pt结尾):
    自动生成目标文件.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容