跳转到主要内容

Fork of MHNreact for use in the syntheseus library

项目描述

MHNreact

arXiv arXiv License Hf Demo Open In Colab

摘要 | 环境 | 数据 | 训练 | 加载 | 引用

将现代Hopfield网络(Ramsauer等人,2021年)(MHN)应用于关联不同的数据模式、分子和反应模板,以提高对罕见模板和单步逆合成预测的性能。

overview_image

使用现代Hopfield网络改进少样本和零样本反应模板预测

论文

Philipp Seidl,Philipp Renz,Natalia Dyubankova,Paulo Neves,Jonas Verhoeven,Marwin Segler,Jörg K. Wegner,Sepp Hochreiter,Günter Klambauer

发现目标分子的合成途径是新药和材料发现中必不可少的。为了找到这样的途径,采用计算机辅助合成规划(CASP)方法,该方法依赖于化学反应的单步模型。在本研究中,我们介绍了一种基于现代Hopfield网络的基于模板的单步逆合成模型,该模型学习分子和反应模板的编码,以预测给定分子模板的相关性。模板表示允许跨不同反应进行泛化,并且显著提高了模板相关性预测的性能,特别是对于具有少量或零训练样本的模板。与基线方法相比,推理速度提高了一个数量级以上,我们在逆合成基准USPTO-50k中k≥3的top-k精确匹配准确度方面提高了或达到了最先进的性能。

最小工作示例

打开以下colab进行快速训练示例 train-colab.

环境

Anaconda

当使用conda时,可以使用以下命令设置环境

conda env create -f env.yml

要激活环境,请调用 conda activate mhnreact_env

此外,还需要安装包含在本包中的 template-relevance,以及使用 pip 安装的 rdchiral

cd data/temprel-fortunato/template-relevance-master/
pip install -e .
pip install -e "git://github.com/connorcoley/rdchiral.git#egg=rdchiral"

可能需要调整 CUDA 版本。代码已在以下版本下进行了测试:

  • rdkit 2021.03.1 和 2020.03.4
  • python 3.7 和 3.8
  • pytorch 1.6
  • rdchiral
  • template-relevance (./data/temprel-forunato)
  • CGRtools(仅用于准备 USPTO-golden)

另一种选择是运行

conda create -n mhnreact_env python=3.8
eval "$(conda shell.bash hook)"
conda activate mhnreact_env
conda install -c conda-forge rdkit
pip install torch scipy ipykernel matplotlib sklearn swifter
cd data/temprel-fortunato/template-relevance-master/
pip install -e .
pip install -e "git://github.com/connorcoley/rdchiral.git#egg=rdchiral"

这相当于运行脚本 bash ./scripts/make_env.sh

Docker

另一种选择是使用 ./tools/docker/ 中提供的 docker-file,以下为命令。

DOCKER_BUILDKIT=1 docker build -t mhnreact:latest -f Dockerfile ../..

数据和处理

预处理数据包含在本存储库中:./data/processed/uspto_sm_* 文件包含模板相关预测的预处理文件。

对于单步逆合成,预处理和分割数据可以在 ./data/USPTO_50k_MHN_prepro.csv 中找到

所有预处理步骤都可以在 ./examples/prepro_*.ipynb 中复制和找到,用于 USPTO-sm、USPTO-lg 以及 USPTO-50k 和 USPTO-full。由于大小原因,USPTO-lg 和 USPTO-full 不包含在内,需要使用相应的笔记本创建。

训练

可以使用 python mhnreact/train.py -m 来训练模型

选定的调用在 ./notebooks/*_training_*.ipynb 中有文档记录。

参数在模块中有文档记录,可以通过在调用中添加 --help 来检索。在 notebooks 文件夹中,有一些包含多个示例的笔记本。

一些主要参数包括

  • model_type:模型类型,从 'segler'、'fortunato'、'mhn' 或 'staticQK' 中选择,默认为 'mhn'
  • dataset_type:数据集,对于模板相关预测,选择 'sm' 或 'lg';(对于单步逆合成的输入,使用 --csv_path)
  • fp_type:输入指纹类型:默认为 'morgan',其他选项:'rdk'、'ECFP'、'ECFC'、'MxFP'、'Morgan2CBF'
  • template_fp_tpye:模板指纹类型:默认为 'rdk',其他选项:'MxFP'、'rdkc'、'tfidf'、'random'
  • hopf_beta:hopfield beta 参数,默认=0.005
  • hopf_asso_dim:关联维度,默认=512
  • ssretroeval:单步逆合成评估,默认=False

单步逆合成的示例调用是

python -m mhnreact.train --model_type=mhn --fp_size=4096 --fp_type morgan --template_fp_type rdk --concat_rand_template_thresh 1 \
--exp_name test --dataset_type 50k --csv_path ./data/USPTO_50k_MHN_prepro.csv.gz --ssretroeval True --seed 0

加载训练模型和评估

有关如何加载训练模型的说明,请参阅 ./examples/20_evaluation.ipynb。然后使用该模型在测试集上进行预测。

在自定义数据上训练

将数据预处理成与 ./data/USPTO_50k_MHN_prepro.csv 中相同格式,并使用 --csv_path 参数。

引用

要引用这项工作,您可以使用以下 bibtex 条目

@article{seidl2021modern,
   author = {Seidl, Philipp and Renz, Philipp and Dyubankova, Natalia and Neves, Paulo and Verhoeven, Jonas and Segler, Marwin and Wegner, J{\"o}rg K. and Hochreiter, Sepp and Klambauer, G{\"u}nter},
   title = {Improving Few- and Zero-Shot Reaction Template Prediction Using Modern Hopfield Networks},
   journal = {Journal of Chemical Information and Modeling},
   volume = {62},
   number = {9},
   pages = {2111-2120},
   institution = {Institute for Machine Learning, Johannes Kepler University, Linz},
   year = {2022},
   doi = {10.1021/acs.jcim.1c01065},
   url = {https://doi.org/10.1021/acs.jcim.1c01065},
}

参考文献

  • Ramsauer et al.(2020)。 ICLR2021 (pdf)

关键词

药物发现、CASP、机器学习、合成、零样本、现代 Hopfield 网络

项目详情


下载文件

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

源分布

syntheseus-mhnreact-1.0.tar.gz (48.1 kB 查看散列值)

上传时间

构建分布

syntheseus_mhnreact-1.0-py3-none-any.whl (49.9 kB 查看散列值)

上传时间 Python 3

由...支持