DMFF
关于DMFF
DMFF(可微分分子力场)是一个基于Jax的Python包,提供了分子力场模型的完全可微分实现。该项目旨在建立一个可扩展的代码库,以最小化力场参数化的工作量,并简化高级复杂势能(如具有几何依赖原子参数的可极化模型)的力和维里张量计算。目前,该项目主要关注以下分子系统:水、生物大分子(肽、蛋白质、核酸)、有机聚合物以及小型有机分子(有机电解质、类药物分子)等。我们支持传统的点电荷模型(类OPLS和AMBER)和多极可极化模型(类AMOEBA和MPID)。整个项目基于JAX的XLA技术,因此可以"即时编译"并在GPU设备上运行,比普通Python代码效率高得多。
有机分子系统的行为(如蛋白质折叠、聚合物结构等)通常由多种不同类型相互作用的复杂效应决定。现有的有机分子力场主要是经验拟合的,其性能在很大程度上依赖于误差抵消。因此,这些力场的可迁移性和预测能力不足。对于新分子,参数拟合过程需要大量人工干预,可能相当繁琐。为了自动化参数化过程并提高模型的稳健性,有必要在传统力场开发中应用现代人工智能技术。本项目通过利用自动可微编程技术开发代码库,服务于这一目的,允许更方便地结合现代人工智能优化技术。它还有助于实现许多令人兴奋的功能,包括(但不限于):混合机器学习/力场模型和基于轨迹的参数优化。
许可和致谢
DMFF项目采用GNU LGPL v3.0许可。如果您在未来的出版物中使用此代码,请使用以下方式引用:Xinyan Wang, Jichen Li, Lan Yang, Feiyang Chen, Yingze Wang, Junhan Chang, Junmin Chen, Wei Feng, Linfeng Zhang, and Kuang Yu Journal of Chemical Theory and Computation 2023 19 (17), 5897-5909 DOI: 10.1021/acs.jctc.2c01297
用户指南
这里是一个教程笔记本,它会告诉你DMFF的一些基本用法。欢迎阅读并开始使用DMFF!
开发者指南
代码结构
代码组织如下:
examples
:Jupyter Notebook中的演示。docs
:文档。package
:用于构建包或镜像的文件,如conda配方和docker文件。tests
:单元测试。dmff
:DMFF Python代码dmff/api
:DMFF应用程序编程接口的源代码。dmff/admp
:自动可微多极可极化(ADMP)力场模块的源代码。dmff/classical
:经典力场模块的源代码。dmff/common
:通用函数的源代码,如邻居列表。dmff/sgnn
:子图神经网络力场模型的源代码。dmff/eann
:嵌入原子神经网络力场模型的源代码。dmff/generators
:力生成器的源代码。dmff/operators
:运算符的源代码。
支持和贡献
请访问我们在GitHub上的存储库以获取库源代码。任何问题或错误都可以在我们的问题跟踪器上报告。我们欢迎通过拉取请求对DMFF做出任何贡献!