3Dmol.js
3Dmol.js 是由匹兹堡大学的David Koes组创建的JavaScript库。由于它是生物信息学的研究小组,因此该库将专门设计用于绘制蛋白质的三维结构,但也可用于绘制小分子。
py3Dmol
py3Dmol将是在Jupyter上运行3Dmol.js的小部件。并非所有功能都可以使用,但是许多API是通用的,因此阅读3Dmol.js官方网站是学习的最佳方法。
py3Dmol的一个特性是,一旦分子被加载,即使IPython内核未运行,也可以绘制分子。因此,即使您与其他人共享一个笔记本作为ipynb文件,也可以在另一侧移动该结构。
py3Dmol的安装
pip install py3Dmol
如果要与JupyterLab一起使用,则需要安装扩展程序。
jupyter labextension install jupyterlab_3dmol
py3Dmol示例
import py3Dmol p = py3Dmol.view(query='mmtf:1ycr') p.setStyle({'cartoon': {'color':'spectrum'}})
benz=''' RDKit 3D 6 6 0 0 0 0 0 0 0 0999 V2000 -0.9517 0.7811 -0.6622 C 0 0 0 0 0 0 0 0 0 0 0 0 0.2847 1.3329 -0.3121 C 0 0 0 0 0 0 0 0 0 0 0 0 1.2365 0.5518 0.3512 C 0 0 0 0 0 0 0 0 0 0 0 0 0.9517 -0.7811 0.6644 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.2847 -1.3329 0.3144 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.2365 -0.5518 -0.3489 C 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 0 2 3 1 0 3 4 2 0 4 5 1 0 5 6 2 0 6 1 1 0 M END $$$$''' view = py3Dmol.view() view.addModel(benz,'sdf') view.setStyle({'stick':{}}) view.setStyle({'model':0},{'stick':{'colorscheme':'cyanCarbon'}}) view.zoomTo()
view = py3Dmol.view(query='pdb:1dc9',linked=False,viewergrid=(2,2)) view.setViewStyle({'style':'outline','color':'black','width':0.1}) view.setStyle({'cartoon':{'arrows':True, 'tubes':True, 'style':'oval', 'color':'white'}},viewer=(0,1)) view.setStyle({'stick':{'colorscheme':'greenCarbon'}},viewer=(1,0)) view.setStyle({'cartoon':{'color':'spectrum'}},viewer=(1,1)) view.removeAllModels(viewer=(0,0)) view.addModel(benz,'sdf',viewer=(0,0)) view.setStyle({'stick':{}},viewer=(0,0)) view.zoomTo(viewer=(0,0)) view.render()
view = py3Dmol.view(query='pdb:1ycr') chA = {'chain':'A'} chB = {'chain':'B'} view.setStyle(chA,{'cartoon': {'color':'spectrum'}}) view.addSurface(py3Dmol.VDW,{'opacity':0.7,'color':'white'}, chA) view.setStyle(chB,{'stick':{}}) view.show()