摘要:本文描述了如何用Pymol的CGO绘制球与箭头来表示配体-受体相互作用特征。
一. 问题描述
如何用不同颜色的球、箭头来展示配体-受体相互作用特征:正电中心、负电中心、疏水、氢键相互作用(并用箭头表示氢键方向)、以及蛋白原子的排斥体积?
图1. 配体-受体相互作用
分析图1可以发现,相互作用特征用不同颜色的球与箭头表示,那么问题的关键是:如何绘制表示相互作用特征的球与箭头呢?如图2所示。
图2. 配体-相互作用特征的绘制
二. 解决方案
1. 用CGO定义球
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | from pymol.cgo import * from pymol import cmd #Hydrophobic, Golden #注释行,说明这个金黄色的球代表疏水相互作用 spherelist = [ COLOR, 1.0, 0.5, 0.0, #用RGB格式设置球的颜色 SPHERE, 9.148816, 27.9758, 67.40325, 0.5, #设置球的位置(x,y,z)与半径,这个球作为球心使用 ALPHA,0.7, #设置球的透明度 COLOR, 1.0, 0.5, 0.0, #用RGB格式设置球的颜色 SPHERE, 9.148816, 27.9758, 67.40325, 1.5, #设置球的位置(x,y,z)与半径 ] cmd.load_cgo(spherelist, 'Hydro') #这个球是个pymol的对象,起个名字角Hydro |
将上述代码保存为hydro.py,让pymol去运行即可:
1 | run hydro.py |
同样的道理,你可以给自己设计排斥球,比如用灰色的球表示受体所在位置,并命名为Ex:
1 2 3 4 5 6 7 8 9 10 11 | #exclusion, Gray spherelist = [ COLOR, 1.00, 1.000, 1.000, SPHERE, 12.564666, 24.091694, 66.811165, 0.3, ALPHA,0.6, COLOR, 1,1,1, SPHERE, 12.564666, 24.091694, 66.811165, 1.0, ] cmd.load_cgo(spherelist, 'Ex') |
依此类推,用球来表示氢键受体、供体,正电中心,负电中心等。其中的氢键受体与供体因为有方向性,我们需要进一步用箭头表示方向,见下一节箭头的表示。
2. CGO对箭头的表示
Pymol的CGO支持在两个原子间绘制箭头:从一个原子指向另一个原子,并可以定义箭头的大小,与长度等。语法如下:
1 | cgo_arrow [ atom1 [, atom2 [, radius [, gap [, hlength [, hradius [, color [, name ]]]]]]]] |
其中atom 1与atom 2除了可以用pymol的原子表达式外,还可以用x,y,z坐标来表示;此外还可设置箭簇与箭杆的半径与长度、颜色等。具体用方法如下:
- 下载cgo_arrow.py,并运行该脚本
- 按箭头语法键入命令
cgo_arrow.py下载:https://github.com/Pymol-Scripts/Pymol-script-repo/raw/master/cgo_arrow.py
应用实例:
1 2 3 4 | run cgo_arrow.py fetch 1rx1, async=0 preset.pretty("*") cgo_arrow [34.9, 68.4, 19.1], A/164/O3X, gap=1.0 |
结果如图3所示:
图3. 箭头的使用
图4是一个绘制的相互作用练习,包含了:氢键受体、箭头、正电中心、负电中心、疏水中心等相互作用。
图4. 一个包含多种相互作用的练习
三. 参考资料
- Pymol Wiki
- CGO_ARROW的下载与使用
- PYMOL的下载与安装
https://pymolwiki.org/index.php/Cgo_arrow
四. 相关教程
- Ligandscout教程 | 2D图展示配体-受体相互作用
- 推荐微信公众号“沥雨亭”GZT的文章
http://blog.molcalx.com.cn/2017/09/28/ligandscout-2d-interaction.html