创建Spinach,一个用于模拟自旋动力学的开放源码MATLAB库

作者:南安普顿大学伊利亚·库普罗夫教授

我们每天使用的很多技术,包括磁共振成像、电机和磁数据存储,都依赖于磁相互作用。这些都来自于一个量子力学量快速旋转.携带自旋的基本粒子可能是最小的永磁体——磁性材料的量子。所有的磁过程都可以追溯到自旋。

化学家、材料科学家、物理学家和其他研究人员都对设计以不同方式操纵磁性的材料或实验感兴趣。为了做到这一点,他们需要一种模拟自旋动力学的方法。为了满足这一需求,Spin Dynamics小组开发了一款MATLAB软件——菠菜®基于自旋动力学模拟的开源库(图1)。

图1.菠菜能力图。该图书馆涵盖了磁性的量子力学以及化学和医学成像的相关领域。

我们使用MATLAB是因为我们希望尽可能减少团队花在开发上的时间,CPU时间很便宜,但大脑时间非常昂贵。在我们可以使用的许多语言中,MATLAB所需的开发和调试计算物理代码的时间最短。它对稀疏矩阵的原生支持,以及GPU和并行化,为我们节省了数年的大脑时间。金宝app

解决指数缩放问题

指数复杂度的缩放一直是模拟量子过程的主要困难。自旋物理学也是如此:一个自旋只有两个量子态,自旋向上和自旋向下。两个自旋有四个可能的组合,三个自旋有八个,以此类推。组合的数量决定了执行计算所需的矩阵的大小。一个只涉及20个旋转的相对温和的模拟需要一个带有2个旋转的矩阵20.(约100万)行和列是一件极其难以存储的事情。2007年之前,所有自旋动力学模拟算法都是指数级的,严重限制了它们的实用性。

在2007年的一篇论文(DOI: 10.1016/j.jmr.2007.09.014)中,我们描述了一种模拟自旋动力学的算法,它是多项式缩放的,而不是指数缩放的。这篇由Nicola Wagner-Rundell、Peter Hore和我共同撰写的论文促成了算法的第一次实现,也促成了《菠菜》的第一次实现。我们设法证明,在大的自旋系统中,大多数量子态对磁共振模拟来说并不是必需的,并且可以在不影响精度的情况下去掉它们。虽然这种近似使开发一个多项式缩放的算法成为可能,但在代码中实现算法是令人生畏的。潜在的数学异常复杂,涉及到李代数的奇异表示。即使是实用函数也很难从头编写代码。例如,我们需要一个用于隐式索引的函数,其中一个数组被另一个数组索引。我们还需要一个用于维度重新排序的函数,例如,它可以使用25维数组并交换21维数组尺寸为11th

作为化学家,我们害怕编写和调试这些函数,但当我们查看MATLAB文档时,我们发现我们所需要的所有函数的高度优化版本——隐式索引、维重排序、操作稀疏数组等等,在MATLAB中已经可用了。令我们惊讶的是,我们认为需要花费一年时间编写的函数只需要MATLAB的几行代码。

从一开始,MATLAB中对稀疏矩阵的原生支持使金宝app生活变得更容易,自旋物理中的大多数操作符都非常稀疏。我们发现,每安装一个新的MATLAB版本,稀疏索引速度都会提高,我们的模拟速度也会提高。

用gpu和并行计算加速仿真

当我们开始使用gpu和并行处理时,我们获得了进一步的加速。当我们要求MathWorks工程师实现稀疏GPU操作时,他们的回答是“没问题——我们会为你做的。”他们做到了,我们通过使用NVIDIA获得了另外三个数量级的速度®特斯拉®在运行MATLAB Parallel Server™的大型集群上,MathWorks团队为我们配置了并行计算工具箱™。大多数的菠菜函数现在是并行的,库将运行在尽可能多的可用核上。

菠菜的典型用例

菠菜模拟最常用于两个研究目标:解释实验结果和确定有希望的实验路线。化学家经常要求我们解释他们的实验结果,以确定他们正在研究的化学系统中发生了什么。我们建立了一个模拟,然后调整参数,使模拟结果与实验结果相吻合。然后,我们在MATLAB中运行系统轨迹分析,以查看到底发生了什么。

化学家也使用模拟来减少昂贵的实验过程的需要。例如,两年前,我们与一个化学家团队合作,他们正在寻找将氟原子插入脯氨酸(一种小型生物分子)的方法。有128种可能的氟化模式可供测试。执行128个有机合成实例,每个阶段可能需要数周的时间,这将是非常昂贵和耗时的。我们被要求找出在强磁场中128种模式中氟-19同位素的谱线最窄的那一种(图2)。在我们本地的超级计算机上运行模拟后,我们找到了最优组合。当化学家合成这种图案时,它产生了所需的窄线——我们为他们节省了多年的实验时间(DOI: 10.1021/acs.joc.8b02920)。

图2。系统中三个量子态的光谱信号宽度13C -19大蛋白中的F自旋系统作为外加磁场的函数。

在最近的另一个项目中,我们在MATLAB中用菠菜模拟了数十种氟化氨基酸和核苷酸,以找到对特定量子态产生最长寿命的一种。由此产生的改进是如此的显著以至于我们的论文直接自然方法,一个著名的化学杂志(DOI: 10.1038/s41592-019-0334-x)。

深度神经网络和其他增强

菠菜库由我们和我们在世界各地的合作者不断更新。一个积极发展的领域是深度学习。我们正在使用菠菜为能够处理双电子共振(DEER)的神经网络生成训练数据数据。实验鹿的数据生成成本很高,但Spinach生成真实模拟的速度非常快(图3)。我们添加了噪声和失真来模拟真实的实验数据。另一个引人注目的出版物,这次是在科学进步,(DOI:10.1126/sciadv.aat5218)是结果。

图3。DEERNet的原理图,这是一个用MATLAB编写的深度神经网络基础设施,使用统计学和机器学习工具箱来解决一个著名的结构生物学问题:未配对电子之间的距离测量。有趣的是,模拟量子力学过程的能力显然正被直接转化为无需拟合就能解释实验数据的能力。

在接下来的几年里,我们预计将推出一款能够模拟所有已知磁共振过程的菠菜。到那时,菠菜内核的开发将完成,但该库的应用程序数量和种类仍然是无限的。

确认

我要感谢MathWorks的工程师Alison Eele、Jos Martin和Raymond Norris,他们在实施GPU操作和为我们的团队配置并行计算集群方面提供了宝贵的帮助。

南安普敦大学是全世界近1300所大学,提供校园内广泛使用的Matlab和Simulink。有了校园许可证,研究人员、教员和学生可以访问最新版本的通用产品配置,供教室、家庭、实验室或现场使用。下载188bet金宝搏金宝app

关于作者

伊利亚·库普罗夫(Ilya Kuprov)是南安普顿大学化学物理副教授。他曾是牛津大学EPSRC早期职业研究员,杜伦大学物理化学讲师,牛津大学莫德林学院考试研究员。他的研究重点是量子理论中的计算方法。

2019年出版


查看相关功能的文章