仓库源文站点原文


layout: post title: 分子模拟周刊:第 6 期 categories:


刊首语

这几天一直在考虑优化问题, 因为我想在自己的xANI程序中实现分子构型优化. 对于数理科学中的优化, 我知道的并不少, 因为我自2006年到现在所做的大部分事情都和优化有关, 优化计算方法, 优化力场参数, 优化程序. 近几年大热的机器学习, 神经网络, 调参侠们所做的, 也无不涉及优化.

无论哪种优化, 首先都需要确定一个目标, 或者至少确定一个大致的目标. 至于确定了目标之后具体要如何做, 采取哪些途径, 就各显神通了. 这就是为什么我们会有那么多种优化方法的原因. 这其中最关键的问题是, 我们只有局部的信息. 根据局部信息最多只能优化到局部的最佳, 而无法保证优化到全局的最佳. 全局优化要求我们知晓全局信息, 而这一般很难做到, 我们最多能做到从局部信息推知一点全局信息, 也就是所谓的见微知著. 各种各样的全局优化算法无不在考虑怎么跳出局部最优点, 到达另一个局部更优点.

如果我们撇开太过具体的优化领域, 更宏观地考虑一下优化, 可能会发现, 在这个世界纷繁复杂的表象之后, 优化正是隐藏着的运行机制之一. 大到天体, 小到病毒, 它们无不遵循着某些规律, 却又试图在其约束与限制之中实现优化. 它们所优化的, 可以是能量, 也可以是生存概率, 甚至是更长远的存在.

而对于处在中间的我们, 忙忙碌碌, 每日所做的一切, 其目的和意义何在呢? 对于这个人生的终极之问, 我在这里给出的答案是: 优化生命, 无论其是自在, 自为, 自发, 还是自觉地. 对此没有认知的人, 自在自为地优化生命; 对此有模糊认知的人, 自发地优化生命; 对此有清晰认知的人, 自觉地优化生命.

如果要进行自觉的全局优化, 数学上很困难, 物理上很困难, 人生中更困难. 人与人之间的天禀差距小, 而后天差距大的地方在于对已有信息的感知, 获取, 综合运用. 如果你能从局部信息推晓更多的全局信息, 自然能更快地跳离目前的坑, 达到更优的位置. 年轻的时候多闯荡, 多见识, 多体悟, 对整个世界的形貌景观有更多了解和认知, 才可能更好地优化自己的人生.

如果没有全局信息, 如何跳离呢? 数理优化方法中已经给出了答案, 一定策略下的随机跳离. 这和很多人告诫的一样, 跳离出你目前的舒适区, 才能到达更佳位置.

想通了, 也就相通了.

认识这个人就是开了一扇窗户, 就能看到不一样的东西, 听到不一样的声音, 能让你思考、觉悟, 这已经够了. 其它还有很多, 比如机会、帮助, 我不确定. 这个在一般人看来可能不重要, 但我知道这个人很重要.

  ——豆豆《遥远的救世主》

资源工具

1. scanmol: 分子构型扫描bash脚本

因为我要验证xANI程序, 就想着扫描一个分子的二面角, 计算异构体的能量作为比较. 我前面在氨基酸工具中实现过二面角的旋转, 所以改改代码就好了. 对于多个二面角扫描的实现, 当然可以一次完成, 但麻烦些, 也不易通用化, 所以就采取简单的做法, 每次改变一项, 在前面的文件上进行.

可以实现在线工具, 支持更多的扫描参数, 距离, 角度等.

2. xfire: 分子构型优化C程序

因为我要实现一个简单的分子构型优化程序, 所以就查阅了一下, 看目前有哪些简单好用的优化方法. 结果就找到这个2006年提出的方法, 够简单, 也很火, 因为它的简称就是FIRE. 很多程序都实现了这种方法, 我参考LAMMPS实现的版本, 改了一下. 测试效果还不错.

3. FIRE: Fast Inertial Relaxation Engine for Optimization on All Scales

FIRE优化方法作者的PPT, 介绍方法的思想, 给出了示例代码.

论文采风

学艺术和建筑的, 经常要外出采风和写生. 做科研的也同样需要, 只不过换成了阅读文献和查看问题. 阅读别人的论文其实就是采风, 而尝试解决别人提出的问题, 就是写生了.

1. Geometry optimization

分子构型优化的综述, 总结了各种方法, 可快速了解构型优化. 题图势能面图没我做的漂亮.

2. Structural Relaxation Made Simple

FIRE优化方法的原始文章

3. Influence of integration formulations on the performance of the fast inertial relaxation engine (FIRE) method

讨论FIRE方法采用什么积分方法最好.

4. Assessment and optimization of the fast inertial relaxation engine (FIRE) for energy minimization in atomistic simulations and its implementation in LAMMPS

讨论FIRE方法实现需要注意的地方. 有参考代码, 我照此实现.

问题写生

请问构建MOF的拓扑文件有什么好的方法吗

有个uff力场的在线工具, 好像叫obgmx, 可以转换. JMOL有自己的UFF实现, 可以看看. 如果你有ADF最新版, 也可以试试. 我的gmxtop也可以做, 但是还没有测试正确性, 而且也没有发布.

比如在x轴和y轴分别施加Ex=E0(cos(wt))的余弦电场,叠加后能实现在xy平面的旋转电场的效果么?

旋转电场是可以的, 但是我以前的测试得到的结论好像是必须改源码.

如果体系是能够跑通的,但是能量最小化是大于1000的,请问可能的问题是什么,求赐教,已经尝试过多种办法,仍无法小于1000

只要最大力不是超级大, 1000到10000, 甚至更大一点都是可以接受的, 没有必要一定要到1000以下, 又是也是不可能的. 你只要下一步预平衡能过去就好了, 不能拿最大力当成功的标志

请问一下有没有什么脚本可以分析蛋白空腔内的水密度,我记得之前群里有在讨论,但是找不到了

如果只是简单的统计空腔内的水分子数目, 可以采用sdf的方法, 统计出所有的, 然后提取空腔部分的数据

网络文摘

1. 为什么自己的声音和录音中自己的声音不一样

为什么自己的声音和录音中自己的声音不一样?从神经生物学上来看:

第一, 骨传导. 当我们说话时, 自己听到的声音其实一般都既有气传导又有骨传导, 是这两种声音传播方式叠加的效果, 然而当别人听你讲话时, 只产生了空气传导这一个听觉传导通路, 而只有空气传导的话会使声音能量大大衰减, 音色也发生改变, 所以自然我们听自己的声音和别人听到的或者说录音机里面的声音就不一样.

第二, 发声系统在说话过程中可以调节听觉皮层.

以前真的没有注意到这个问题, 总以为自己的声音在自己和别人那里听起来都是一样的, 直到有一天, 一个小萝莉对我说, 你说话怎么像鸭子, 嘎嘎的. 我当时就好吃了一惊. 才知道自己听到的和别人听到的是两回事. 等以后再听自己的录音时, 也就释然了.

2. 我对中国科技行业的看法(译文)

技术是一种实践性的产品, 必须不断实践, 才能使知识保持在当前水平. 日本的伊势神宫, 每20年就要拆毁原来的宫殿, 在旁边的土地重新造一遍, 就是为了让后代人不会失去建造宫殿的知识.

我最近还看到一篇报道, 美国政府忘记了如何生产 "Fogbank", 这是生产氢弹的必不可少的机密材料, 因为相关专家已经退休. 然后, 政府不得不花费数百万美元来恢复生产知识.

我认为, 难以衡量的过程知识比易于观察的工具和知识产权更重要. 如果人类不是继承了过去2,000年的各种生产过程的知识, 那么我们将几乎没有有意义的进步.

我经常觉得, 有些事情做不做都区别不大, 但如果有人做, 我们还是要支持. 上面给出了一个很重要的理由.

博前博后

这里推送最新发布的招聘信息. 你可以看看有没有适合自己的位置, 或从中了解相关领域目前的研究项目.

往期回顾

订阅投稿

本周刊记录我每周所读所思, 并自觉值得与大家分享的内容.

本周刊同步更新在我的网络日志 哲·科·文 和微信公众号 分子模拟之道.

如果你觉得我的分享对你有益, 不妨将它推荐给你认识的人.

如果你也认同分享的理念, 欢迎投稿或推荐自己的内容. 请关注微信公众号后台留言, 或加入QQ群联系.