摘要:
本文介绍了在Python的numpy框架下计算近邻表的两种不同算法的原理以及复杂度,另有分别对应的两种代码实现。在实际使用中,我们更偏向于第二种算法的使用。因为对于第一种算法来说,哪怕是一个10000个原子的小体系,如果要计算两两间距,也会变成10000*10000这么大的一个张量的运算。可想而知,这样计算的效率肯定是比较低下的。 阅读全文
本文介绍了在Python的numpy框架下计算近邻表的两种不同算法的原理以及复杂度,另有分别对应的两种代码实现。在实际使用中,我们更偏向于第二种算法的使用。因为对于第一种算法来说,哪怕是一个10000个原子的小体系,如果要计算两两间距,也会变成10000*10000这么大的一个张量的运算。可想而知,这样计算的效率肯定是比较低下的。 阅读全文
posted @ 2024-01-09 23:30
DECHIN
阅读(285)
评论(0)
推荐(0)

更好的管理系统进程,是每一个程序员的进阶必经之路。尤其是使用多进程、多用户的场景,系统内的进程是非常混乱的。如果在运行程序时都能控制好进程名称,那么就可以直接通过进程名称来监管和控制进程的执行和输出。本文介绍了setproctitle这样一个工具的简单使用,可以在python代码内部对进程进行管理。
本文介绍了在Python中使用偏函数partial的方法,并且介绍了两个使用partial函数的案例,分别是concurrent并行场景和基于jax的自动微分场景。在这些相关的场景下,我们用partial函数更多时候可以使得代码的可读性更好,在性能上其实并没有什么提升。如果不想使用partial函数,类似的功能也可以使用参考链接中所介绍的方法,实现一个装饰器,也可以做到一样的功能。
本文介绍了一个工具tracemalloc,可以在Python代码的执行过程中对每一步的内存占用进行记录。
解决Python编程中可能出现的“段错误(核心已转储)”,并没有其他任何提示信息的问题。
本文介绍了最新的一些分子力场中有可能使用到的1-5相互作用——双二面角耦合项的计算。而常规的计算方式是,通过量化的计算得到每一个Residue的α碳对应的两个二面角的数值在空间中的离散化数值。然后在分子模拟的过程中使用插值的方案,对相关的条目进行计算,例如使用双三次样条插值。但其实这种插值算法的使用有可能导致一些其他的问题,比如深度学习中可能会经常提到的“过拟合”问题。由于这个条目本身就只是一个修正项,从数值大小上来说并不算大,因此这些细节是否需要优化还有待商榷。
本文主要介绍了如何使用Amber来计算一个给定分子构象的pdb文件的单点势能值。基本流程可以分为三个步骤:首先从力场文件中去寻找对应于输入构象的力场参数,然后配置一个执行参数文件,最后使用这些保存下来的文件来计算分子单点能。
解决使用Jupyter Notebook打开ipynb文件时报错'500 : Internal Server Error'的问题,亲测可用。
当我们需要优化程序性能的时候,首先我们就需要了解程序的主要耗时模块在哪里,也就是通常所谓的决速步,或者瓶颈模块,这样就可以有针对性的去进行优化。在MindSpore相关的程序中,我们可以使用MindInsight这一强力的性能分析可视化工具来进行分析。该工具会给出每个算子的调用次数以及总耗时等参数,能够给性能优化带来不少重要的参考。
本文主要介绍了在MindSponge中使用SETTLE和Lincs约束算法的方法,以及相关算法的简单原理。SETTLE约束算法主要应用于水分子体系,限制的是一个等腰三角形的拓扑结构,特点是可并行,性能较好。Lincs约束算法更多的被应用在蛋白质体系,主要限制的是每一个共价键的键长,特点是适用体系比较灵活,但总体计算量较大,且不可并行化。
在经过前面几篇博客的介绍之后,我们可以定义一些目标的分子体系,并且计算其单点能。而分子模拟的精髓就在于快速的迭代和演化,也就是本文所要介绍的迭代器相关的内容。在具备了分子系统、单点能和迭代器这三者之后,就可以正式开始进行分子动力学模拟。常见的模拟过程有:能量极小化、NVT恒温恒容过程、NPT恒温恒压过程以及NVE微正则系综,本文所涉及的主要是能量极小化以及NVT恒温恒容过程,更多的模拟方法有待大家一起研究探讨。
本文主要衔接前面的文章,继“MindSponge的安装与使用”、“MindSponge软件架构”以及“MindSponge中定义一个分子系统”系列文章之后,再讲解一下如何根据一个定义好的分子系统进行力场建模,使用力场来计算单点能,就是一个比较简单的案例。
本文通过解析MindSponge的源码实现,详细介绍了在MindSponge中Molecule基础分子类的内置属性和内置函数,以及三种相应的分子系统定义方法:我们既可以使用yaml模板文件来定义一个分子系统,也可以从mol2和pdb文件格式中直接加载一个Molecule,还可以直接使用python列表的形式传入一些手动定义的内容,直接构建一个Molecule。有了最基础的分子系统之后,后面就可以开始定义一些能量项和迭代器,开始分子动力学模拟。
分子模拟具有众多的应用场景,比如制药领域和材料领域,做好分子模拟的工作,可以极大程度上缩减新药物新材料的研发成本和研发周期。近几年随着GPT-4和Diffusion Model的大火,让大家意识到了AI已经具备了相当的解决问题的能力。因此基于AI的框架和模型,对比AI训练与分子模拟之间的共性,可以实现一个面向AI时代的分子模拟框架。本文主要介绍基于MindSpore框架实现的,MindSponge分子动力学模拟框架的软件架构。
本文主要介绍MindSponge框架的免安装使用和编译构建使用这两种使用方法,MindSponge是一款可以在MindSpore上进行分子动力学模拟的,模块化、高通量、端到端可微的下一代智能分子模拟程序库。通过MindSponge,我们可以在GPU上更加便捷的开发分子动力学模拟算法和应用,并且原生的支持神经网络力场和增强采样,使得我们可以用一个框架就完成绝大部分的分子模拟工作。
浙公网安备 33010602011771号