GenBench3D
收藏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命令行接口 |




