原文链接:Diffusion Language Models Are Versatile Protein Learners
开源信息:GitHub - bytedance/dplm,Apache 2.0 License。

DPLM是字节跳动在ICML2024上提出的一种基于扩散的语言模型,用于蛋白质序列的生成。

算法解析

蛋白序列由20种天然氨基酸组成,因此假设蛋白序列$x$服从分类分布,
即为$x\sim \text{Cat}(x; p)$,其中$p$是蛋白序列的类别分布。
对于离散分布的扩散,其forward过程是一个离散分布转移的马尔可夫过程。
可以用下列公式表示:

反向过程则是利用了PLM进行概率分布的逆向估计,训练过程中会约束相同时间步长的正反向过程的分布一致(KL散度)。

同时,由于从头直接训练PLM+扩散模型存在困难,因此采用了预训练的PLM作为初始化,然后进行扩散模型的训练。而且作者将PLM训练的MASK比例一开始设置较小,逐渐增加来提升模型起初的学习效果。

实验结果

作者在多个下游场景中进行了实验。

无条件序列生成

没有任何条件限制下进行了序列设计,然后使用ESMFold进行结构预测,分别评估了下列指标:

  • foldability:使用ESMFold结构预测,根据pLDDT值判断性能,算法表现较好。
  • novelty:与PDB中结构的TMscore,越小越好,算法表现一般。
  • diversity:多样性,设计序列内的相互TMscore,越大越好,算法表现较好。

基于PLM表征层的蛋白功能和性质预测

PLM的一个重要应用就是蛋白功能和性质的预测,作者将其应用到热稳定性、PPI、金属离子结合和GO术语分类等任务中,均取得了较好的效果。但是也需要注意他所比较的模型也是属于PLM的范畴,实际上性能不能超过很多专门设计的模型,如GO功能注释的AnnoPRO

给定条件下的序列生成

这里的条件可以分为两种:

  • 给定序列上下文,进行序列生成,比较适用于motif-scaffold设计。
  • 给定结构,进行序列设计。

前者是PLM的固有能力,而后者则需要整合结构模块。作者利用了此前的工作ByProt,将结构模块整合到PLM中,然后进行序列生成。

相比于base模型,DPLM总体指标有提升。