这是一个从头开始训练MLM(类似RoBERTa的模型)的逼近方法,以便获得对化学空间的 Generative Recurrent Networks for De Novo Drug Design 的近似。
正如论文中所提到的:生成式人工智能模型为化学基因组学和De Novo药物设计提供了一种新方法,因为它们能够缩小对化学空间的搜索范围,聚焦在感兴趣的区域。他们使用了一个包含长短期记忆(LSTM)单元的生成循环神经网络(RNN),以SMILES字符串的形式捕捉分子表示的语法。学到的模式概率可以用于De Novo SMILES生成。这种分子设计的概念消除了对虚拟化合物库枚举的需求,且无需进行次要或外部活性预测即可进行虚拟化合物设计。
通过在438552个(经过清理处理*的)SMILES上从头训练MLM,我希望构建一个可以学习到这种分子组合的模型,以便在给定部分SMILES的情况下,能够生成合理的组合,从而提出新的药物候选。通过清理处理SMILES,我是指使用他们的 SMILES cleaning script 删除重复项、盐和立体化学信息。您可以在他们的 repo 中查看收集数据、预处理和训练LSTM的详细过程。
from transformers import pipeline fill_mask = pipeline( "fill-mask", model='mrm8488/chEMBL_smiles_v1', tokenizer='mrm8488/chEMBL_smiles_v1' ) # CC(C)CN(CC(OP(=O)(O)O)C(Cc1ccccc1)NC(=O)OC1CCOC1)S(=O)(=O)c1ccc(N)cc1 Atazanavir smile1 = "CC(C)CN(CC(OP(=O)(O)O)C(Cc1ccccc1)NC(=O)OC1CCOC1)S(=O)(=O)c1ccc(N)<mask>" fill_mask(smile1) # Output: ''' [{'score': 0.6040295958518982, 'sequence': '<s> CC(C)CN(CC(OP(=O)(O)O)C(Cc1ccccc1)NC(=O)OC1CCOC1)S(=O)(=O)c1ccc(N)nc</s>', 'token': 265}, {'score': 0.2185731679201126, 'sequence': '<s> CC(C)CN(CC(OP(=O)(O)O)C(Cc1ccccc1)NC(=O)OC1CCOC1)S(=O)(=O)c1ccc(N)N</s>', 'token': 50}, {'score': 0.0642734169960022, 'sequence': '<s> CC(C)CN(CC(OP(=O)(O)O)C(Cc1ccccc1)NC(=O)OC1CCOC1)S(=O)(=O)c1ccc(N)cc</s>', 'token': 261}, {'score': 0.01932266168296337, 'sequence': '<s> CC(C)CN(CC(OP(=O)(O)O)C(Cc1ccccc1)NC(=O)OC1CCOC1)S(=O)(=O)c1ccc(N)CCCl</s>', 'token': 452}, {'score': 0.005068355705589056, 'sequence': '<s> CC(C)CN(CC(OP(=O)(O)O)C(Cc1ccccc1)NC(=O)OC1CCOC1)S(=O)(=O)c1ccc(N)C</s>', 'token': 39}] '''
我还创建了一个没有应用上述清理SMILES脚本的 second version 。您可以像使用这个一样使用它。
fill_mask = pipeline( "fill-mask", model='/mrm8488/chEMBL26_smiles_v2', tokenizer='/mrm8488/chEMBL26_smiles_v2' )
Original paper 作者:
瑞士联邦理工学院(ETH),化学与应用生物科学系,Vladimir–Prelog–Weg 4, 8093, Zurich, Switzerland,斯坦福大学,计算机科学系,450 Sierra Mall, Stanford, CA, 94305, USA,inSili.com GmbH, 8049, Zurich, Switzerland,Gisbert Schneider,电子邮件:hc.zhte@trebsig。由 Manuel Romero/@mrm8488 创建 | LinkedIn
在西班牙用 ♥ 制作