新版本

Current release is MLatom, version 3.13.0.

Upgrade your MLatom to the latest one with:

pip install --upgrade mlatom

Upcoming releases

  • more efficient implementations of DENS24.

  • more efficient predictions with the ANI models.

  • bug fixes.

MLatom 3.13.0

  • 3.13.0 – released on 06.11.2024.

Download zip, check these versions on PyPI and GitHub.

pip install mlatom==3.13.0

本次更新内容

  • IR spectra calculations with AIQM1, AIQM2, UAIQM with semi-empirical baseline, and a range of QM methods (DFT, semi-empirical, ab initio wavefunction), with empirical scaling for better accuracy, special spectra module with plotting routines in Python.

Contributors

  • Yi-Fan Hou

  • Fuchun Ge

  • Pavlo O. Dral

MLatom 3.12.0

  • 3.12.0 – released on 08.10.2024.

Download zip, check these versions on PyPI and GitHub.

pip install mlatom==3.12.0

本次更新内容

Contributors

  • Yuxinxin Chen

MLatom 3.11.0

  • 3.11.0 – released on 23.09.2024.

Download zip, check these versions on PyPI and GitHub.

pip install mlatom==3.11.0

本次更新内容

Contributors

  • Yuxinxin Chen

  • Yifan Hou

  • Mikolaj Martyka

  • Fuchun Ge

MLatom 3.10.0

  • 3.10.1 – released on 21.08.2024.

  • 3.10.0 – released on 21.08.2024.

Download zip, check these versions on PyPI and GitHub.

pip install mlatom==3.10.1

本次更新内容

  • big improvements for excited-state simulations and surface-hopping molecular dynamics:

    • active learning for surface-hopping dynamics. It is efficient and robust: often, you can do surface-hopping dynamics from start to finish within a couple of days on a single GPU!

    • multi-state learning model (MS-ANI) that has unrivaled accuracy for excited state properties (accuracy is often better than for models targeting only ground state!). We demonstrate that this model can be used for trajectory-surface hopping of multiple molecules (not just for a single molecule!)

    • gapMD for efficient sampling of the vicinity of conical intersection

  • quality of life improvements:

    • visualizing molecules and their vibrations in Jupyter, e.g., simply use mymol.view(normal_mode=1), etc.

    • you can now load the molecule using both:

      • mol = molecule(); mol.load(filename='mymol.json')

      • mol = molecule.load(filename='mymol.json')

    • now you can view the MD trajectory in Jupyter as mytraj.show() for quick checks

    • same for molecular databases: moldb.show()

When using the above improvements for surface-hopping dynamics, please cite:

  • Mikołaj Martyka, Lina Zhang, Fuchun Ge, Yi-Fan Hou, Joanna Jankowska, Mario Barbatti, Pavlo O. Dral. Charting electronic-state manifolds across molecules with multi-state learning and gap-driven dynamics via efficient and robust active learning. 2024. Preprint on ChemRxiv: https://doi.org/10.26434/chemrxiv-2024-dtc1w.

Contributors

  • Mikolaj Martyka (New contributor, welcome to the MLatom developers team!)

  • Lina Zhang

  • Pavlo O. Dral

MLatom 3.9.0

  • 3.9.0 – released on 23.07.2024.

Download zip, check these versions on PyPI and GitHub.

pip install mlatom==3.9.0

本次更新内容

Contributed to this release:

  • Fuchun Ge

MLatom 3.8.0

  • 3.8.0 – released on 17.07.2024.

Download zip, check these versions on PyPI and GitHub.

pip install mlatom==3.8.0

本次更新内容

该实现的细节在以下文章中给出(使用此功能时,请将其与其他必要的引用一起引用):

  • Fuchun Ge, Lina Zhang, Yi-Fan Hou, Yuxinxin Chen, Arif Ullah, Pavlo O. Dral*. Four-dimensional-spacetime atomistic artificial intelligence models. J. Phys. Chem. Lett. 2023, 14, 7732–7743. DOI: 10.1021/acs.jpclett.3c01592.

Contributed to this release:

  • Fuchun Ge

MLatom 3.7.0 – 3.7.1

  • 3.7.1 – released on 04.07.2024. Bug fix.

  • 3.7.0 – released on 03.07.2024.

Download zip, check these versions on PyPI and GitHub.

pip install mlatom==3.7.1

本次更新内容

该实现的细节在以下文章中给出(使用此功能时,请将其与其他必要的引用一起引用):

Contributed to this release:

  • Yi-Fan Hou (implementations and tests of AL, documentation, design of API)

  • Pavlo O. Dral (implementation of earlier version of AL, design of API, documentation)

  • Fuchun Ge (batch parallelization of MD)

License and citations for MLatom 3.7.0

许可

MLatom是 MIT 许可下的开源软件(经过修改以请求适当的引用)

版权所有 (c) 2013- Pavlo O. Dral ( dr-dral.com )

特此免费授予获得本软件和相关文档文件(以下简称“软件”)副本的任何人不受限制地处理本软件的许可,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售本软件副本的权利,并允许获得本软件的人员这样做, 须符合以下条件:

上述版权声明和本许可声明应包含在本软件的所有副本或大部分内容中。当本软件或其衍生产品用于科学出版物时,应将其引用为:

MLatom的接口和特性的引用也将最终包括在内。请参阅程序输出、 header.pyref.jsonMLatom.com

本软件按“原样”提供,不作任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和不侵权的保证。任何情况下,无论是在合同诉讼、侵权行为还是其他诉讼中,作者或版权所有者均不对因本软件或本软件的使用或其他交易而引起或与之相关的任何索赔、损害或其他责任负责。

引用

引用时应该包括上面提到的引文。为方便起见,我们在提供了Bibtex格式的引文,您也可以下载 EndNote 文件。

  @article{MLatom 3,
  author = {Dral, Pavlo O. and Ge, Fuchun and Hou, Yi-Fan and Zheng, Peikun and Chen, Yuxinxin and Barbatti, Mario and Isayev, Olexandr and Wang, Cheng and Xue, Bao-Xin and Pinheiro Jr, Max and Su, Yuming and Dai, Yiheng and Chen, Yangtao and Zhang, Shuang and Zhang, Lina and Ullah, Arif and Zhang, Quanhao and Ou, Yanchi},
  title = {MLatom 3: A Platform for Machine Learning-Enhanced Computational Chemistry Simulations and Workflows},
  journal = {J. Chem. Theory Comput.},
  volume = {20},
  number = {3},
  pages = {1193--1213},
  DOI = {10.1021/acs.jctc.3c01203},
  year = {2024},
  type = {Journal Article}
  }

  @article{MLatom2,
  author = {Dral, Pavlo O. and Ge, Fuchun and Xue, Bao-Xin and Hou, Yi-Fan and Pinheiro Jr, Max and Huang, Jianxing and Barbatti, Mario},
  title = {MLatom 2: An Integrative Platform for Atomistic Machine Learning},
  journal = {Top. Curr. Chem.},
  volume = {379},
  number = {4},
  pages = {27},
  DOI = {10.1007/s41061-021-00339-5},
  year = {2021},
  type = {Journal Article}
  }

  @article{MLatom1,
  author = {Dral, Pavlo O.},
  title = {MLatom: A Program Package for Quantum Chemical Research Assisted by Machine Learning},
  journal = {J. Comput. Chem.},
  volume = {40},
  number = {26},
  pages = {2339--2347},
  DOI = {10.1002/jcc.26004},
  year = {2019},
  type = {Journal Article}
  }

  @misc{MLatomProg,
author = {Dral, Pavlo O. and Ge, Fuchun and Hou, Yi-Fan and Zheng, Peikun and Chen, Yuxinxin and Xue, Bao-Xin and Pinheiro Jr, Max and Su, Yuming and Dai, Yiheng and Chen, Yangtao and Zhang, Shuang and Zhang, Lina and Ullah, Arif and Zhang, Quanhao and Pios, Sebastian V. and Ou, Yanchi},
  title = {MLatom: A Package for Atomistic Simulations with Machine Learning, version 3.7.0},
  year = {2013--2024},
  type = {Computer Program}
  }

MLatom 3.6.0

于2024年5月15日发布。

下载 zip,用户可以在 PyPIGitHub 上查看新版本。

pip install mlatom==3.6.0

本次更新内容

此版本主要实现了多个基于ML的通用模型(参阅 教程):

  • DM21

  • AIMNet2

  • ANI-1xnr

此版本的贡献者:Yuxinxin Chen

MLatom 3.6.0的许可及引用

许可

MLatom是 MIT 许可下的开源软件(经过修改以请求适当的引用)

版权所有 (c) 2013- Pavlo O. Dral ( dr-dral.com )

特此免费授予获得本软件和相关文档文件(以下简称“软件”)副本的任何人不受限制地处理本软件的许可,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售本软件副本的权利,并允许获得本软件的人员这样做, 须符合以下条件:

上述版权声明和本许可声明应包含在本软件的所有副本或大部分内容中。当本软件或其衍生产品用于科学出版物时,应将其引用为:

MLatom的接口和特性的引用也将最终包括在内。请参阅程序输出、 header.pyref.jsonMLatom.com

本软件按“原样”提供,不作任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和不侵权的保证。任何情况下,无论是在合同诉讼、侵权行为还是其他诉讼中,作者或版权所有者均不对因本软件或本软件的使用或其他交易而引起或与之相关的任何索赔、损害或其他责任负责。

引用

引用时应该包括上面提到的引文。为方便起见,我们在提供了Bibtex格式的引文,您也可以下载 EndNote 文件。

  @article{MLatom 3,
  author = {Dral, Pavlo O. and Ge, Fuchun and Hou, Yi-Fan and Zheng, Peikun and Chen, Yuxinxin and Barbatti, Mario and Isayev, Olexandr and Wang, Cheng and Xue, Bao-Xin and Pinheiro Jr, Max and Su, Yuming and Dai, Yiheng and Chen, Yangtao and Zhang, Shuang and Zhang, Lina and Ullah, Arif and Zhang, Quanhao and Ou, Yanchi},
  title = {MLatom 3: A Platform for Machine Learning-Enhanced Computational Chemistry Simulations and Workflows},
  journal = {J. Chem. Theory Comput.},
  volume = {20},
  number = {3},
  pages = {1193--1213},
  DOI = {10.1021/acs.jctc.3c01203},
  year = {2024},
  type = {Journal Article}
  }

  @article{MLatom2,
  author = {Dral, Pavlo O. and Ge, Fuchun and Xue, Bao-Xin and Hou, Yi-Fan and Pinheiro Jr, Max and Huang, Jianxing and Barbatti, Mario},
  title = {MLatom 2: An Integrative Platform for Atomistic Machine Learning},
  journal = {Top. Curr. Chem.},
  volume = {379},
  number = {4},
  pages = {27},
  DOI = {10.1007/s41061-021-00339-5},
  year = {2021},
  type = {Journal Article}
  }

  @article{MLatom1,
  author = {Dral, Pavlo O.},
  title = {MLatom: A Program Package for Quantum Chemical Research Assisted by Machine Learning},
  journal = {J. Comput. Chem.},
  volume = {40},
  number = {26},
  pages = {2339--2347},
  DOI = {10.1002/jcc.26004},
  year = {2019},
  type = {Journal Article}
  }

  @misc{MLatomProg,
author = {Dral, Pavlo O. and Ge, Fuchun and Hou, Yi-Fan and Zheng, Peikun and Chen, Yuxinxin and Xue, Bao-Xin and Pinheiro Jr, Max and Su, Yuming and Dai, Yiheng and Chen, Yangtao and Zhang, Shuang and Zhang, Lina and Ullah, Arif and Zhang, Quanhao and Pios, Sebastian V. and Ou, Yanchi},
  title = {MLatom: A Package for Atomistic Simulations with Machine Learning, version 3.6.0},
  year = {2013--2024},
  type = {Computer Program}
  }

MLatom 3.5.0

于2024年5月8日发布。

下载 zip,用户可以在 PyPIGitHub 上查看新版本。

pip install mlatom==3.5.0

本次更新内容

此版本主要实现了准经典动力学:

该实现的细节在以下文章中给出(使用此功能时,请将其与其他必要的引用一起引用):

此版本的贡献者:Yi-Fan Hou

MLatom 3.5.0的许可及引用

许可

MLatom是 MIT 许可下的开源软件(经过修改以请求适当的引用)

版权所有 (c) 2013- Pavlo O. Dral ( dr-dral.com )

特此免费授予获得本软件和相关文档文件(以下简称“软件”)副本的任何人不受限制地处理本软件的许可,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售本软件副本的权利,并允许获得本软件的人员这样做, 须符合以下条件:

上述版权声明和本许可声明应包含在本软件的所有副本或大部分内容中。当本软件或其衍生产品用于科学出版物时,应将其引用为:

MLatom的接口和特性的引用也将最终包括在内。请参阅程序输出、 header.pyref.jsonMLatom.com

本软件按“原样”提供,不作任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和不侵权的保证。任何情况下,无论是在合同诉讼、侵权行为还是其他诉讼中,作者或版权所有者均不对因本软件或本软件的使用或其他交易而引起或与之相关的任何索赔、损害或其他责任负责。

引用

引用时应该包括上面提到的引文。为方便起见,我们在提供了Bibtex格式的引文,您也可以下载 EndNote 文件。

  @article{MLatom 3,
  author = {Dral, Pavlo O. and Ge, Fuchun and Hou, Yi-Fan and Zheng, Peikun and Chen, Yuxinxin and Barbatti, Mario and Isayev, Olexandr and Wang, Cheng and Xue, Bao-Xin and Pinheiro Jr, Max and Su, Yuming and Dai, Yiheng and Chen, Yangtao and Zhang, Shuang and Zhang, Lina and Ullah, Arif and Zhang, Quanhao and Ou, Yanchi},
  title = {MLatom 3: A Platform for Machine Learning-Enhanced Computational Chemistry Simulations and Workflows},
  journal = {J. Chem. Theory Comput.},
  volume = {20},
  number = {3},
  pages = {1193--1213},
  DOI = {10.1021/acs.jctc.3c01203},
  year = {2024},
  type = {Journal Article}
  }

  @article{MLatom2,
  author = {Dral, Pavlo O. and Ge, Fuchun and Xue, Bao-Xin and Hou, Yi-Fan and Pinheiro Jr, Max and Huang, Jianxing and Barbatti, Mario},
  title = {MLatom 2: An Integrative Platform for Atomistic Machine Learning},
  journal = {Top. Curr. Chem.},
  volume = {379},
  number = {4},
  pages = {27},
  DOI = {10.1007/s41061-021-00339-5},
  year = {2021},
  type = {Journal Article}
  }

  @article{MLatom1,
  author = {Dral, Pavlo O.},
  title = {MLatom: A Program Package for Quantum Chemical Research Assisted by Machine Learning},
  journal = {J. Comput. Chem.},
  volume = {40},
  number = {26},
  pages = {2339--2347},
  DOI = {10.1002/jcc.26004},
  year = {2019},
  type = {Journal Article}
  }

  @misc{MLatomProg,
author = {Dral, Pavlo O. and Ge, Fuchun and Hou, Yi-Fan and Zheng, Peikun and Chen, Yuxinxin and Xue, Bao-Xin and Pinheiro Jr, Max and Su, Yuming and Dai, Yiheng and Chen, Yangtao and Zhang, Shuang and Zhang, Lina and Ullah, Arif and Zhang, Quanhao and Pios, Sebastian V. and Ou, Yanchi},
  title = {MLatom: A Package for Atomistic Simulations with Machine Learning, version 3.5.0},
  year = {2013--2024},
  type = {Computer Program}
  }

MLatom 3.4.0

于2024年4月29日发布。

下载 zip,用户可以在 PyPIGitHub 上查看新版本。

pip install mlatom==3.4.0

本次更新内容

此版本主要进行了可用性改进:

此版本的贡献者:Pavlo O. Dral, Yuxinxin Chen, Fuchun Ge 和 Yi-Fan Hou

简述

输入变得更加简单。这里提供了一个几何优化任务的示例:

geomopt
GFN2-xTB
XYZfile='
2

H 0 0 0
H 0 0 0.8
'

输出的信息更丰富,比如以下代码片段:

------------------------------------------------------------------------------
Iteration 8
------------------------------------------------------------------------------

    Molecule with 2 atom(s): H, H

    XYZ coordinates, Angstrom

    1    H             0.000000           0.000000          -0.138338
    2    H             0.000000           0.000000           0.638338

    Interatomic distance matrix, Angstrom

    [[0.         0.77667652]
    [0.77667652 0.        ]]

    Energy:          -0.982686 Hartree

    Energy gradients, Hartree/Angstrom

    1    H             0.000000           0.000000           0.000020
    2    H             0.000000           0.000000          -0.000020

    Energy gradients norm:           0.000029 Hartree/Angstrom

更简洁的输入

现在可以不使用辅助文件,仅需将这些辅助文件的内容写到 ' 字符之间,无需提供辅助文件名,例如:

geomopt
GFN2-xTB
XYZfile='
2

H 0 0 0
H 0 0 0.8
'

这也适用于其他文件,如速度等。

当不指定选项 optxyz= 时,几何优化会保存在 optgeoms.xyz 中。

信息输出

现在你可以在输出文件中查看几何优化的进度,它会在每次迭代中输出有关几何构型、能量和梯度的信息(如果不超过10个分子):

------------------------------------------------------------------------------
Iteration 8
------------------------------------------------------------------------------

    Molecule with 2 atom(s): H, H

    XYZ coordinates, Angstrom

    1    H             0.000000           0.000000          -0.138338
    2    H             0.000000           0.000000           0.638338

    Interatomic distance matrix, Angstrom

    [[0.         0.77667652]
    [0.77667652 0.        ]]

    Energy:          -0.982686 Hartree

    Energy gradients, Hartree/Angstrom

    1    H             0.000000           0.000000           0.000020
    2    H             0.000000           0.000000          -0.000020

    Energy gradients norm:           0.000029 Hartree/Angstrom

此外,几何优化还会输出多个有用的文件:

  • 保存有优化后的构型的、由 optxyz= 定义的 optgeoms.xyz 或其他名称的文件。

  • 每个分子的优化轨迹保存在XYZ格式的 opttraj1.xyz 文件、JSON格式的 opttraj1.json 文件等。

  • 在使用Gaussian进行优化时,每优化一个分子还会生成相应的输入文件 gaussian1.com 和输出文件 gaussian1.log 等。

如果你想选择性保存信息(例如,对于大分子和许多分子的情况):

  • printmin 将不会输出每次迭代中的信息。

  • printall 将输出每次迭代中的详细信息。

  • dumpopttrajs=False 将不会输出任何优化轨迹。

相应的参数也可以在Python API中使用,例如参数 ml.simulations.optimize_geometry

  • print_propertiesNonestr ,可选): 待输出的属性。默认: None 。可选项为 'all'

  • dump_trajectory_intervalint ,可选):每个时间步长(1)的转储轨迹。设置为 None 表示禁用转储(默认)。

  • filenamestr ,可选):保存转储轨迹的文件。默认: None

  • formatstr ,可选):转储轨迹的保存格式。默认: 'json'

geomeTRIC

MLatom目前支持使用 geomeTRIC 进行几何优化(包括TS优化)。安装仅需运行 pip install geometric

若要使用它,在命令行中可添加 optprog=geomeTRIC ,在Python API中写入 program=geometric

如果您使用这个程序,请引用下文:

  • L.-P. Wang, C. C. Song, J. Chem. Phys. 2016, 144, 214108.

其他更改

  • 如果已经存在同名的XYZ文件,几何优化后会覆盖(并输出警告)该文件。之前的版本中MLatom会终止程序并提示有同名文件。显然,当我们想在同一文件夹中重新运行计算并替换旧的计算结果时,程序由于同名而终止会带来不便,故此版本作出了相应改动。

  • 更妥善地处理失败的几何优化。

MLatom 3.4.0的许可及引用

许可

MLatom是 MIT 许可下的开源软件(经过修改以请求适当的引用)

版权所有 (c) 2013- Pavlo O. Dral ( dr-dral.com )

特此免费授予获得本软件和相关文档文件(以下简称“软件”)副本的任何人不受限制地处理本软件的许可,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售本软件副本的权利,并允许获得本软件的人员这样做, 须符合以下条件:

上述版权声明和本许可声明应包含在本软件的所有副本或大部分内容中。当本软件或其衍生产品用于科学出版物时,应将其引用为:

MLatom的接口和特性的引用也将最终包括在内。请参阅程序输出、 header.pyref.jsonMLatom.com

本软件按“原样”提供,不作任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和不侵权的保证。任何情况下,无论是在合同诉讼、侵权行为还是其他诉讼中,作者或版权所有者均不对因本软件或本软件的使用或其他交易而引起或与之相关的任何索赔、损害或其他责任负责。

引用

引用时应该包括上面提到的引文。为方便起见,我们在提供了Bibtex格式的引文,您也可以下载 EndNote 文件。

  @article{MLatom 3,
  author = {Dral, Pavlo O. and Ge, Fuchun and Hou, Yi-Fan and Zheng, Peikun and Chen, Yuxinxin and Barbatti, Mario and Isayev, Olexandr and Wang, Cheng and Xue, Bao-Xin and Pinheiro Jr, Max and Su, Yuming and Dai, Yiheng and Chen, Yangtao and Zhang, Shuang and Zhang, Lina and Ullah, Arif and Zhang, Quanhao and Ou, Yanchi},
  title = {MLatom 3: A Platform for Machine Learning-Enhanced Computational Chemistry Simulations and Workflows},
  journal = {J. Chem. Theory Comput.},
  volume = {20},
  number = {3},
  pages = {1193--1213},
  DOI = {10.1021/acs.jctc.3c01203},
  year = {2024},
  type = {Journal Article}
  }

  @article{MLatom2,
  author = {Dral, Pavlo O. and Ge, Fuchun and Xue, Bao-Xin and Hou, Yi-Fan and Pinheiro Jr, Max and Huang, Jianxing and Barbatti, Mario},
  title = {MLatom 2: An Integrative Platform for Atomistic Machine Learning},
  journal = {Top. Curr. Chem.},
  volume = {379},
  number = {4},
  pages = {27},
  DOI = {10.1007/s41061-021-00339-5},
  year = {2021},
  type = {Journal Article}
  }

  @article{MLatom1,
  author = {Dral, Pavlo O.},
  title = {MLatom: A Program Package for Quantum Chemical Research Assisted by Machine Learning},
  journal = {J. Comput. Chem.},
  volume = {40},
  number = {26},
  pages = {2339--2347},
  DOI = {10.1002/jcc.26004},
  year = {2019},
  type = {Journal Article}
  }

  @misc{MLatomProg,
author = {Dral, Pavlo O. and Ge, Fuchun and Hou, Yi-Fan and Zheng, Peikun and Chen, Yuxinxin and Xue, Bao-Xin and Pinheiro Jr, Max and Su, Yuming and Dai, Yiheng and Chen, Yangtao and Zhang, Shuang and Zhang, Lina and Ullah, Arif and Zhang, Quanhao and Pios, Sebastian V. and Ou, Yanchi},
  title = {MLatom: A Package for Atomistic Simulations with Machine Learning, version 3.4.0},
  year = {2013--2024},
  type = {Computer Program}
  }

MLatom 3.3.0

于2024年3月4日发布。

下载 zip,用户可以在 PyPIGitHub 上查看新版本。

pip install mlatom==3.3.0

本次更新内容

此版本包含:

  • 面跳跃动力学 (在不带非绝热耦合(NAC)Landau–Zener–Belyev–Lebedev (LZBL) 近似范围内)

  • 支持 激发态计算 ,此计算可使用AIQM1、通过COLUMBUS(用于CASSCF)和Turbomole(用于ADC(2))的 从头算 方法、通过MNDO程序的半经验方法,以及机器学习和QM/ML混合方法。

  • Wigner采样 (带有或不带有)——在面跳跃动力学或者光谱模拟时,可用于生成初始条件。Wigner采样例程从 Newton-X 改编至适应Python。使用Wigner采样时无需安装,但需要引用相应的 Newton-X论文

细微改动:

  • 此版本中,我们修正了ANI网络训练中验证损失的计算方式。现在计算的是所有批次的总体均方误差,而之前计算的是验证批次的平均RMSE。这可能会导致不同的数值结果,因为模型训练使用验证RMSE,例如,早期停止和学习率。

此版本的贡献人员:Pavlo O. Dral, Zhang Lina, Fuchun Ge, Sebastian Pios, Yi-Fan Hou, Yuxinxin Chen

请参阅我们的论文以了解更多细节(如果您使用此功能,请同时引用此论文)

以下代码给出了如何使用新功能的示例(请参见 专门的教程):

import mlatom as ml

# Load the initial geometry of a molecule
mol = ml.data.molecule()
mol.charge=1
mol.read_from_xyz_file('cnh4+.xyz')

# Define model
aiqm1 = ml.models.methods(method='AIQM1',qm_program_kwargs={'save_files_in_current_directory': True, 'read_keywords_from_file':f'mndokw'})
method_optfreq = ml.models.methods(method='B3LYP/Def2SVP', program='pyscf') # You can also use AIQM1 (it is recommended for neutral species because if its better quality)

# Optimize geometry
geomopt = ml.simulations.optimize_geometry(model=method_optfreq,
                                        initial_molecule=mol)
eqmol = geomopt.optimized_molecule
eqmol.write_file_with_xyz_coordinates('eq.xyz')

# Get frequencies
ml.simulations.freq(model=method_optfreq,
                    molecule=eqmol)
eqmol.dump(filename='eqmol.json', format='json')

# Get initial conditions
init_cond_db = ml.generate_initial_conditions(molecule=eqmol,
                                    generation_method='wigner',
                                    number_of_initial_conditions=16,
                                    initial_temperature=0)
init_cond_db.dump('test.json','json')

# Propagate multiple LZBL surface-hopping trajectories in parallel
# .. setup dynamics calculations
namd_kwargs = {
            'model': aiqm1,
            'time_step': 0.25,
            'maximum_propagation_time': 5,
            'hopping_algorithm': 'LZBL',
            'nstates': 3,
            'initial_state': 2,
            }

# .. run trajectories in parallel
dyns = ml.simulations.run_in_parallel(molecular_database=init_cond_db, task=ml.namd.surface_hopping_md, task_kwargs=namd_kwargs, create_and_keep_temp_directories=True)
trajs = [d.molecular_trajectory for d in dyns]

# Dump the trajectories
itraj=0
for traj in trajs:
    itraj+=1
    traj.dump(filename=f"traj{itraj}.h5",format='h5md')

# Analyze the result of trajectories and make the population plot
ml.namd.analyze_trajs(trajectories=trajs, maximum_propagation_time=5)
ml.namd.plot_population(trajectories=trajs, time_step=0.25,
                        max_propagation_time=5, nstates=3, filename=f'pop.png')

MLatom 3.3.0的许可及引用

许可

MLatom是 MIT 许可下的开源软件(经过修改以请求适当的引用)

版权所有 (c) 2013- Pavlo O. Dral ( dr-dral.com )

特此免费授予获得本软件和相关文档文件(以下简称“软件”)副本的任何人不受限制地处理本软件的许可,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售本软件副本的权利,并允许获得本软件的人员这样做, 须符合以下条件:

上述版权声明和本许可声明应包含在本软件的所有副本或大部分内容中。当本软件或其衍生产品用于科学出版物时,应将其引用为:

MLatom的接口和特性的引用也将最终包括在内。请参阅程序输出、 header.pyref.jsonMLatom.com

本软件按“原样”提供,不作任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和不侵权的保证。任何情况下,无论是在合同诉讼、侵权行为还是其他诉讼中,作者或版权所有者均不对因本软件或本软件的使用或其他交易而引起或与之相关的任何索赔、损害或其他责任负责。

引用

引用时应该包括上面提到的引文。为方便起见,我们在提供了Bibtex格式的引文,您也可以下载 EndNote 文件。

  @article{MLatom 3,
  author = {Dral, Pavlo O. and Ge, Fuchun and Hou, Yi-Fan and Zheng, Peikun and Chen, Yuxinxin and Barbatti, Mario and Isayev, Olexandr and Wang, Cheng and Xue, Bao-Xin and Pinheiro Jr, Max and Su, Yuming and Dai, Yiheng and Chen, Yangtao and Zhang, Shuang and Zhang, Lina and Ullah, Arif and Zhang, Quanhao and Ou, Yanchi},
  title = {MLatom 3: A Platform for Machine Learning-Enhanced Computational Chemistry Simulations and Workflows},
  journal = {J. Chem. Theory Comput.},
  volume = {20},
  number = {3},
  pages = {1193--1213},
  DOI = {10.1021/acs.jctc.3c01203},
  year = {2024},
  type = {Journal Article}
  }

  @article{MLatom2,
  author = {Dral, Pavlo O. and Ge, Fuchun and Xue, Bao-Xin and Hou, Yi-Fan and Pinheiro Jr, Max and Huang, Jianxing and Barbatti, Mario},
  title = {MLatom 2: An Integrative Platform for Atomistic Machine Learning},
  journal = {Top. Curr. Chem.},
  volume = {379},
  number = {4},
  pages = {27},
  DOI = {10.1007/s41061-021-00339-5},
  year = {2021},
  type = {Journal Article}
  }

  @article{MLatom1,
  author = {Dral, Pavlo O.},
  title = {MLatom: A Program Package for Quantum Chemical Research Assisted by Machine Learning},
  journal = {J. Comput. Chem.},
  volume = {40},
  number = {26},
  pages = {2339--2347},
  DOI = {10.1002/jcc.26004},
  year = {2019},
  type = {Journal Article}
  }

  @misc{MLatomProg,
author = {Dral, Pavlo O. and Ge, Fuchun and Hou, Yi-Fan and Zheng, Peikun and Chen, Yuxinxin and Xue, Bao-Xin and Pinheiro Jr, Max and Su, Yuming and Dai, Yiheng and Chen, Yangtao and Zhang, Shuang and Zhang, Lina and Ullah, Arif and Zhang, Quanhao and Pios, Sebastian V. and Ou, Yanchi},
  title = {MLatom: A Package for Atomistic Simulations with Machine Learning, version 3.3.0},
  year = {2013--2024},
  type = {Computer Program}
  }

MLatom 3.2.0

于2024年3月19日发布。

下载 zip,用户可以在 PyPIGitHub 上查看新版本。

pip install mlatom==3.2.0

本次更新内容

新版本增加了多种新功能、提升了可用性、改进了性能并且对bug进行了修复。主要内容如下所示:

ANI型机器学习势能的能量加权训练

在使用许多强烈扭曲的分子构型进行全局势能面数据训练时,由于这些分子具有高变形能,故很难获得能够平衡描述不同势能面区域的机器学习势能。因此,我们实现了使用能量加权函数进行ANI型机器学习势能的训练,该函数降低了具有高变形能的势能面区域的权重。我们还提供了关于甘氨酸全局势能面的建议、教程和训练脚本示例。

请参阅我们的论文以了解更多细节(如果您使用此功能,请同时引用此论文)

以下代码给出了如何使用此功能的示例(请参见 专门的教程 ):

import mlatom as ml
# ...
# define the weighing_function
def weighting_function(energy_reference, a):
    # a - is a parameter defining the shape of the function
    global_minimum = -284.33376035
    reference_tensor = torch.tensor(energy_reference - global_minimum)
    x=a*reference_tensor
    x_tensor = torch.tensor(x)
    x_pow5 = x_tensor ** 5
    x_pow4 = x_tensor ** 4
    x_pow3 = x_tensor ** 3
    w = -6 * x_pow5 + 15 * x_pow4 - 10 * x_pow3 + 1
    w = torch.clamp(w, min=0.000001)
    return w

# train the ANI model with the energy weighting function
# get subsets subtrain_molDB and validate_molDB from somewhere (not shown here)
ani = ml.models.ani(model_file=f"glycine_ani_a2.15.pt")
ani.train(
    molecular_database=subtrain_molDB,
    validation_molecular_database=validate_molDB,
    property_to_learn='energy',
    xyz_derivative_property_to_learn='energy_gradients',
    energy_weighting_function=weighting_function,
    energy_weighting_function_kwargs={'a': 2.15},
    hyperparameters={'lrReducePatience': 32}
)

扩散蒙特卡罗

扩散蒙特卡罗(DMC)可以获得准确频率和零点振动能,但该方法计算成本高昂,因此,使用机器学习势能是不可或缺的。我们将MLatom接口到 PyVibDMC 代码中,以实现使用不同模型进行DMC模拟。

请参阅我们的论文以获取甘氨酸构象的DMC计算示例(如果使用此功能,请引用此论文以及PyVibDMC):

  • F. Ge, R. Wang, C. Qu, P. Zheng, A. Nandi, R. Conte, P. L. Houston, J. M. Bowman, P. O. Dral. Tell machine learning potentials what they are needed for: Simulation-oriented training exemplified for glycine. 2024, 15, 4451–4460. Preprint on arXiv: https://arxiv.org/abs/2403.11216.

以下代码给出了如何使用此功能的示例(请参见 专门的教程 ):

import mlatom as mlatom
# ...
dmc=ml.simulations.dmc(model=model, initial_molecule=conf)
dmc.run(number_of_walkers=30000, number_of_timesteps=55000)
print(f'ZPVE: {(dmc.get_zpe(start_step=-1000) + 284.33355671) * 219474.63} cm-1')

XACS云平台上的AIQM1:更快更稳定

是的,我们知道,在XACS云平台上,AIQM1过于缓慢且数值不稳定。这对我们和您都是令人沮丧的。原因是我们无法在云平台上使用具有解析梯度的MNDO程序(许可证原因),而需要依赖Sparrow,一个适用于许多半经验方法的优秀软件。 然而不幸的是,Sparrow对于AIQM1,仍然没有解析梯度(它对许多其他方法有解析梯度…)。 因此,我们对基于数值导数的计算进行了一些调整,作为一种简易的解决方案。 它极大地改善了AIQM1在云平台上的速度和稳定性,包括几何优化以及在某种程度上频率和热化学计算(见下文)。 有了更多可用于并行的CPU,AIQM1在云平台上的速度甚至可能比单CPU的MNDO程序更快! 在使用基于Sparrow的AIQM1进行几何优化时,测试分子的几何构型是良好的。 对于小分子如氢气或甲烷,频率和热化学性质也还可以。但对于较大分子如乙烯乙炔,可能会有许多纯粹是由数值微分引入的误差所致的虚频。 因此,当您使用基于Sparrow的AIQM1时,请检查频率–如果有太多虚频,则频率和热化学性质不可靠。 目前,唯一的解决方案是使用基于MNDO的AIQM1,但我们正在努力开发一些方法,这些方法能够在未来的版本中改善现状。

请在 XACS云平台 上尝试使用AIQM1

新关键词 freqprog :使用PySCF进行频率和热化学计算。

对于命令行,用户可以使用 freqprog=pyscf 使用PyCSF在MLatom中进行频率和热化学计算。对于Python,用户可以使用相似的选项 mlatom.freq(program=`PySCF`, ...)mlatom.thermochemistry(program=`PySCF`, ...) 。在命令行中,此版本引入了新关键字 freqprog ,用户此前需要使用 optprog 来选择用于频率计算的程序,新关键字的引入解决了此前版本中选择频率计算程序时关键字与其所代表含义不一致的问题。

使用PySCF有几个优点:它是开源的,可以在XACS云平台上使用(目前是默认选项),而且它对频率的处理要比我们以前基于TorchANI(以及用于热化学的ASE)的实现更一致。PySCF自动去除了旋转和平移频率;如果您使用数值梯度和Hessian矩阵(类似我们在云平台上为AIQM1所做的),这些旋转和平移频率可能会造成运行错误,并且扰乱热化学计算。但是如果您想查看这些频率,我们的旧实现方法是一种选择(使用 freqprog=ASE)。

如果没有检测到Gaussian,默认程序将会是PySCF。如果有Gaussian,在MLatom中仍然默认使用Gaussian。

ORCA接口

Orca是一个流行的程序,我们使用它来为我们的机器学习模型生成数据。目前已经实现了我们需要的功能。当前的接口适用于密度泛函理论(DFT)计算,但如果您进行其他工作,可能有一些非规范的技巧,您可以在API手册中查看(如果未来接口有改进,可能会发生变化)。

在输入文件中使用Orca的示例如下:

method=B3LYP/6-31G*
qmprog=Orca
geomopt
xyzfile=init.xyz
optxyz=opt.xyz

在Python API中:

import mlatom as ml
# ...
dft_with_orca = ml.models.methods(method='B3LYP/6-31G*', program='Orca')

带电和开壳层物种的CCSD(T)*/CBS计算

我们使用CCSD(T)*/CBS方法生成数据并测试机器学习模型。这是一种昂贵但相当精确的方法。此前我们的实现只支持中性闭壳层分子。通过新的Orca接口,我们重写了代码,目前支持带电荷和开壳层物种的计算。

如果用户想尝试使用这一功能,其示例如下:

CCSD(T)*/CBS
yestfile=energy.dat
xyzfile=init.xyz
charges=1,0
multiplicities=2,1

在Python中:

import mlatom as ml
# ...
ccsd = ml.models.methods(method='CCSD(T)*/CBS')
mol.charge=1 ; mol.multiplicity=2
ccsd.predict(molecule=mol)
print(mol.energy)

带约束的几何优化

我们使用ASE实现约束,这仅在通过Python API使用ASE优化器时可用。它需要一个额外的参数 constraints ,使用格式为:constraints={'bonds':[[目标,[索引0,索引1]], ...],'angles':[[目标,[索引0,索引1,索引2]], ...],'dihedrals':[[目标,[索引0,索引1,索引2,索引3]], ...]} (查看 ASE中的FixInternals类 以获取更多信息)。键长的单位是Å,角度和二面角的单位是° 。请注意,原子的索引从0开始!

下面是一个使用AIQM1优化乙烷的例子,将C-C键长目标设置为1.8Å。

初始的XYZ坐标为:

8

C                 -3.41779278   -2.06081078    0.00000000
H                 -3.06113836   -3.06962078    0.00000000
H                 -3.06111994   -1.55641259   -0.87365150
H                 -4.48779278   -2.06079760    0.00000000
C                 -2.90445057   -1.33485451    1.25740497
H                 -1.83445237   -1.33656157    1.25838332
H                 -3.25950713   -0.32548149    1.25642758
H                 -3.26271953   -1.83812251    2.13105517

Python脚本为:

import mlatom as ml
mol = ml.data.molecule.from_xyz_file('ethane_initial.xyz')
print(f"Initial C-C bond length: {mol.get_internuclear_distance_matrix()[0][4]} Angstrom")
constraints = {'bonds':[[1.8,[0,4]]]}
aiqm1 = ml.models.methods(method='AIQM1',qm_program='sparrow')
geomopt = ml.optimize_geometry(model=aiqm1,initial_molecule=mol,program='ase',constraints=constraints)
optmol = geomopt.optimized_molecule
print(f"Final C-C bond length: {optmol.get_internuclear_distance_matrix()[0][4]} Angstrom")
print("XYZ coordinates:")
print(optmol.get_xyz_string())

输出如下所示:

Initial C-C bond length: 1.5399999964612658 Angstrom
       Step     Time          Energy         fmax
LBFGS:    0 10:11:55    -2169.358192        0.6954
LBFGS:    1 10:11:56    -2168.493055        1.5444
LBFGS:    2 10:11:56    -2168.324507        2.1746
LBFGS:    3 10:11:57    -2168.702277        0.3925
LBFGS:    4 10:11:57    -2168.719565        0.3556
LBFGS:    5 10:11:58    -2168.744194        0.4116
LBFGS:    6 10:11:58    -2168.765605        0.3914
LBFGS:    7 10:11:58    -2168.779525        0.2010
LBFGS:    8 10:11:59    -2168.782649        0.0282
LBFGS:    9 10:11:59    -2168.782767        0.0237
LBFGS:   10 10:12:00    -2168.782733        0.0370
LBFGS:   11 10:12:00    -2168.782749        0.0236
LBFGS:   12 10:12:00    -2168.782623        0.0873
LBFGS:   13 10:12:01    -2168.782774        0.0203
LBFGS:   14 10:12:01    -2168.782777        0.0217
LBFGS:   15 10:12:01    -2168.782654        0.0988
LBFGS:   16 10:12:02    -2168.782762        0.0299
LBFGS:   17 10:12:02    -2168.782723        0.0372
LBFGS:   18 10:12:03    -2168.782762        0.0250
LBFGS:   19 10:12:03    -2168.777521        0.5284
LBFGS:   20 10:12:03    -2168.782764        0.0369
LBFGS:   21 10:12:04    -2168.782758        0.0397
LBFGS:   22 10:12:04    -2168.781062        0.1423
LBFGS:   23 10:12:04    -2168.782774        0.0375
LBFGS:   24 10:12:05    -2168.782774        0.0251
LBFGS:   25 10:12:05    -2168.782670        0.0433
LBFGS:   26 10:12:06    -2168.782769        0.0209
LBFGS:   27 10:12:06    -2168.782777        0.0177
Final C-C bond length: 1.799999998386536 Angstrom
XYZ coordinates:
8

C            -3.4609594100000          -2.1223293000000          -0.1060679300000
H            -3.0827425100000          -3.1376804600000          -0.0751292200000
H            -3.0834089300000          -1.5865323800000          -0.9697472700000
H            -4.5445733300000          -2.1041917000000          -0.0741819000000
C            -2.8607234100000          -1.2737628100000           1.3635074000000
H            -1.7772071700000          -1.2935363400000           1.3338165800000
H            -3.2376294200000          -0.2576124300000           1.3304506900000
H            -3.2417292800000          -1.8070164100000           2.2269711900000

MLatom 3.2.0的许可及引用

许可

MLatom是 MIT 许可下的开源软件(经过修改以请求适当的引用)

版权所有 (c) 2013- Pavlo O. Dral ( dr-dral.com )

特此免费授予获得本软件和相关文档文件(以下简称“软件”)副本的任何人不受限制地处理本软件的许可,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售本软件副本的权利,并允许获得本软件的人员这样做, 须符合以下条件:

上述版权声明和本许可声明应包含在本软件的所有副本或大部分内容中。当本软件或其衍生产品用于科学出版物时,应将其引用为:

MLatom的接口和特性的引用也将最终包括在内。请参阅程序输出、 header.pyref.jsonMLatom.com

本软件按“原样”提供,不作任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和不侵权的保证。任何情况下,无论是在合同诉讼、侵权行为还是其他诉讼中,作者或版权所有者均不对因本软件或本软件的使用或其他交易而引起或与之相关的任何索赔、损害或其他责任负责。

引用

引用时应该包括上面提到的引文。为方便起见,我们在提供了Bibtex格式的引文,您也可以下载 EndNote 文件。

@article{MLatom 3,
author = {Dral, Pavlo O. and Ge, Fuchun and Hou, Yi-Fan and Zheng, Peikun and Chen, Yuxinxin and Barbatti, Mario and Isayev, Olexandr and Wang, Cheng and Xue, Bao-Xin and Pinheiro Jr, Max and Su, Yuming and Dai, Yiheng and Chen, Yangtao and Zhang, Shuang and Zhang, Lina and Ullah, Arif and Zhang, Quanhao and Ou, Yanchi},
title = {MLatom 3: A Platform for Machine Learning-Enhanced Computational Chemistry Simulations and Workflows},
journal = {J. Chem. Theory Comput.},
volume = {20},
number = {3},
pages = {1193--1213},
DOI = {10.1021/acs.jctc.3c01203},
year = {2024},
type = {Journal Article}
}

@article{MLatom2,
author = {Dral, Pavlo O. and Ge, Fuchun and Xue, Bao-Xin and Hou, Yi-Fan and Pinheiro Jr, Max and Huang, Jianxing and Barbatti, Mario},
title = {MLatom 2: An Integrative Platform for Atomistic Machine Learning},
journal = {Top. Curr. Chem.},
volume = {379},
number = {4},
pages = {27},
DOI = {10.1007/s41061-021-00339-5},
year = {2021},
type = {Journal Article}
}

@article{MLatom1,
author = {Dral, Pavlo O.},
title = {MLatom: A Program Package for Quantum Chemical Research Assisted by Machine Learning},
journal = {J. Comput. Chem.},
volume = {40},
number = {26},
pages = {2339--2347},
DOI = {10.1002/jcc.26004},
year = {2019},
type = {Journal Article}
}

@misc{MLatomProg,
author = {Dral, Pavlo O. and Ge, Fuchun and Hou, Yi-Fan and Zheng, Peikun and Chen, Yuxinxin and Xue, Bao-Xin and Pinheiro Jr, Max and Su, Yuming and Dai, Yiheng and Chen, Yangtao and Zhang, Shuang and Zhang, Lina and Ullah, Arif and Zhang, Quanhao and Ou, Yanchi},
title = {MLatom: A Package for Atomistic Simulations with Machine Learning},
year = {2013--2024},
type = {Computer Program}
}

旧版信息

用户可在 遗留页面 中找到旧版。