【MG Benchmarking 】Molecular Sets (MOSES): A Benchmarking Platform for Molecular Generation Models
Molecular Sets (MOSES): A Benchmarking Platform for Molecular Generation Models(Frontiers in Pharmacology 2区TOP)
MOSES:对于分子生成模型的基准平台
本文由香港英矽科医药有限公司、哈佛大学、瑞士阿斯利康、俄罗斯国立研究大学、多伦多大学、多伦多人工智能矢量研究所等发表在Front. Pharmacol., 18 December 2020
Paper:https://arxiv.org/abs/1811.12823
Code: https://github.com/molecularsets/moses
这里主要看一下Metrics:
Metrics
1 valid & unique【有效性 & 独一无二性】
valid:使用RDKit的分子结构分析器,检查芳香环中 原子的化合价和化学键 的一致性。有效性衡量模型捕捉明确的化学约束的能力,如化合价是否正确。
unique:检查模型不会出现模式崩塌而导致产生了相同的分子。
2 Novelty【新颖性】
新颖性是指生成原本不在训练集中的部分,新颖性过低意味着过拟合。
3 Filters【过滤器】
生成分子的过程中,有一些分子在化学上是有效的,但其中可能包含我们不想要的片段。在构建训练集时,我们删除了带有此类片段的分子,同时我们希望模型不会生成这些片段。
4 Fragment similarity(Frag)【片段相似性】
片段相似性比较了BRICS片段在生成集和参考集中的分布,取值为[0,1]。若两组分子中有相似片段,那么frag较大;若某些片段在生成集中表现过度或从未出现,那么frag较低。
5 Scaffold similarity(Scaff)【骨架相似性】
骨架相似性与片段相似性类似,显示生成集和参考集中的骨架有多相似,取值为[0,1]。若模型很少从参考集产生某种化学型,则度量值将较低。
6 Similarity to a nearest neighbor(SNN)【最近邻相似性】
最近邻相似性,是指生成集G中的一个分子mG 与它在参考集R中 相距最近的分子mR 之间的平均Tanimoto相似性,值在[0,1]之间,且距离越近值越高。
7 Internal diversity(IntDiv)【内部多样性】
内部多样性评估生成分子的化学多样性,检测模型是否出现模式崩塌的情况,取值范围在[0,1]。数值高说明有利于发现新结构;数值低说明模型生成的样本种类有限,忽略了化学空间的某些区域,可能发生模式崩塌。
8 Fréchet ChemNet Distance (FCD)
使用深度神经网络ChemNet的倒数第二层计算,该网络通过训练来预测药物的生物活性。ChemNet的倒数第二层是激活层,捕获了化合物的 化学和生物特性。FCD值非负,越小越好。作者建议使用FCD进行参数的调整和模型的选择。
9 Properties distribution:
属性分布用来评估生成的分子的结构,在本文中使用了四个属性:
①Molecular weight (MW)【相对分子质量】
是分子中原子质量的总和,通过绘制直方图,用来判断模型是否偏向于生成较轻或较重的分子。
②LogP【辛醇-水分配系数】
一种化学物质在辛醇中的浓度与它在水中的浓度之比,用来判断化合物的亲脂性。
③Synthetic Accessibility Score (SA)【合成可及性评分】
启发式地估计合成给定分子的难易程度,用来评估分布式学习模型。
④Quantitative Estimation of Drug-likeness (QED)【药物相似性的定量估计】
取值在[0,1],用来估计一个分子成为候选药物的可能性。
How to use the code ?
code link:https://github.com/molecularsets/moses
这里要注意:安装的python版本不能是3.6以下,我现在安装的是3.7的
1、Clone the repository:
git clone https://github.com/molecularsets/moses.git
2、Install RDKit for metrics calculation.
pip install rdkit-pypi
3、Install MOSES:
python setup.py install
4、Evaluation
4.1(评估这些基本参数Validity、Uniqueness、FCD...)
python scripts/eval.py --train_path ./test_data/a.csv --gen_path ./test_data/b.csv
要注意CSV文件第一行是:“SMILES”才可以,然后运行代码的时候把CSV文件关闭,别打开着,会报出一些错误警告啥的
4.2、Evaluation(评估Log p, QED, SA, weight)
cd scripts
python distribution_plots.py --config distribution_config.csv --n_jobs 8
最后生成的image在script下面:
相关文章
- Dynamic Wallpaper for Mac(Mac动态壁纸桌面)v11.9中文版
- Platform device and platform driver
- SecuritySpy for Mac(视频监控软件)v5.5.1注册激活版
- Microsoft 365 for Mac Office v16.67正式激活版 office全家桶永久版
- ORA-25016: cannot specify column list for insert into nested table view column ORACLE 报错 故障修复 远程处理
- ORA-30973: invalid Path Table option for XML Index ORACLE 报错 故障修复 远程处理
- ORA-47203: error deleting Integration Policy Factor for factor string and policy string, string ORACLE 报错 故障修复 远程处理
- ORA-03249: Uniform size for auto segment space managed tablespace should have atleast string blocks ORACLE 报错 故障修复 远程处理
- ORA-14755: Invalid partition specification for FOR VALUES clause. ORACLE 报错 故障修复 远程处理
- 循环Linux中使用For循环的正确方式(linux里的for)
- 进程探索Linux中For循环进程管理(linux中for)
- 循环使用Oracle数组实现For循环(oracle数组for)
- Maximizing MySQL3307 Efficiency: Tips for Optimizing Database Performance(mysql3307)
- Oracle:学习如何使用For遍历(oracle for遍历)
- MySQL中使用FOR循环快速编写函数(mysql函数for)
- 使用For语句操作Oracle数据库(for语句 oracle)
- 遍历Oracle中用For反向遍历字符串的简单示例(oracle中for反向)
- 与Oracle中的FOR语句实现数据删除(oracle中for删除)