拓扑结构和化学结构的生成器。

AuToGraFS的Python项目详细描述



autorafs
==


原始出版物:`"框架结构的自动拓扑生成器"`.

_这里是:http://pubs.acs.org/doi/abs/10.1021/jp507643v


虫子捕猎正在进行中,还有一些旧的功能尚未重新实现。

todo:
----


medium priority:
-提供各向同性缩放选项
-对称轴检测对于平面形状有问题
-更强大的mmanalysis模块

low优先级:

-单元测试覆盖率不存在
-文档编写
-更好地处理数据库:
+预计算SBU拓扑对应性
+使用比pickle更好的格式

highlight::bash

$pip install--user--upgrade autorafs




对于手动安装,首先安装依赖项,

1。python>;=3.4
2.ase,scipy,numpy<;1.15.0



然后克隆此存储库并将其添加到pythonpath::

$git clone https://github.com/dcupry/autorafs.git
$export pythonpath=$home/autorafs:$pythonpath`


示例:
--


行:

…突出显示::python

>;>from autorafs import autorafs
>;>mofgen=autorafs()
>;>mof=mofgen.make(topology\u name="pcu",
>;>sbu name=["zn\u mof5\u八面体","苯系线性"]
>;>mof.write()

在实例化期间通过传递路径可以访问数据库

>;>;mofgen=autorafs(topology_path="my_topo_path",sbu path="my_sbu_path")
>;>;mof=mofgen.set_topology(topology_name=custom_topology_name,sbu name=custom_sbu names)

sbu和拓扑,最好直接设置拓扑
(这里,my_拓扑和my_sbu_名称是适当的虚拟集合)


>;>;对于my_拓扑中的拓扑名称:
>;>;mofgen.set_拓扑(拓扑名称=拓扑名称)
>;>;对于我的SBU名称中的SBU名称:
>;>mof=mofgen.make(SBU名称=SBU名称)

mof=mofgen.make(拓扑学名称="pcu",
>;>sbu名称=["zn_mof5_八面体",("苯_线性",2.0),("乙炔线性",0.5))
>;>gt;mof.write()


这对于与初始超级单元结合使用以在统计上引入缺陷特别有用。

>;>mof=mofgen.make(拓扑学"pcu"、
>;>sbu名称=[(zn"mof5"八面体,2.0)、("缺陷"八面体",0.5),"苯-线性"],
>;>supercell=(3,3,3))
>;
supercell也可以在对齐后生成,携带之前完成的所有操作。

>;>supercell\u 6x6x6=mof.get_supercell(m=2)
>;>超级电池6x6x6.write()


可随时直接引入缺陷和修改:

>;
>;直接获取站点
>;>sbu=mof[7]
>;
>;;将所有氢更改为氟
>;>atoms=sbu.atoms.copy()
>;>symbols=原子。获取"化学"symbols()
>;>>symbols=[s if s!="h"else"f"表示符号中的s]
>>>原子。设置"化学"符号(符号)
>;>通过设置原子回来,
>;>更新mm类型和键合。
>;>sbu。设置"原子(原子=原子,分析=真)
>;>删除另一个sbu。h将限制悬挂位。
>;>del mof[8]
>;>mof.write()

旋转、功能化和翻转方法也可用。

>;

>;>mof.flip(index=8)
>;>mof.functionaize(where=site,fg=nh2)
>;>mof.write()

mmtypes=mof.get_mmtypes()
>;>;bonds=mof.get_mbtypes()
>;>;>;没有虚拟对象
>;>;原子、键、mmtypes=mof.get_matoms(虚拟对象=false)
>;>;视图(原子)

直接将字典映射
sbu传递到特定插槽。

>>;>;>;用于调查拓扑形状和插槽的方法
>;>;topology=mofgen.get\u topology(topology\u name="pcu")
>;>;sbu dict={}
>;>;对于插槽索引,topology.shapes.items()中的插槽形状:
>;>;做些事情来选择sbu
>;…
>;>;sbu dict[插槽索引]="所选的sbu名称"
>;>;>;现在直接传递它
>;>;mof=mofgen.make(topology="pcu",sbu dict=sbu dict)
>;>;mof.write()


sbu_list=mofgen.list_available_sbu(topology_name="pcu")
>;>;topology_list=mofgen.list_available_topologies(sbu_names=["zn_mof5_octahedral","benzen_linear"])

aautografs还知道拓扑等价的位置,并且可以生成多组件框架
只需最少的工作。

>;>sbu dicts=mofgen.list\u available\u frameworks()
>;>sbu dicts中的sbu dict:
>;>;
是原子类型r,它将键顺序和uff原子类型分配给结构:

>>>;来自autorafs.mmanalysis import analyze-mm
>>>;bonds,types=analyze-mm(sbu=mofgen.sbu["zn-mof5-octahedral"])




欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java Selenium测试无符号扩展   Java JDBC DB2“CLI0129E无更多句柄”   java无法使SeleniumWebDriver单击复选框   wordpress Http请求帖子只有在通过Java应用程序发送时才起作用   java在while循环中构建Flux对象   java如何使用EL从地图中检索所有值   java在ImagePanel上绘制形状   java为同一服务器上的多个应用程序提供相同的JMX Mbean类   java如何基于s显示文本字段:选择struts 2   单个Java变量可以接受原语或对象数组吗?   java如何在文件中找到最大字节?   java Springboot可执行文件JAR错误:由于缺少EmbeddedServletContainerFactory bean,无法启动EmbeddedWebApplicationContext   JavaSpringJMX级联/联合   eclipse外部的命令行JUnit测试   java设置放大gral plot会导致空plot   java Android小部件   java如何在不同片段中更改具有不同样式的动作栏标题?