GuacaMol 基线模型
这是一系列针对生成化学的 guacamol
基准测试的基线模型实现。
关于这些基线模型的基准测试和得分的更详细解释可以在我们的论文中找到。
依赖项
安装所有依赖项:
pip install -r requirements.txt
我们还提供了一个 Dockerfile
,用于将此仓库中的基线模型容器化。
这可能是实现您自己的生成模型时的有用起点。
docker build -f dockers/Dockerfile . -t guacamol-baselines
数据集
一些基线模型需要 guacamol
数据集才能运行,获取方法如下:
bash fetch_guacamol_dataset.sh
随机采样器
虚拟基线,始终从 guacamol
训练集中返回随机分子。
执行目标导向生成基准测试:
python -m random_smiles_sampler.goal_directed_generation
执行分布学习基准测试:
python -m random_smiles_sampler.distribution_learning
ChEMBL 最佳选择
虚拟基线,仅返回 guacamol
训练集中最能满足目标导向基准测试分数的分子。
没有模型或训练,其唯一目的是为基准测试分数建立一个下限。
执行目标导向生成基准测试:
python -m best_from_chembl.goal_directed_generation
不提供分布学习基准测试。
SMILES 遗传算法
基于 SMILES 的遗传算法,详见:https://www.journal.csj.jp/doi/10.1246/cl.180665
改编自:https://github.com/tsudalab/ChemGE
执行目标导向生成基准测试:
python -m smiles_ga.goal_directed_generation
不提供分布学习基准测试。
图遗传算法
基于分子图的遗传算法,详见:https://doi.org/10.26434/chemrxiv.7240751
改编自:https://github.com/jensengroup/GB-GA
执行目标导向生成基准测试:
python -m graph_ga.goal_directed_generation
不提供分布学习基准测试。
图蒙特卡罗树搜索
基于分子图的蒙特卡罗树搜索,详见:https://doi.org/10.26434/chemrxiv.7240751
改编自:https://github.com/jensengroup/GB-GB
执行目标导向生成基准测试:
python -m graph_mcts.goal_directed_generation
执行分布学习基准测试:
python -m graph_mcts.distribution_learning
重新生成分布统计数据作为 pickle 文件:
python -m graph_mcts.analyze_dataset
SMILES LSTM 爬山算法
基于 SMILES 的长短期记忆网络,详见:https://arxiv.org/abs/1701.01329
此实现使用爬山算法进行优化。
由 BenevolentAI 实现
预训练模型位于:smiles_lstm/pretrained_model
执行目标导向生成基准测试:
python -m smiles_lstm_hc.goal_directed_generation
执行分布学习基准测试:
python -m smiles_lstm_hc.distribution_learning
从头开始训练模型:
python -m smiles_lstm_hc.train_smiles_lstm_model
SMILES LSTM PPO
基于 SMILES 的长短期记忆网络,详见:https://arxiv.org/abs/1701.01329
此实现使用近端策略优化算法进行优化。
由 BenevolentAI 实现
预训练模型位于:smiles_lstm/pretrained_model
执行目标导向生成基准测试:
python -m smiles_lstm_ppo.goal_directed_generation
Frag GT
基于片段的进化算法,用于生成分子。
安装说明和描述请参阅 frag-gt 自述文件。
由 BenevolentAI 实现
预计算的片段库可从 Zenodo 获取 (https://zenodo.org/record/6038464)
执行目标导向生成基准测试:
python frag_gt/goal_directed_generation.py --fragstore_path frag_gt/data/fragment_libraries/guacamol_v1_all_fragstore_brics.pkl --smiles_file data/guacamol_v1_all.smiles
更新日志
- 2020年10月15日:将 guacamol 版本升级至 0.5.3
- 2021年11月10日:将 guacamol 版本升级至 0.5.4。将 RDKit 安装方式从 conda 迁移至 pip。更新依赖项。
- 2022年2月21日:添加 frag-gt 基线模型。