当前位置: 首页 > news >正文

张家港做网站多少钱wordpress导航图片

张家港做网站多少钱,wordpress导航图片,做网站维护是什么岗位,中卫网站设计公司排名技术背景 在前面两篇文章中#xff0c;我们分别介绍了分子动力学模拟软件MindSponge的软件架构和安装与使用。这里我们进入到实用化阶段#xff0c;假定大家都已经在本地部署好了基于MindSpore的MindSponge的编程环境#xff0c;开始用MindSponge去做一些真正的分子模拟的工…技术背景 在前面两篇文章中我们分别介绍了分子动力学模拟软件MindSponge的软件架构和安装与使用。这里我们进入到实用化阶段假定大家都已经在本地部署好了基于MindSpore的MindSponge的编程环境开始用MindSponge去做一些真正的分子模拟的工作。那么分子模拟的第一步我们就需要在MindSponge中去定义一个分子系统Molecule()。 基础类Molecule的解析 我们先来看一下源代码中的Molecule这个类的自我介绍 class Molecule(Cell):rBase class for molecular system, used as the system module in MindSPONGE.The Molecule Cell can represent a molecule or a system consisting of multiple molecules.The major components of the Molecule Cell is the Residue Cell. A Molecule Cell cancontain multiple Residue Cells.Args:atoms(Union[List[Union[str, int]], ndarray]): Array of atoms. The data in array can be str of atomname or int of atomic number. Defulat: Noneatom_name(Union[List[str], ndarray]): Array of atom name with data type str. Defulat: Noneatom_type(Union[List[str], ndarray]): Array of atom type with data type str. Defulat: Noneatom_mass(Union[Tensor, ndarray, List[float]]): Array of atom mass of shape (B, A) with data typefloat. Defulat: Noneatom_charge(Union[Tensor, ndarray, List[float]]): Array of atom charge of shape (B, A) with data typefloat. Defulat: Noneatomic_number(Union[Tensor, ndarray, List[float]]): Array of atomic number of shape (B, A) with data typeint. Defulat: Nonebond(Union[Tensor, ndarray, List[int]]): Array of bond connection of shape (B, b, 2) with datatype int. Defulat: Nonecoordinate(Union[Tensor, ndarray, List[float]]): Tensor of atomic coordinates :math:R of shape(B, A, D) with data type float. Default: Nonepbc_box(Union[Tensor, ndarray, List[float]]): Tensor of box size :math:\vec{L} of periodic boundarycondition (PBC). The shape of tensor is (B, D),and the data type is float. Default: Nonetemplate(Union[dict, str, List[Union[dict, str]]]): Template for molecule. It can be a dict in MindSPONGEtemplate format or a str for the filename of aMindSPONGE template file. If a str is given,it will first look for a file with the same name in thecurrent directory. If the file does not exist, it willsearch in the built-in template directory ofMindSPONGE (mindsponge.data.template).Default: None.residue(Union[Residue, List[Residue]]): Residue or a list of residues. If template is not None,only the residues in the template will be used.Default: None.length_unit(str): Length unit. If None is given, the global lengthunits will be used. Default: NoneOutputs:- coordinate, Tensor of shape (B, A, D). Data type is float.- pbc_box, Tensor of shape (B, D). Data type is float.Supported Platforms:Ascend GPUSymbols:B: Batchsize, i.e. number of walkers in simulationA: Number of atoms.b: Number of bonds.D: Spatial dimension of the simulation system. Usually is 3.可以先看一下Molecule所接收的信息其实可以主要分为以下几大类别 原子特征信息。用于区分不同原子之间的差异性比如atom_name原子名称、atom_type原子类型、atomic_number原子序数等。拓扑信息。在构建Molecule的时候需要传入键连信息bond否则不带键连关系的Molecule计算出来的力场能量是错误的。构象信息。主要是原子坐标coordinate和周期性边界条件pbc_box作为近邻表计算和力场能量计算的输入但不作为拓扑连接信息的输入。模块化信息。除了逐个原子的去构建一个Molecule还可以定义好一系列完整的残基Residue再输入给Molecule进行构建或者通过模板template来进行构建。单位信息。主要包含长度单位length_unit和能量单位energy_unit。 上述主要是给Molecule的输入信息输入给Molecule之后在内部构建build一次才能得到一个最终的分子系统对象。接下来看看构建之后的Molecule的一些重要内置属性self.xxx 原子特征信息。除了上述传入的那些信息之外还有原子数num_atomsbatch数量num_walker以及灵活的维度数量dimension。除了每个原子的基本类型外还保存了一个heavy_atom_mask重原子的信息便于快速区分重原子和氢原子。拓扑信息。除了键连关系bonds信息还有h_bonds氢原子成键的信息。构象信息。主要就是coordinate原子坐标因为需要在Updater中更新迭代因此这里的coordinate需要是一个Parameter的类型而不是普通的Tensor。模块化信息。在构建的过程中对传入的Residue也都进行了extend因此最终Residue内部的这些信息都会被合并到前面提到的Molecule的原子特征信息和拓扑信息、构象信息中同时会保留一个atom_resid用于追溯原子所在的residue。如果在template模板中有配置一些约束限制比如settle约束算法相关的参数settle_index和settle_length也会保存在Molecule的属性中用于后续约束算法的计算。单位信息。units把相关的单位信息都存储在一个Units对象中支持从global units中调用可以随时调用。 除了内置属性Molecule还有一些内置函数可以关注一下 单位转化。主要是convert_length_from和convert_length_to两个函数用于执行长度单位的变换。系统扩展函数。比如copy函数可以用于将本系统拷贝一份但是该拷贝的过程会生成一个新的对象而不是原有的Molecule对象。但如果是多个的Molecule对象可以用内置函数append进行合并。如果需要节省一些麻烦想对系统进行扩展可以直接使用内置函数reduplicate在系统内部复制一份。类似于append的功能可以使用内置函数add_residue来添加新的residue。上述几种方法主要针对于非周期性的体系如果是带有周期性边界条件的体系直接使用repeat_box函数即可完成对体系的快速复制。构建函数。一般情况下对于只是想做MD的童鞋而言没有必要使用到build_system构建系统和build_space构建构象这些函数但是如果有需要自行调整Molecule的内容时就需要重新build一次。补介质函数。一般给定的pdb文件会丢失一些氢原子和溶剂分子的信息这些都可以在做模拟之前手动补上。目前MindSponge支持的是对体系加水分子fill_water可以指定溶剂层的厚度或者指定一个盒子的大小。回调函数。在深度学习或者MindSponge分子动力学模拟的过程中我们会使用到回调函数CallBack来对输出内容进行追踪。但是CallBack本身是不保存任何体系相关的信息的因此追踪的内容其实也是从Molecule和ForceField内部进行回调。比如在Molecule中可以调用get_atomsget_coordinateget_pbc_box等等函数而如果直接使用MindSpore的Cell中所特有的construct函数这里也会返回coordinate和pbc_box两个信息这些都可以认为是Molecule类的“回调函数”。 从模板定义一个分子 关于MindSponge的安装和使用在这里我们就不重复赘述了假设大家已经完成了MindSponge的安装。但是需要提一句的是在开始MindSponge模拟前最好在python脚本的最前面加上这样一些环境变量的配置否则容易报错 import os os.environ[GLOG_v]4 os.environ[MS_JIT_MODULES]sponge接下来我们就可以简单的使用模板文件去创建一个新的分子 from sponge import Molecule system Molecule(templatewater.spce.yaml) print (The number of atoms in the system is: , system.num_atoms) print (All the atom names in the system are: , system.atom_name) print (The coordinates of atoms are: \n{}.format(system.coordinate.asnumpy()))输出的结果如下所示 The number of atoms in the system is: 3 All the atom names in the system are: [[O H1 H2]] The coordinates of atoms are: [[[ 0. 0. 0. ][ 0.08164904 0.0577359 0. ][-0.08164904 0.0577359 0. ]]]这里因为water.spce.yaml是一个预置的模板类似的还有water.tip3p.yaml。这种预置的模板我们可以直接当做template来创建但如果是用户自行定义的模板文件最好在这里写清楚yaml文件的绝对路径否则会导致报错。相关yaml文件的内容如下所示 template:base: water_3p.yamlWAT:atom_mass: [15.9994, 1.008, 1.008]atom_charge: [-0.8476, 0.4238, 0.4238]settle:mandatory: falselength_unit: nmdistance:OW-HW: 0.1HW-HW: 0.16330 molecule:residue:- WATlength_unit: nmcoordinate:- [0.0, 0.0, 0.0]- [0.081649043, 0.057735897, 0.0]- [-0.081649043, 0.057735897, 0.0]这里的base是指向了另外一个较为基础的yaml参数文件 template:WAT:atom_name: [O, H1, H2]atom_type: [OW, HW, HW]atom_mass: [16.00, 1.008, 1.008]atomic_number: [8, 1, 1]bond:- [0, 1]- [0, 2]head_atom: nulltail_atom: null有了这些参考用户就可以自行定义一些模板用于计算。 从文件定义一个分子 MindSponge也支持一些特定格式的分子导入比如mol2格式的分子和pdb格式的蛋白质分子这个章节介绍一下如何将文件导入为一个MindSponge的Molecule。比如我这里有一个非常简单的pdb格式的多肽链 REMARK Generated By Xponge (Molecule) ATOM 1 N ALA 1 -0.095 -11.436 -0.780 ATOM 2 CA ALA 1 -0.171 -10.015 -0.507 ATOM 3 CB ALA 1 1.201 -9.359 -0.628 ATOM 4 C ALA 1 -1.107 -9.319 -1.485 ATOM 5 O ALA 1 -1.682 -9.960 -2.362 ATOM 6 N ARG 2 -1.303 -8.037 -1.397 ATOM 7 CA ARG 2 -2.194 -7.375 -2.328 ATOM 8 CB ARG 2 -3.606 -7.943 -2.235 ATOM 9 CG ARG 2 -4.510 -7.221 -3.228 ATOM 10 CD ARG 2 -5.923 -7.789 -3.136 ATOM 11 NE ARG 2 -6.831 -7.111 -4.087 ATOM 12 CZ ARG 2 -8.119 -7.421 -4.205 ATOM 13 NH1 ARG 2 -8.686 -8.371 -3.468 ATOM 14 NH2 ARG 2 -8.844 -6.747 -5.093 ATOM 15 C ARG 2 -2.273 -5.882 -2.042 ATOM 16 O ARG 2 -1.630 -5.388 -1.119 ATOM 17 N ALA 3 -3.027 -5.119 -2.777 ATOM 18 CA ALA 3 -3.103 -3.697 -2.505 ATOM 19 CB ALA 3 -1.731 -3.041 -2.625 ATOM 20 C ALA 3 -4.039 -3.001 -3.483 ATOM 21 O ALA 3 -4.614 -3.643 -4.359 ATOM 22 N ALA 4 -4.235 -1.719 -3.394 ATOM 23 CA ALA 4 -5.126 -1.057 -4.325 ATOM 24 CB ALA 4 -6.538 -1.625 -4.233 ATOM 25 C ALA 4 -5.205 0.436 -4.039 ATOM 26 O ALA 4 -4.561 0.930 -3.116 ATOM 27 OXT ALA 4 -5.915 1.166 -4.728 TER使用MindSponge来读取该pdb文件的方法为[*注由于一般pdb文件中会忽略氢原子因此加载的时候需要使用rebuild_hydrogen将其重构成一个完整的分子] from sponge import Protein system Protein(case1.pdb, rebuild_hydrogenTrue) print (The number of atoms in the system is: , system.num_atoms) print (All the atom names in the system are: , system.atom_name)相应的输出结果为 [MindSPONGE] Adding 57 hydrogen atoms for the protein molecule in 0.007 seconds. The number of atoms in the system is: 57 All the atom names in the system are: [[N CA CB C O H1 H2 H3 HA HB1 HB2 HB3 N CACB CG CD NE CZ NH1 NH2 C O H HA HB2 HB3 HG2HG3 HD2 HD3 HE HH11 HH12 HH21 HH22 N CA CB CO H HA HB1 HB2 HB3 N CA CB C O OXT H HAHB1 HB2 HB3]]可以看到的是在对应的位置上我们将氢原子补在了一个相对合适的位置。一般情况下重构完氢原子之后需要对系统进行一个能量极小化否则会导致初始系统的能量过于不稳定。具体的加氢效果可以看一下这个运行的结果 其实加氢是很难做到一步到位的但是我们可以尽可能的将氢原子摆放在一个相对合理的位置便于后续的能量计算和优化。 自定义分子 由于python这一编程语言的灵活性使得我们不仅支持从文件和模板文件中去定义一个分子系统还可以直接用脚本的形式传一系列的python列表给Molecule来构建一个分子系统。比如我们只传原子类型和坐标还有键连关系就能构建一个简单的水分子 from sponge import Molecule system Molecule(atoms[O, H, H],coordinate[[0, 0, 0], [0.1, 0, 0], [-0.0333, 0.0943, 0]],bonds[[[0, 1], [0, 2]]]) print (The number of atoms in the system is: , system.num_atoms) print (All the atom names in the system are: , system.atom_name) print (The coordinates of atoms are: \n{}.format(system.coordinate.asnumpy()))相应的输出结果如下所示 The number of atoms in the system is: 3 All the atom names in the system are: [[O H H]] The coordinates of atoms are: [[[ 0. 0. 0. ][ 0.1 0. 0. ][-0.0333 0.0943 0. ]]]总结概要 本文通过解析MindSponge的源码实现详细介绍了在MindSponge中Molecule基础分子类的内置属性和内置函数以及三种相应的分子系统定义方法我们既可以使用yaml模板文件来定义一个分子系统也可以从mol2和pdb文件格式中直接加载一个Molecule还可以直接使用python列表的形式传入一些手动定义的内容直接构建一个Molecule。有了最基础的分子系统之后后面就可以开始定义一些能量项和迭代器开始分子动力学模拟。
http://www.hkea.cn/news/14524182/

相关文章:

  • 在线建站模板wordpress 插件扫描
  • 企业网站的设计思路wordpress删除历史文档
  • 昆明网站建设时间手工小制作 小学生
  • 哪个浏览器可以看禁止访问的网站兰州新区规划建设管理局网站
  • 做网站钱世界青田网app
  • 关于建设网站的需求分析wordpress获取自定义文章分类名
  • 猪八戒建站服务外贸网店怎么开店
  • 怎么做新浪网站google谷歌搜索引擎
  • 3免费做网站云表无代码开发平台
  • 网站建设公司哪个好点快看点自媒体注册入口
  • 门户网站建设摘要网站首页建设公司
  • 外贸做的社交网站重庆机械加工网
  • 滕州手机网站建设余姚做网站哪家好
  • 石家庄网站建设方案推广你会回来感谢我的正能量视频
  • 电线电缆做销售哪个网站好小说网站用什么虚拟主机
  • 有做lol直播网站有哪些公路投资建设有限公司网站
  • 电商网站开源授权二次开发做网站的英文
  • 昌邑网站制作做网站 分辨率应该是多少
  • 网站建设做微营销wordpress制作vr全景
  • 哪个网站建站速度快上海人才网官网下载
  • 设计网站开发费用计入什么科目个人网页策划书
  • 海口cms建站系统建站方法
  • 哪个公司网站建设好wordpress rss小工具
  • 哪个网站做系统宁波好的seo外包公司
  • 河北省网站建设公司网站运营策划方案
  • 购物网站后台模板wordpress安装用户名
  • 无锡 做网站线上平台名称大全
  • 成都建站推广做药材有什么好的网站
  • 设计发明的网站临沂网站设计价格
  • 广告发布网站开发上海橙网站设计公司