GenBench3D
收藏资源简介:
GenBench3D数据集由剑桥大学尤斯夫·哈米德化学系和剑桥晶体数据中心共同创建,专注于评估三维分子生成模型的性能。该数据集包含多达10,000条数据,主要用于分析分子构象的有效性。数据集的创建过程结合了剑桥结构数据库中的参考值,通过评估分子键长和键角的合理性来确保分子构象的质量。GenBench3D主要应用于药物设计领域,特别是结构基于的药物设计,旨在优化分子在特定结合口袋中的构象和亲和力。
GenBench3D dataset was jointly developed by the Yusuf Hamied Department of Chemistry at the University of Cambridge and the Cambridge Crystallographic Data Centre, focusing on evaluating the performance of 3D molecular generative models. It comprises up to 10,000 entries and is primarily used for analyzing the validity of molecular conformations. The dataset is constructed using reference values from the Cambridge Structural Database, and the quality of molecular conformations is ensured by assessing the rationality of molecular bond lengths and bond angles. GenBench3D is mainly applied in the field of drug design, especially structure-based drug design, aiming to optimize the conformation and binding affinity of molecules in specific binding pockets.
GenBench3D 数据集概述
数据集描述
GenBench3D 是一个用于评估深度学习模型生成三维分子的基准数据集。该数据集包含了对6种模型的评估结果,并提供了详细的 Validity3D 等指标的计算方法。相关详细信息和结果可在arxiv上查阅。
主要要求
- Python > 3.9
- RDKit > 2022.09
- openbabel
- vina
- ADFRsuite
- meeko
- mdanalysis
- PDBFixer
- Schrodinger Glide CLI(可选)
- csd python api(可选)
安装步骤
-
下载并安装环境: bash git clone https://github.com/bbaillif/genbench3d.git cd genbench3d conda env create -f environment.yml conda activate genbench3d pip install -e .
-
选择参考3D数据源:
-
下载CrossDocked数据集:
-
修改配置文件中的数据源和可执行文件路径。
基本使用
-
示例脚本: bash python sb_benchmark_mols.py -c config/default.yaml -i examples/pocket2mol_generated_2z3h.sdf -o results_pocket2mol_generated_2z3h.json -p test_set/BSD_ASPTE_1_130_0/2z3h_A_rec.pdb -n test_set/BSD_ASPTE_1_130_0/2z3h_A_rec_1wn6_bst_lig_tt_docked_3.sdf --do_conf_analysis
-
参数说明:
-i:输入SDF文件路径。-o:输出JSON文件路径。-p:蛋白质目标PDB文件路径。-n:原生配体文件路径。--do_conf_analysis:计算所有指标。
复现论文结果
- 下载论文使用的数据集:figshare。
脚本编写
-
加载配置文件: python import yaml config_path = config/default.yaml config = yaml.safe_load(open(config_path, r))
-
设置参考几何: python from genbench3d.data.source import SDFSource, MolListSource from genbench3d.geometry import ReferenceGeometry ligboundconf_name = LigBoundConf ligboundconf_path = config[data][ligboundconf_path] source = SDFSource(ligands_path=ligboundconf_path, name=ligboundconf_name) reference_geometry = ReferenceGeometry(source=source, root=config[benchmark_dirpath], minimum_pattern_values=config[genbench3d][minimum_pattern_values])
-
计算所有指标: python from genbench3d import GenBench3D benchmark = GenBench3D(reference_geometry=reference_geometry, config=config[genbench3d]) results = benchmark.get_results_for_mol_list(mol_list)
实现指标
基于拓扑图的指标
| 指标 | 定义 |
|---|---|
| Validity2D | RDKit解析的分子的比例 |
| Uniqueness2D | 基于SMILES的唯一分子比例 |
| Novelty2D | 训练集中不存在的分子比例 |
| Diversity2D | 摩根指纹的平均不相似度 |
| 环大小比例 | 观察到的环大小的分布 |
| 分子量(MW) | 分子量 |
| logP | 使用RDKit计算 |
| SAScore | 使用RDKit实现 |
| QED | 使用RDKit实现 |
基于分子3D构象的指标
| 指标 | 定义 |
|---|---|
| Validity3D | 基于CSD Drug Subset的键长和键角的有效性 |
| Uniqueness3D | 基于TFD的唯一构象比例 |
| Novelty3D | 训练集中不存在的构象比例 |
| Diversity3D | 基于TFD的平均构象偏差 |
| MMFF94s应变能 | 使用RDKit计算 |
基于口袋的指标
| 指标 | 定义 |
|---|---|
| 空间冲突 | 与蛋白质冲突的分子比例 |
| 口袋外 | 分子中心与原生配体中心距离10埃以上的比例 |
| 绝对Vina分数 | 使用Vina Python包 |
| 相对Vina分数 | 使用Vina Python包 |
| 绝对Gold PLP分数 | 使用CSD Python API |
| 相对Gold PLP分数 | 使用CSD Python API |
| 绝对Glide分数 | 需要Schrodinger Glide命令行接口 |
| 相对Glide分数 | 需要Schrodinger Glide命令行接口 |




