技术文章及通讯

创建菠菜,一个开源的MATLAB库模拟自旋动力学

南安普顿大学Ilya Kuprov教授


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

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

图1所示。菠菜能力图。

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

我们使用MATLAB是因为我们希望最小化团队在开发上花费的时间——cpu时间很便宜,但脑力时间非常昂贵。在我们可以使用的许多语言中,MATLAB需要最少的时间来开发和调试计算物理的代码。它对稀疏矩阵的原生支持,以及GPU和并行化,为我们节省了多年的脑力时间。

解决指数缩放问题

指数复杂度缩放一直是模拟量子过程的主要难点。自旋物理学也是如此:一个自旋只有两个量子态,自旋向上和自旋向下。两个自旋有四种可能的组合,三个自旋有八种,以此类推。组合的数量决定了执行计算所需的矩阵的大小。一个只有20个自旋的相对适度的模拟需要一个有2个自旋的矩阵20.(或大约100万)行和列—甚至存储起来都非常困难。在2007年之前,所有用于自旋动力学模拟的算法都呈指数级扩展,严重限制了它们的实用性。

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

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

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

用图形处理器和并行计算加速模拟

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

菠菜的典型用例

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

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

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

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

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

深度神经网络和其他增强

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

图3。DEERNet的原理图,这是一个用MATLAB编写的深度神经网络基础设施,使用统计和机器学习工具箱来解决一个著名的结构生物学问题:未配对电子之间的距离测量。

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

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

确认

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

南安普顿大学是全球近1300所提供MATLAB和Simulink校园访问的大学之一。通过校园范围的许可,研究人员、教师和学生可以访问最新版本的产品的通用配置,以便在任何地方使用——在教室、在家里、在实验室或在现场。2022世界杯八强谁会赢?

作者简介

Ilya Kuprov是南安普顿大学化学物理副教授。他曾是牛津大学EPSRC早期职业研究员,杜伦大学物理化学讲师,牛津大学莫德林学院考试研究员。他的研究主要集中在量子理论中的计算方法。

2019年出版的

查看相关功能的文章

Baidu
map