Self-referencing embedded strings (SELFIES): A 100% robust molecular string repr

558 阅读4分钟

本人已参与【新人创作礼】活动,一起开启掘金创作之路。

论文名称:Self-referencing embedded strings (SELFIES): A 100% robust molecular string representation 论文地址:iopscience.iop.org/article/10.… 论文作者:Mario Krenn, Florian Häse, AkshatKumar Nigam, Pascal Friederich, Alan Aspuru-Guzik 作者博客:aspuru Machine Learning: Science and Technology

Who?

多伦多大学的团队,2019年中旬第一次发布。 一作 Mario Krenn是17年从维也纳大学毕业,现在是MPI的research group leader,他在科学美国人上有篇文章总结了他的研究内容:AI Designs Quantum Physics 通讯作者Alan Aspuru-Guzik是多大搞化学信息学的教授,接近5w citations,最高被引的是NeurIPS 15的一篇用CNN来学习分子的fingerprint的工作,第一次跳出传统的circular fingerprints的特征提取,引用量2k3百多。

What?

提出了称为SELFIES的分子表示方法

Why?

用SMILES生成分子:

  1. 语法(synthactical)规则不合法:比如括号编号对不上什么的
  2. 语义(semantic)规则不合法:比如化合价(valence)对不上 DeepSMILES解决了大部分语法问题,但是没有解决语义问题。 另外,用Graph生成分子不容易体现结构信息(如环的存在),字符串的表示可以理解为是2.5D的表示,所以字符串更好。

How?

Previous works 之前有专门为了ML针对SMILES的改进:DeepSMILES DeepSMILES主要就是针对环和分支特殊处理 SELFIES设计

  1. Branch和Ring单独被表达(语法问题)
  2. 用一个状态转移矩阵表示偏移(语义问题) 从而做到:即使任意生成的字符串都是合法的 具体来看, 状态转移矩阵 image.png 假设生成的SELFIES为:[F][=C][=C][#N] 那么一开始代入X0,第一行找到[F]得到[FX1]。现在是X_1,下一个字符是[=C],那就找到行为X1列为[=C]的元素,为[CX3],替掉X1就得到现在的表达式为FCX3。现在是X3,下一个字符是[=C],那就找到对应元素为[=CX2],现在的表达式更新为FC=CX2。再来一次得到[=N],表达式为FC=C=N,没有X了,所以是最终表达式。 这个例子没有展示环和分支的处理,可以看到如果进入环或者分支的话会得到函数B(Q,Xi)XjB(Q, X_i)X_j或者R(Q)XjR(Q)X_j,表示的是用接下来的QQ个符号,并在这个子结构开始于XiX_i的状态,出了这个子结构以XjX_j状态继续。 另外,ϵ\epsilon 是空字符串,ign是这个结构之后的SELFIES符号都可以被忽略,即break。 这个表只是展示了QM9数据集出现的非离子情况,SELFIES实现了对离子,同分异构体的扩展状态转移矩阵。 这里可以看到,即使生成的SELFIES不合法,经过状态转移矩阵“解码”为SMILES表达式之后也会变成合法的,有效保证了语义规则的合法性。 单独表达Branch和Ring 先讲状态转移矩阵的原因是在单独表达Branch和Ring的时候需要引入长度的概念,而这个长度是通过状态转移矩阵得到的。举个例子: image.png SMILES字符串的生成应该熟悉了,这里没有特殊表示芳香环。然后看到SELFIES这里在[Branch][Ring]之后的字符虽然都是某个原子,但是在状态转移矩阵里他们就都是数字,Branch之后的数字Q表示的是从这里之后几个字符都是在分支内,Ring之后的数字Q+1表示他和主链上成环原子的距离。 Comparison 和SMILES的对比看这个很有意思的可视化就够了: image.png 先拿VAE在QM9数据集上训练得到241维latent。上面一行:选取任意一个平面(z0和z1357),原点为圆心采样的区域(没选中的维度都是0),将他们全部解码到对应的分子评估他们合法性的比例,绿色是100%,红色是0%。下面一行:选两维(z0和z1),还是从原点为圆心,但是偏移第三个维度(-2,-1,1,2)得到的结果。 和DeepSMILES一起比,作者做的是添加扰动的实验,对合法的字符串添加1,2,3处扰动看三种表达式扰动后的合法性。SMILES是26.6%, 9,0% and 3.7%,DeepSMILES是58,9%, 35,8% and 24,3%,SELFIES全是100%。

And?

  • Code实现覆盖了最完整的合成分子数据集PubChem,只用不到500个字符覆盖了72million的分子。另外支持每个环上或每个分支内最多8000个原子。
  • 现在SELFIES还没办法像SMILES那样包含所有性质,包括polyvalency, aromaticity, isotopic substitution等特性。 #todo
    • 这些特性是啥
  • Important question:是否100%合法的latent space就都能提供足够有用的信息