跳转到主要内容

'Gotta be SAFE:分子设计的新框架'论文的实现

项目描述

:safety_vest: SAFE

Sequential Attachment-based Fragment Embeding (SAFE) 是一种新型的分子线表示法,它将分子表示为无序的片段块序列,以改善使用生成模型进行分子设计。



论文 | 文档 | 🤗 模型 | 🤗 训练数据集



PyPI Conda PyPI - Downloads Conda Code license Data License GitHub Repo stars GitHub Repo stars arXiv

test release code-check doc

SAFE 概述

SAFE 是深度学习分子表示。它利用 SMILES 解码方案中的特殊性进行编码,允许将分子表示为连续的连接片段序列。SAFE 字符串是有效的 SMILES 字符串,因此可以保留相同数量的信息。将分子直观地表示为有序的连接片段序列大大简化了分子设计中经常遇到的任务

  • 从头设计
  • 超结构生成
  • 骨架装饰
  • 基序扩展
  • 连接体生成
  • 骨架形态变化。

构建 SAFE 字符串需要定义分子碎片化算法。默认情况下,我们使用 [BRICS],但也可以使用任何其他碎片化算法。下面的图像说明了构建 SAFE 字符串的过程。生成的字符串是有效的 SMILES,可以被 datamolRDKit 读取。


新闻 🚀

💥 2024/01/15 💥

  1. @IanAWatsonLillyMol 中实现了 SAFE 的 C++ 版本,该版本相当快,并使用自定义的碎片化算法。请按照仓库中的安装说明进行安装,并在此处查看 CLI 文档:docs/Molecule_Tools/SAFE.md

安装

您可以使用 pip 安装 safe

pip install safe-mol

您可以使用 conda/mamba

mamba install -c conda-forge safe-mol

数据集和模型

类型 名称 信息 大小 评论
模型 datamol-io/safe-gpt 87M 参数 350M 默认模型
训练数据集 datamol-io/safe-gpt 1.1B 行 250GB 训练数据集
药物基准数据集 datamol-io/safe-drugs 26 行 20 kB 基准数据集

用法

请参阅 文档,其中包含有关如何开始使用 safe 的教程、提供的函数的详细描述,以及如何开始使用 SAFE-GPT 的示例。

API

以下是我们总结的 safe 包提供的某些关键函数。

函数 描述
safe.encode 将 SMILES 字符串转换为相应的 SAFE 字符串。
safe.decode 将 SAFE 字符串转换为相应的 SMILES 字符串。SAFE 解码器仅对 RDKit 的 Chem.MolFromSmiles 进行了增强,并添加了可选的校正参数,以处理缺失的氢键。
safe.split 将 SAFE 字符串分词以构建生成模型。

示例

SAFE 和 SMILES 表示之间的转换

import safe

ibuprofen = "CC(Cc1ccc(cc1)C(C(=O)O)C)C"

# SMILES -> SAFE -> SMILES translation
try:
    ibuprofen_sf = safe.encode(ibuprofen)  # c12ccc3cc1.C3(C)C(=O)O.CC(C)C2
    ibuprofen_smi = safe.decode(ibuprofen_sf, canonical=True)  # CC(C)Cc1ccc(C(C)C(=O)O)cc1
except safe.EncoderError:
    pass
except safe.DecoderError:
    pass

ibuprofen_tokens = list(safe.split(ibuprofen_sf))

训练/微调(新)模型

可用命令行界面来训练新模型,请运行 safe-train --help。您还可以提供现有的检查点以继续训练或在您的数据集上进行微调。

例如

safe-train --config <path to config> \
    --model-path <path to model> \
    --tokenizer  <path to tokenizer> \
    --dataset <path to dataset> \
    --num_labels 9 \
    --torch_compile True \
    --optim "adamw_torch" \
    --learning_rate 1e-5 \
    --prop_loss_coeff 1e-3 \
    --gradient_accumulation_steps 1 \
    --output_dir "<path to outputdir>" \
    --max_steps 5

参考文献

如果您使用此存储库,请引用以下相关 论文

@misc{noutahi2023gotta,
      title={Gotta be SAFE: A New Framework for Molecular Design},
      author={Emmanuel Noutahi and Cristian Gabellini and Michael Craig and Jonathan S. C Lim and Prudencio Tossou},
      year={2023},
      eprint={2310.10773},
      archivePrefix={arXiv},
      primaryClass={cs.LG}
}

许可

训练数据集根据 CC BY 4.0 许可。有关详细信息,请参阅 DATA_LICENSE。此代码库根据 Apache-2.0 许可。有关详细信息,请参阅 LICENSE

请注意,SAFE-GPT 的模型权重仅限于研究目的(CC BY-NC 4.0)。

开发生命周期

设置开发环境

mamba create -n safe -f env.yml
mamba activate safe

pip install --no-deps -e .

测试

您可以使用以下方式在本地运行测试

pytest

项目详情


下载文件

下载您平台对应的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

safe_mol-0.1.12.tar.gz (507.0 kB 查看散列值)

上传时间 源代码

构建分发

safe_mol-0.1.12-py3-none-any.whl (60.4 kB 查看散列值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面