SELFIES在机器学习中的应用:化学生成模型的完美输入格式

【免费下载链接】selfies Robust representation of semantically constrained graphs, in particular for molecules in chemistry 【免费下载链接】selfies 项目地址: https://gitcode.com/gh_mirrors/se/selfies

SELFIES(自引用嵌入字符串)是一种100%鲁棒的分子字符串表示方法,专为机器学习模型设计,尤其适用于化学生成模型。作为分子表示的革命性突破,SELFIES解决了传统SMILES格式在机器学习应用中存在的诸多问题,为化学信息学和药物发现领域带来了全新的可能性。

为什么选择SELFIES作为分子表示格式?

在化学生成模型中,分子表示的选择至关重要。传统的SMILES格式虽然广泛使用,但存在几个严重的局限性:

  • 有效性问题:随机修改SMILES字符串很容易产生无效分子
  • 语法复杂性:SMILES的语法规则复杂,增加了模型学习难度
  • 表示不一致:同一分子可能有多种SMILES表示,影响模型训练

相比之下,SELFIES具有以下显著优势:

  • 100%生成有效性:任何SELFIES字符串都能解码为有效分子
  • 语法简单性:固定长度的符号系统,易于模型处理
  • 表示唯一性:每个分子对应唯一的SELFIES表示
  • 语义约束:内置化学规则,确保生成分子的合理性

SELFIES的核心优势:从编码到生成

强大的编码与解码能力

SELFIES提供了完整的分子表示解决方案,主要功能包括:

  • selfies.encoder:将SMILES字符串转换为SELFIES字符串
  • selfies.decoder:将SELFIES字符串转换回SMILES字符串
  • selfies.selfies_to_encoding:将SELFIES转换为标签或独热编码
  • selfies.encoding_to_selfies:将编码转换回SELFIES字符串

这些功能通过selfies/encoder.py等核心模块实现,确保了分子表示的准确性和可靠性。

卓越的潜在空间有效性

在变分自编码器(VAE)等生成模型中,SELFIES展现出显著优于SMILES的潜在空间有效性。下图对比了SMILES和SELFIES在VAE潜在空间中的有效性:

SELFIES与SMILES在VAE潜在空间中的有效性对比

从图中可以清晰看到,SMILES的潜在空间中存在大量无效区域(红色部分),而SELFIES的潜在空间几乎完全有效(绿色部分)。这种优势使得SELFIES特别适合用于分子生成和优化任务。

结构化的符号系统

SELFIES采用结构化的符号系统,每个符号代表一个明确的化学概念。以下是SELFIES符号索引表的一部分:

SELFIES符号索引表

这种结构化表示使得机器学习模型能够更轻松地学习分子的化学特性和结构关系,为生成新颖且有效的分子提供了坚实基础。

SELFIES在机器学习模型中的应用

分子生成模型

SELFIES已成为多种分子生成模型的首选输入格式,包括:

  • 变分自编码器(VAE):如examples/vae_example/目录中的实现,使用SELFIES作为输入可以显著提高生成分子的有效性和多样性
  • 生成对抗网络(GAN):在original_code_from_paper/gan/GAN_selfies/中展示了使用SELFIES的GAN实现
  • 强化学习模型:SELFIES的结构化特性使其成为强化学习优化分子性质的理想表示

分子性质预测

除了生成模型,SELFIES也被成功应用于分子性质预测任务:

  • 通过将SELFIES转换为独热编码或嵌入向量,可以直接输入到神经网络中
  • SELFIES的语法结构有助于模型学习分子结构与性质之间的关系
  • 内置的化学约束减少了异常样本对模型的干扰

开始使用SELFIES

要开始在您的机器学习项目中使用SELFIES,首先需要克隆仓库:

git clone https://gitcode.com/gh_mirrors/se/selfies

然后可以按照docs/目录中的文档进行安装和使用。基本的使用示例包括:

SMILES与SELFIES之间的转换

import selfies as sf

# SMILES转SELFIES
smiles = "C=CF"
selfies = sf.encoder(smiles)
print(selfies)  # 输出: '[C][=C][F]'

# SELFIES转SMILES
smiles = sf.decoder(selfies)
print(smiles)  # 输出: 'C=CF'

SELFIES编码与解码

import selfies as sf

# 创建SELFIES字母表
selfies_list = ["[C][=C][F]", "[C][C][O]"]
alphabet = sf.get_alphabet_from_selfies(selfies_list)
vocab_size = len(alphabet)
print("字母表:", alphabet)

# SELFIES编码
selfies = "[C][=C][F]"
label, one_hot = sf.selfies_to_encoding(selfies, alphabet, pad_to_len=5)
print("标签编码:", label)
print("独热编码形状:", one_hot.shape)

结论:SELFIES引领化学生成模型新方向

SELFIES作为一种革命性的分子表示方法,为化学生成模型提供了理想的输入格式。其100%的生成有效性、结构化的符号系统以及卓越的潜在空间特性,使其在各种机器学习模型中表现出色。

无论是分子生成、性质预测还是化学空间探索,SELFIES都展现出超越传统SMILES格式的显著优势。随着化学信息学和药物发现领域对机器学习依赖的增加,SELFIES无疑将成为推动这些领域发展的关键技术之一。

通过original_code_from_paper/examples/目录中的示例代码,研究人员和开发者可以快速掌握SELFIES的应用方法,将其集成到自己的机器学习项目中,开启化学生成模型的新篇章。

【免费下载链接】selfies Robust representation of semantically constrained graphs, in particular for molecules in chemistry 【免费下载链接】selfies 项目地址: https://gitcode.com/gh_mirrors/se/selfies

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐