技术背景 对于一些连续运行或者长时间运行的Python程序而言,如服务器的后端,或者是长时间运行的科学计算程序。当我们涉及到一些中途退出的操作时,比如使用Ctrl+C来退出正在运行的程序。这种场景的出现一般有两个可能性:一是程序出现了问题,需要终止程序来对其进行调整。另一种是程序本身是正确的,但是程序运行的速度太慢了,也有可能是想提前结束,这种场景下很多时候我们是希望可以保留其相应的计算结果的。但是如果我们使用的是一些第三方的数据存储格式来存储数据,不一定可以支持连续的存储,非常常见的是在程序执行结束之后,再将结果进行保存。但是由于程序被提前终止了,此时就需要一些特殊的手段来对中途终止的程序的...

  bqCeK4G1CV1Q   2023年11月02日   50   0   0 Python

技术背景 Python是一门极其热门、极其灵活的开发语言,其更新迭代的速度也非常的快速。有时候我们遇到不同的软件版本不同方法处理的情况,此时就需要用到版本号比对的工具。举一个例子说,我们要在python代码中区分numpy版本在1.21.6之前和之后的版本。虽然我们可以自己手写一个软件版本号识别和比对的简单函数,但是相比之下,LooseVersion的方案会更加的成熟和方便一些。本文主要介绍LooseVersion的一些相关使用场景。 查看软件版本号 在python中我们可以使用两种方法来获取一个软件的版本号。如果是在命令行下,我们可以使用pip来查看版本号: $python3-mpipsho...

  bqCeK4G1CV1Q   2023年11月02日   81   0   0 Python

技术背景 其实如果没有专门去研究python的一些内置函数的话,我们都没办法发现一些很神奇的功能,即使是我们最熟悉的python中的sum函数。不知道还有多少人,以为这只是一个只能用来做求和的函数? 对列表求和 In[1]:my_list=[1,2,3,4,5] In[2]:sum(my_list) Out[2]:15 当然,这也是sum函数的基本功能,类似于sum函数的还有min求最小值函数和max求最大值函数等: In[3]:min(my_list) Out[3]:1 In[4]:max(my_list) Out[4]:5 当然,其实sum函数也不仅仅是可以对list这种数据结构进...

  bqCeK4G1CV1Q   2023年11月01日   75   0   0 算法与数据结构

技术背景 在前面两篇文章中,我们分别介绍了分子动力学模拟软件MindSponge的软件架构和安装与使用教程。这里我们进入到实用化阶段,假定大家都已经在本地部署好了基于MindSpore的MindSponge的编程环境,开始用MindSponge去做一些真正的分子模拟的工作。那么分子模拟的第一步,我们就需要在MindSponge中去定义一个分子系统Molecule()。 基础类Molecule的解析 我们先来看一下源代码中的Molecule这个类的自我介绍: classMolecule(Cell): r""" Baseclassformolecularsystem,usedasthe"syste...

  bqCeK4G1CV1Q   2023年11月01日   83   0   0 算法与数据结构

技术背景 博主对前端技术不甚了解,只是想在博客中直接展示一些已有的分子结构,而且需要是可以交互的。而我们了解到通过3Dmol这样的前端工具可以实现,通过在博客园随笔中直接引入3Dmol的js最新脚本,然后在当前页构建一个容器,最后在容器中以字符串的形式填进去分子结构,比如可以填充一个xyz文件所定义的3D分子结构。由于不需要安装什么特定的软件(假设你已经生成好了一系列的分子模型用于展示,否则可以参考前面这篇博客用openbabel去生成一些特定的分子结构),我们直接上前端代码吧。 解决方案 解决方案主要参考了参考链接1文章中的内容,非常简单,只需三步走。首先,我们直接在Markdown模式的编...

  bqCeK4G1CV1Q   2023年11月01日   62   0   0 其他技术区

技术背景 在Ubuntu20.04下,如果从应用商城中直接下载VScode,有可能会导致无法使用中文输入法的问题,那么就只能从其他地方写了中文再复制过来,非常的麻烦。从一些文章中收集到的信息来看,应该是从应用商城中下载的VSCode是一个阉割版的软件,其中就把中文输入法这一项给抛弃了。因此我们的操作是先把从应用商城安装的VScode卸载掉,然后重新安装一个完整版的VScode即可解决问题。 操作流程 整体流程基本上是先删除,后重新安装的策略。 $sudosnapremovecode [sudo]dechin的密码: 已删除code $wget-qOhttps://packages.micros...

  bqCeK4G1CV1Q   2023年11月01日   111   0   0 代码与软件发布

技术背景 昇思MindSpore是由华为主导的一个,面向全场景构建最佳昇腾匹配、支持多处理器架构的开放AI框架。MindSpore不仅仅是软件层面的工具,更重要的是可以协同华为自研的昇腾Ascend平台,做到软硬件一体的行业解决方案。基于MindSpore的高通量、自动微分和自动并行等高级特性,以及对于python第三方库numpy的友好支持,我们开发了一款可以在MindSpore上进行分子动力学模拟的,模块化、高通量、端到端可微的下一代智能分子模拟程序库——MindSponge。该程序库最新的开发版,可以参考这个仓库地址的develop分支。而MindSponge的最新稳定版,会最终协同另外...

  bqCeK4G1CV1Q   2023年11月01日   54   0   0 机器学习

技术背景 在前面的这一篇博客中,比较全面的介绍了组成蛋白质的各种氨基酸的三维结构。由于每个氨基酸大小不一,在传统的蛋白质折叠预测的方案中,一般会考虑全原子方案或者是粗粒化方案。对于全原子方案而言,即时去除了氢原子,也包含了极大的原子数,对于计算量来说是一个非常大的考验。而将一个氨基酸近似为一个点的方案,因为往往忽略了太多的信息,比如氨基酸之间的二面角等,因此无法达到很好的预测效果。在AlphaFold中,将每一个氨基酸在主链上的位置,用一个三角形刚体来表示。这个三角形的三个顶点分别是C原子、N原子和\(\alpha\)位的C原子。由于一个三角形就可以确定一个平面,因此每一个氨基酸可以通过一个三...

  bqCeK4G1CV1Q   2023年11月01日   123   0   0 AI综合

技术背景 当我们打开一个用于表示分子构象的xyz文件或者pdb文件,很容易可以理解这种基于笛卡尔坐标的空间表征方法。但是除了笛卡尔坐标表示方法之外,其实也有很多其他的方法用于粗粒化或者其他目的的表征方法,比如前一篇文章中所介绍的在AlphaFold2中所使用的残基的刚体表示方法。而这种刚体坐标,在本质上来说也是一种特殊的分子内坐标表示方法,因为对于每一个残基而言只有旋转和平移的自由度,而残基内部是保持互相之间相对静止的。换句话说,每一个残基的内坐标是保持不变的,本文主要介绍分子的内坐标表示方法。 具体表示方法 在笛卡尔坐标系中,我们使用绝对坐标来表示每一个原子的空间位置,虽然也可以用于计算分子...

  bqCeK4G1CV1Q   2023年11月01日   57   0   0 AI综合
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~