'Gotta be SAFE:分子设计的新框架'论文的实现
项目描述
:safety_vest: SAFE
Sequential Attachment-based Fragment Embeding (SAFE) 是一种新型的分子线表示法,它将分子表示为无序的片段块序列,以改善使用生成模型进行分子设计。
SAFE 概述
SAFE 是深度学习分子表示。它利用 SMILES 解码方案中的特殊性进行编码,允许将分子表示为连续的连接片段序列。SAFE 字符串是有效的 SMILES 字符串,因此可以保留相同数量的信息。将分子直观地表示为有序的连接片段序列大大简化了分子设计中经常遇到的任务
- 从头设计
- 超结构生成
- 骨架装饰
- 基序扩展
- 连接体生成
- 骨架形态变化。
构建 SAFE 字符串需要定义分子碎片化算法。默认情况下,我们使用 [BRICS],但也可以使用任何其他碎片化算法。下面的图像说明了构建 SAFE 字符串的过程。生成的字符串是有效的 SMILES,可以被 datamol 或 RDKit 读取。
新闻 🚀
💥 2024/01/15 💥
- @IanAWatson 在 LillyMol 中实现了 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 查看散列值)