计算化学公社

 找回密码 Forget password
 注册 Register

使用机器学习力场UMA优化分子结构与搜寻过渡态初猜

查看数: 3362 | 评论数: 20 | 收藏 Add to favorites 17
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2025-10-4 22:26

正文摘要:

本帖最后由 LPOwenChan 于 2025-10-8 15:26 编辑 使用机器学习力场UMA优化分子结构与搜寻过渡态初猜Optimizing Molecular Structures and Searching for Transition State Initial Guesses Using Machine Learnin ...

回复 Reply

Huschein 发表于 Post on 2026-1-15 23:46:22
推荐一下MAPLE程序,一款专门为各种MLFF(包含UMA)开发的计算化学平台,功能涵盖大部分Gaussian/ORCA的基础任务,用户可以不需要会任何代码也可以使用MLFF进行各种计算

https://chemrxiv.org/engage/chem ... 9bbafb3b11118e9807e
http://bbs.keinsci.com/thread-57731-1-1.html

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
zsu007 + 5 好物!

查看全部评分 View all ratings

LPOwenChan 发表于 Post on 2026-1-15 10:39:07
quanta 发表于 2026-1-15 08:50
博主您好,我用UMA起始优化的结构就是您帖子里的那个结构,您用uma优化的时候,是拿DFT的优化结果开始的 ...

初始结构基于Avogadro中UFF力场粗糙优化的结果,然后分别用UMA和DFT优化
quanta 发表于 Post on 2026-1-15 08:50:39
LPOwenChan 发表于 2026-1-14 18:31
可能有很多种原因值得考虑的:
1. 初始的输入结构是否合理(以DFT最终优化结果为参考)?
2. 多构象(我 ...

博主您好,我用UMA起始优化的结构就是您帖子里的那个结构,您用uma优化的时候,是拿DFT的优化结果开始的嘛?
LPOwenChan 发表于 Post on 2026-1-14 18:31:23
quanta 发表于 2026-1-14 15:57
博主好,我重复了一下您文中的结果,但是得到的两个分子的差别很大,RMSD有1.0+Å了,不知道是怎么回事 ...

可能有很多种原因值得考虑的:
1. 初始的输入结构是否合理(以DFT最终优化结果为参考)?
2. 多构象(我个人认为你的结果可能就是有构象干扰,力场可能陷入了一个局部最小值,这种问题可能是优化器导致的)
3. 数值精度问题(CPU推理和GPU推理数值精度相差很大,但是这种可能性比较小)
quanta 发表于 Post on 2026-1-14 15:57:01
博主好,我重复了一下您文中的结果,但是得到的两个分子的差别很大,RMSD有1.0+Å了,不知道是怎么回事儿
maoxinxina 发表于 Post on 2025-11-18 09:42:22
LPOwenChan 发表于 2025-11-17 21:49
是的,要用什么别的模型应该就是写入对应模型权重文件的绝对路径应该就可以了。

谢谢。
LPOwenChan 发表于 Post on 2025-11-17 21:49:38
maoxinxina 发表于 2025-11-17 15:57
试过了,真的可行,太厉害了。想问下要是那个uma-m-1p1.pt势,也是在这里面改吗。

是的,要用什么别的模型应该就是写入对应模型权重文件的绝对路径应该就可以了。
maoxinxina 发表于 Post on 2025-11-17 15:57:41
LPOwenChan 发表于 2025-11-17 13:08
需要两个文件才能让模型在本地跑起来,一个是uma-s-1p1.pt,即模型权重文件本身;另一个是iso_atom_elem_ ...

试过了,真的可行,太厉害了。想问下要是那个uma-m-1p1.pt势,也是在这里面改吗。
LPOwenChan 发表于 Post on 2025-11-17 13:08:17
maoxinxina 发表于 2025-11-17 09:47
能说一下大概怎么改么,谢谢。

需要两个文件才能让模型在本地跑起来,一个是uma-s-1p1.pt,即模型权重文件本身;另一个是iso_atom_elem_refs.yaml,是原子索引文件(附于文末)。假设把他们放在以下两个路径:
  1. /public/home/username/work_path/model/iso_atom_elem_refs.yaml
  2. /public/home/username/work_path/model/uma-s-1p1.pt
复制代码
我的fairchem版本是2.7.1,假设fairchem-core核心代码文件夹的安装位置是:
  1. /public/home/username/miniconda3/envs/fairchem/lib/python3.12/site-packages/fairchem/core/calculate
复制代码
现将上述路径下的pretrained_mlip.py文件备份,接着将我改写好的pretrained_mlip.py覆盖掉原来的文件(附于文末),然后继续修改pretrained_mlip.py文件;
首先寻找到第52行,内容是:
  1. checkpoint_path = r""
复制代码
上下文是:
  1. def pretrained_checkpoint_path_from_name(model_name: str):
复制代码
进入编辑模式,将模型权重文件绝对路径填入双引号中:
  1. checkpoint_path = r"/public/home/username/work_path/model/uma-s-1p1.pt"
复制代码
接下来找到第91行,内容是:
  1. checkpoint_path = r""
复制代码
上下文是:
  1. try:
  2.         model_checkpoint = _MODEL_CKPTS.checkpoints[model_name]
  3. except KeyError as err:
  4.         raise KeyError(
  5.                 f"Model '{model_name}' not found. Available models: {available_models}"
  6.         ) from err
  7. checkpoint_path = r""
  8. atom_refs = get_isolated_atomic_energies(model_name, cache_dir)
  9. return load_predict_unit(
  10.         checkpoint_path, inference_settings, overrides, device, atom_refs
  11. )
复制代码
将模型权重文件绝对路径填入双引号中:
  1. checkpoint_path = r"/public/home/username/work_path/model/uma-s-1p1.pt"
复制代码
最后找到第112行:
  1. atomic_refs_path = r""
复制代码
上下文为:
  1. model_checkpoint = _MODEL_CKPTS.checkpoints[model_name]
  2. atomic_refs_path = r""
  3. return OmegaConf.load(atomic_refs_path)
复制代码
将原子索引文件绝对路径填入双引号中,注意这里填写的是原子索引文件路径而非模型权重路径
  1. atomic_refs_path = r"/public/home/username/work_path/model/iso_atom_elem_refs.yaml"
复制代码
保存并退出,即完成源代码的修改!
iso_atom_elem_refs.yaml (8.79 KB, 下载次数 Times of downloads: 14) pretrained_mlip.py (3.78 KB, 下载次数 Times of downloads: 12)




评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
maoxinxina + 5 谢谢

查看全部评分 View all ratings

maoxinxina 发表于 Post on 2025-11-17 09:47:09
LPOwenChan 发表于 2025-11-15 23:30
可以的,修改一下源代码就可以

能说一下大概怎么改么,谢谢。
LPOwenChan 发表于 Post on 2025-11-15 23:30:19
maoxinxina 发表于 2025-11-15 19:46
可以把这个势文件下载好放在服务器上面用么。

可以的,修改一下源代码就可以
maoxinxina 发表于 Post on 2025-11-15 19:46:14
可以把这个势文件下载好放在服务器上面用么。
LPOwenChan 发表于 Post on 2025-11-8 11:10:10
archer 发表于 2025-11-5 10:05
UMA的准确度和xtb比起来如何

       目前还没有Benchmark文章来比较最新的高精度机器学习力场(UMA等)、半经验(xTB等)与DFT三者之间的精度差异。不过就我自己研究的金属有机催化方面而言(主要牵涉Pd、Fe、Cu、Co与Ni),UMA的预优化精度可以与DFT媲美了,远远高于GFN-FF与GFN2-xTB,主要的差异来源于配位键的长度。在我个人研究的一些体系中,GFN-FF与GFN2-xTB对于配位键长度的误判带来的最大问题就是配体解离与金属中心的逃逸(尤其是在一些平面四配位的体系中),而UMA目前是很好地解决了这一痛点的。
archer 发表于 Post on 2025-11-5 10:05:37
UMA的准确度和xtb比起来如何

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-1-23 20:07 , Processed in 1.233210 second(s), 27 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list