用于psi4和rdkit的瘦包装库

Psikit的Python项目详细描述


psikit:psi4和rdkit的薄包装库

灵感来源于条目:Calculate HOMO and LUMO with Psi4

从conda安装rdkit和psi4
conda install -c psi4 psi4
conda install -c rdkit rdkit
conda install -c psi4 resp # optional

从github安装psikit

PSIKIT正在开发中。 最新版本的psikit可以从github安装。

pip install git+https://github.com/Mishima-syk/psikit

安装带有PIP的PSIKIT

PSIKIT正在开发中。 但当前版本的psikit可以从pypi或conda安装。

pip install psikit
conda install -c iwatobipen psikit

用法

单点计算

from psikit import Psikit
pk = Psikit()
pk.read_from_smiles("c1ccccc1")
print("SCF Energy: ", pk.energy())
print("HOMO: ", pk.HOMO)
print("LUMO: ", pk.LUMO)
x, y, z, total = pk.dipolemoment
print("SCF Total Dipole Moment: {}".format(total))
# SCF Energy:  -230.712279648862
# HOMO:  -0.32848562009092513
# LUMO:  0.1456515222506689
# SCF Total Dipole Moment: 3.292464934070545e-05

结构优化

pk = Psikit()
pk.read_from_smiles("c1ccccc1")
print("Optimized SCF Energy: ", pk.optimize())
# Optimizer: Optimization complete!
# Optimized SCF Energy:  -230.71352354223438

计算resp charge

# REF http://ambermd.org/tutorials/advanced/tutorial1/files/resp_paper_jacs.pdf
pk = Psikit()
pk.read_from_smiles("CC(=O)O")
pk.optimize()
# Optimizer: Optimization complete!
# -227.82180859253418
pk.calc_resp_charges()
# array([-0.32506898,  0.83672649, -0.61924915, -0.66135715,  0.10450057,
#    0.10478188,  0.10780051,  0.45186584])

for atom in pk.mol.GetAtoms(): 
    print(atom.GetSymbol(), "ESP:{}\tRESP:{}".format(atom.GetProp("EP"), atom.GetProp("RESP"))) 

# C ESP:-0.49662019588648315	RESP:-0.3250689814483399
# C ESP:0.91473263536048643		RESP:0.83672648554100837
# O ESP:-0.63823808477114718	RESP:-0.61924915363703359
# O ESP:-0.6763331997116846		RESP:-0.66135714989354499
# H ESP:0.14625849864628995		RESP:0.10450056830656008
# H ESP:0.14578513969681847		RESP:0.10478187811883517
# H ESP:0.1530843954112609		RESP:0.1078005104750676
# H ESP:0.45133081125445906		RESP:0.45186584253744722

### Compute Mulliken charges and Lowdin charges

pk = Psikit()
pk.read_from_smiles("CC(=O)O")
pk.optimize() # or pk.energy()

pk.calc_mulliken_charges()
# array([-0.42203029,  0.72794785, -0.55419051, -0.59333358,  0.16369722,
#    0.1636994 ,  0.15462075,  0.35958916])

pk.calc_lowdin_charges()
#array([-0.30006577,  0.33900448, -0.35983788, -0.28463832,  0.12439944,
#    0.12810672,  0.11935266,  0.23367866])

Jupyter笔记本

许可证

BSD license下发布的代码。

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

推荐PyPI第三方库


热门话题
java对ServiceListener和ServiceTracker调用提供了哪些排序保证?   java找不到方法格式的符号(DateTimeFormatter)?   mysql有没有一种方法可以将TCPDump输出到一个文件中,并用Java对其进行过滤,每5秒钟用新数据覆盖一次该文件?   java如何最好地配置用户上传支持文件的上传位置   java我在Android上使用OData4j,我无法获取实体   JPA实体关系简单示例中的java获取错误   JAVANoClassDefFoundError:安卓。应用程序。用法安卓中的UsageStatsManager   Eclipse中javaoo代码分析   java MethodVisitor抛出类格式错误   java为什么在从ViewModel调用时,改型排队不起作用?   调试小程序Java控制台:删除跟踪消息大小限制   java复杂安卓活动动画   java如何在使用JDOM2解析XML时忽略注释内容   java通过循环创建文本字段   即使在bufferedwriter关闭后也未发现java文件异常   单链表恢复中的java错误