用于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第三方库


热门话题
JavaSpringbean已创建但未自动连接   java LibGDX游戏在三星Galaxy Grand Prime上结束   如何在Java中列出字符串句子中所有匹配条件的单词   java在Recyclerview中使用“putExtra”传递数据   java从一个特定的数组中提取特定的JSON对象,以便在Android中通过一个意图放入另一个活动   java需要使用IntelliJ和设置项目SDK的帮助   java springcontextindexer和Swagger 3   java使用indexOf和substring计算数字   java使用xml解析在word文档中查找隐式分页符   在添加<context:componentscan basepackage=“com.young.user”/   java无条件更改JTable单元格的背景色   选择列表中的java调用oracle函数:节点无数据类型   java如何添加缓冲图像作为JFrame的背景,然后在此图像上添加面板?   java Javadoc找不到用scala编写的类   java连接到文件共享程序的IP地址   java将数组元素加载到集合中   Tomcat中的java servlet、过滤器和线程   非Bean对象中的java EJB CDI注入?   java与println和printf的不同舍入