转载于 https://mp.weixin.qq.com/s/P62sjqhSTxmWVicrEAk-RQ

为了简化展示过程,我们设计了一个pml脚本 (脚本内有很详细的解释),只需要修改脚本里面受体和配体的名字,然后在PyMOL的命令行界面输入PyMOL> run display.pml即可获得展示结果。当然这个脚本也可以使用程序generatePmlForHbond.py生成。

 ############################################################
###All one needs to do is replacing:                        ##
###  * Protein structure file: E:\docking\1hsg_prot.pdb     ##
###  * Protein name: 1hsg                                   ##
###  * Docking result file: E:\docking\indinavir.pdbqt      ##
###  * Docking result name (normally ligand name): indinavir##############################################################
# The following 4 lines: # 1. load protein structure and rename it# 2. add hydrogen (`h_add` uses a primitive algorithm to add hydrogens onto a molecule.)# 3. hide protein display# 4. show cartoon display for protein
load E:\yunpan\docking\1hsg_prot.pdb, 1hsg
h_add 1hsg
hide everything, 1hsg
show cartoon, 1hsg
cmd.spectrum("count", selection="1hsg", byres=1)# The following 6 lines: # 1. load ligand structure and rename it# 2. add hydrogen# 3. hide ligand display# 4. show ligand in sticks mode# 5. Set width of stick to 0.15# 6. Set atom color: C-white;N-blue;O-red
load E:\yunpan\docking\indinavir.pdbqt, indinavir
h_add indinavir
hide everything, indinavir
show sticks, indinavir
set stick_radius, 0.15
util.cbaw indinavir# The following 1 line:# 1. Select metal ions
select metals, symbol mg+ca+fe+zn# The following 2 lines:# 1. Set hydrogen donator# 2. Set hydrogen accrptor # `select` creates a named selection from an atom selection. # `select name, (selection)`
select h_donator,  (elem n,o and (neighbor hydro))
select h_acceptor, (elem o or (elem n and not (neighbor hydro)))# The following 4 lines:# 1. Create link between ligand_h_acceptor and prot_h_donator  within given distance 3.2# 2. Create link between ligand_h_donator  and prot_h_acceptor within given distance 3.2#    Set filter 3.6 for ideal geometry and filter 3.2 for minimally acceptable geometry# 3. Set red color for ligand_h_acceptor and prot_h_donator # 4. Set blue color for ligand_h_donator  and prot_h_acceptor# `distance` creates a new distance object between two selections. It will display all distances within the cutoff. Distance is also used to make hydrogen bonds like `distance hbonds, all, all, 3.2, mode=2`.# distance [ name [, selection1 [, selection2 [, cutoff [, mode ]]]]]
distance LaccPdon, (indinavir and h_acceptor), (1hsg and h_donator), 3.2
distance LdonPacc, (indinavir and h_donator), (1hsg and h_acceptor), 3.2
color red, LaccPdon
color blue, LdonPacc
#distance Fe_C20, (fep and name C20), (heme and name fe))# The following 6 lines:# 1. Select non-hydro atoms of ligands# 2. Select protein atoms within 5A of selected atoms in last step# 3. Label alpha-c(ca) of selected residues with residue name and residue position# 4. Set label color back# 5. Set background white# 6. Hidden hydrogenes
select sele, indinavir & not hydro
select sele, byres (sele expand 5) & 1hsg
one_letter ={'VAL':'V', 'ILE':'I', 'LEU':'L', 'GLU':'E', 'GLN':'Q', \
'ASP':'D', 'ASN':'N', 'HIS':'H', 'TRP':'W', 'PHE':'F', 'TYR':'Y',    \
'ARG':'R', 'LYS':'K', 'SER':'S', 'THR':'T', 'MET':'M', 'ALA':'A',    \
'GLY':'G', 'PRO':'P', 'CYS':'C'}
label name ca & sele, "%s-%s" % (one_letter[resn],resi)
bg white
set label_color, black
hide (hydro)# The follwing 5 lines# 1. Comment out this line# 2. Create an object `surrounding_res` to represent selected protein atoms#    `create`: creates a new molecule object from a selection. It can also be used to create states in an   existing object. #    `create name, (selection)`# 3. Display created surface# 4. Set color for surrounding_res# 5. Set transparency for surrounding_res#    Transparency is used to adjust the transparency of Surfaces and Slices.    #    `set transparency, F, selection`
#show surface, 1hsg
create surrounding_res, sele
show surface, surrounding_res
color grey80, surrounding_res
set transparency, 0.5, surrounding_res

此外还可以使用如下脚本(list_hbonds.py)输出相互作用的原子及其位置。

# Copyright (c) 2010 Robert L. Campbell
from pymol import cmddef list_hb(selection,selection2=None,cutoff=3.2,angle=55,mode=1,hb_list_name='hbonds'):"""USAGElist_hb selection, [selection2 (default=None)], [cutoff (default=3.2)],[angle (default=55)], [mode (default=1)],[hb_list_name (default='hbonds')]The script automatically adds a requirement that atoms in theselection (and selection2 if used) must be either of the elements N orO.If mode is set to 0 instead of the default value 1, then no anglecutoff is used, otherwise the angle cutoff is used and defaults to 55degrees.e.g.To get a list of all H-bonds within chain A of an objectlist_hb 1abc & c. a &! r. hoh, cutoff=3.2, hb_list_name=abc-hbondsTo get a list of H-bonds between chain B and everything else:list_hb 1tl9 & c. b, 1tl9 &! c. b"""cutoff=float(cutoff)angle=float(angle)mode=float(mode)# ensure only N and O atoms are in the selectionselection = selection + " & e. n+o"if not selection2:hb = cmd.find_pairs(selection,selection,mode=mode,cutoff=cutoff,angle=angle)else:selection2 = selection2 + " & e. n+o"hb = cmd.find_pairs(selection,selection2,mode=mode,cutoff=cutoff,angle=angle)# sort the list for easier readinghb.sort(lambda x,y:(cmp(x[0][1],y[0][1])))for pairs in hb:cmd.iterate("%s and index %s" % (pairs[0][0],pairs[0][1]), 'print "%1s/%3s`%s/%-4s " % (chain,resn,resi,name),')cmd.iterate("%s and index %s" % (pairs[1][0],pairs[1][1]), 'print "%1s/%3s`%s/%-4s " % (chain,resn,resi,name),')print "%.2f" % cmd.distance(hb_list_name,"%s and index %s" % (pairs[0][0],pairs[0][1]),"%s and index %s" % (pairs[1][0],pairs[1][1]))#cmd.extend("list_hb",list_hb)
#if __name__ == "__main__":
cmd.load("E:/yunpan/docking/1hsg_prot.pdb", "1hsg")
cmd.h_add("(1hsg)")
cmd.load("E:/yunpan/docking/indinavir.pdbqt","indinavir")
cmd.h_add("(indinavir)")h_donator  = "elem n,o & (neighbor hydro)"
h_acceptor = "elem o | (elem n & !(neighbor hydro))"lacc = "indinavir & (elem o | (elem n & !(neighbor hydro)))"
ldon = "indinavir & (elem n,o & (neighbor hydro))"
pacc = "1hsg & (elem o | (elem n & !(neighbor hydro)))"
pdon = "1hsg & (elem n,o & (neighbor hydro))"list_hb(ldon, pacc, hb_list_name="l2p_hbonds")
list_hb(lacc, pdon, hb_list_name="p2l_hbonds")

输出结果如下:

PyMOL>run E:/docking/list_hbonds.py
B/MK1`902/N4    B/GLY`27/O     3.03
B/MK1`902/O4    B/GLY`27/O     3.16
B/MK1`902/O2    A/ASP`25/OD1   2.77
B/MK1`902/O2    B/ASP`25/OD1   2.63

看上去比显示的氢键少了三个,这是因为我们在第二个函数中使用了H-键角度限制,如果在调用时给定参数list_hb(mode=0)则会获得一致结果。

H-bond结果展示。第一张图为运行display.pml后的结果,蓝色虚线为氢键;第二张图为运行list_hbonds.py后的结果, 黄色虚线为氢键(覆盖了之前的蓝色)。可以通过点选LaccPdonLdonPaccl2p_hbonds显示不同的氢键。

展示疏水表面

# color_h
# -------# PyMOL command to color protein molecules according to the Eisenberg hydrophobicity scale#
# Source: http://us.expasy.org/tools/pscale/Hphob.Eisenberg.html
# Amino acid scale: Normalized consensus hydrophobicity scale
# Author(s): Eisenberg D., Schwarz E., Komarony M., Wall R.
# Reference: J. Mol. Biol. 179:125-142 (1984)
#
# Amino acid scale values:
#
# Ala:  0.620
# Arg: -2.530
# Asn: -0.780
# Asp: -0.900
# Cys:  0.290
# Gln: -0.850
# Glu: -0.740
# Gly:  0.480
# His: -0.400
# Ile:  1.380
# Leu:  1.060
# Lys: -1.500
# Met:  0.640
# Phe:  1.190
# Pro:  0.120
# Ser: -0.180
# Thr: -0.050
# Trp:  0.810
# Tyr:  0.260
# Val:  1.080
#
# Usage:
# color_h (selection)
#
from pymol import cmddef color_h(selection='all'):s = str(selection)print scmd.set_color('color_ile',[0.996,0.062,0.062])cmd.set_color('color_phe',[0.996,0.109,0.109])cmd.set_color('color_val',[0.992,0.156,0.156])cmd.set_color('color_leu',[0.992,0.207,0.207])cmd.set_color('color_trp',[0.992,0.254,0.254])cmd.set_color('color_met',[0.988,0.301,0.301])cmd.set_color('color_ala',[0.988,0.348,0.348])cmd.set_color('color_gly',[0.984,0.394,0.394])cmd.set_color('color_cys',[0.984,0.445,0.445])cmd.set_color('color_tyr',[0.984,0.492,0.492])cmd.set_color('color_pro',[0.980,0.539,0.539])cmd.set_color('color_thr',[0.980,0.586,0.586])cmd.set_color('color_ser',[0.980,0.637,0.637])cmd.set_color('color_his',[0.977,0.684,0.684])cmd.set_color('color_glu',[0.977,0.730,0.730])cmd.set_color('color_asn',[0.973,0.777,0.777])cmd.set_color('color_gln',[0.973,0.824,0.824])cmd.set_color('color_asp',[0.973,0.875,0.875])cmd.set_color('color_lys',[0.899,0.922,0.922])cmd.set_color('color_arg',[0.899,0.969,0.969])cmd.color("color_ile","("+s+" and resn ile)")cmd.color("color_phe","("+s+" and resn phe)")cmd.color("color_val","("+s+" and resn val)")cmd.color("color_leu","("+s+" and resn leu)")cmd.color("color_trp","("+s+" and resn trp)")cmd.color("color_met","("+s+" and resn met)")cmd.color("color_ala","("+s+" and resn ala)")cmd.color("color_gly","("+s+" and resn gly)")cmd.color("color_cys","("+s+" and resn cys)")cmd.color("color_tyr","("+s+" and resn tyr)")cmd.color("color_pro","("+s+" and resn pro)")cmd.color("color_thr","("+s+" and resn thr)")cmd.color("color_ser","("+s+" and resn ser)")cmd.color("color_his","("+s+" and resn his)")cmd.color("color_glu","("+s+" and resn glu)")cmd.color("color_asn","("+s+" and resn asn)")cmd.color("color_gln","("+s+" and resn gln)")cmd.color("color_asp","("+s+" and resn asp)")cmd.color("color_lys","("+s+" and resn lys)")cmd.color("color_arg","("+s+" and resn arg)")
cmd.extend('color_h',color_h)def color_h2(selection='all'):s = str(selection)print scmd.set_color("color_ile2",[0.938,1,0.938])cmd.set_color("color_phe2",[0.891,1,0.891])cmd.set_color("color_val2",[0.844,1,0.844])cmd.set_color("color_leu2",[0.793,1,0.793])cmd.set_color("color_trp2",[0.746,1,0.746])cmd.set_color("color_met2",[0.699,1,0.699])cmd.set_color("color_ala2",[0.652,1,0.652])cmd.set_color("color_gly2",[0.606,1,0.606])cmd.set_color("color_cys2",[0.555,1,0.555])cmd.set_color("color_tyr2",[0.508,1,0.508])cmd.set_color("color_pro2",[0.461,1,0.461])cmd.set_color("color_thr2",[0.414,1,0.414])cmd.set_color("color_ser2",[0.363,1,0.363])cmd.set_color("color_his2",[0.316,1,0.316])cmd.set_color("color_glu2",[0.27,1,0.27])cmd.set_color("color_asn2",[0.223,1,0.223])cmd.set_color("color_gln2",[0.176,1,0.176])cmd.set_color("color_asp2",[0.125,1,0.125])cmd.set_color("color_lys2",[0.078,1,0.078])cmd.set_color("color_arg2",[0.031,1,0.031])cmd.color("color_ile2","("+s+" and resn ile)")cmd.color("color_phe2","("+s+" and resn phe)")cmd.color("color_val2","("+s+" and resn val)")cmd.color("color_leu2","("+s+" and resn leu)")cmd.color("color_trp2","("+s+" and resn trp)")cmd.color("color_met2","("+s+" and resn met)")cmd.color("color_ala2","("+s+" and resn ala)")cmd.color("color_gly2","("+s+" and resn gly)")cmd.color("color_cys2","("+s+" and resn cys)")cmd.color("color_tyr2","("+s+" and resn tyr)")cmd.color("color_pro2","("+s+" and resn pro)")cmd.color("color_thr2","("+s+" and resn thr)")cmd.color("color_ser2","("+s+" and resn ser)")cmd.color("color_his2","("+s+" and resn his)")cmd.color("color_glu2","("+s+" and resn glu)")cmd.color("color_asn2","("+s+" and resn asn)")cmd.color("color_gln2","("+s+" and resn gln)")cmd.color("color_asp2","("+s+" and resn asp)")cmd.color("color_lys2","("+s+" and resn lys)")cmd.color("color_arg2","("+s+" and resn arg)")
cmd.extend('color_h2',color_h2)

将上面的脚本存储为color_h.py,在PyMOL界面运行File-Run-color_h.py,在命令行输入>PyMOl color_hShow surface

转载于:https://www.cnblogs.com/xiaojikuaipao/p/7256890.html

用PyMOL展示配体和受体相互作用的原子和氢键相关推荐

  1. 利用负样本空间改进细胞因子-受体相互作用预测

    文章目录 前言 一.Background 二.Results and discussion 三.Conclusions 四.Methods 前言 背景:细胞因子通过与靶细胞质膜上的特定受体结合而起作用 ...

  2. PyMol展示球棍模型及双键

    PyMol展示球棍模型及双键 在小分子作图中常常用到PyMol,但PyMol的小分子展示通常为Sticks,将其展示为Ball-and-Sticks球棍模型则需要修改PyMol中部分默认参数,具体步骤 ...

  3. Pymol 移动配体操作

    Pymol 移动配体操作 第一步 蛋白和配体分离 第二步 将蛋白设置为保护对象, 分子为非保护对象 第三步 点击窗口可视化编辑模式转变为编辑模式 第四步 配体移动, 按住 shift + 按住滚轮来拖 ...

  4. 电气工程类期刊最新数据+2019年电气工程领域的中文期刊(EI期刊+中文核期刊)

    能源电力领域最有用的资讯 <中国学术期刊影响因子年报>(2021版)于近日公布,<中国电机工程学报>综合排名持续保持学科第一.同时发布各类期刊影响因子.总被引频次以及被引期刊数 ...

  5. Linux中autoduck批量对接,利用AutoDOCK进行分子对接(一)

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 分子对接(Moleculer-docking)理论 分子对接就是两个或多个分子之间通过几何匹配和能量匹配相互识别找到最佳 ...

  6. 哇!单细胞测序-配体受体互作分析原来可以这么简单又高大上!

    NGS系列文章包括NGS基础.转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这).ChIP-seq分析 (ChIP-seq基本分析流程).单细胞测序分析 (重磅综述:三万字长文读 ...

  7. 如何在云计算平台上完成分子对接

    分子对接的基本原理就是把配体分子放在受体活性位点的位置,然后按照几何互补和能量互补的原则来实时评价配体与受体相互作用的优劣,最终找到这两个分子之间最佳的结合模式. 分子对接分为刚性.半柔性和柔性对接. ...

  8. 山茶花粉中咖啡因酪氨酸酶抑制剂活性的研究

    摘要:酪氨酸酶抑制剂对黑色素生成的具有调节的作用,因此在化妆品,医疗和食品行业中很重要.使用高速逆流色谱法和高效液相色谱法从山茶花粉中分离纯化酪氨酸酶抑制剂,并通过NMR和质谱鉴定为咖啡因.在非竞争性 ...

  9. 新型4-(3H)-喹唑啉酮类作为VEGFR-2抑制剂对肝癌细胞具有潜在活性

    新型4-(3H)-喹唑啉酮类作为VEGFR-2抑制剂对肝癌细胞具有潜在活性 Ref:Bioorganic Chemistry. Accepted 3 December 2020, IF=5.275 链 ...

最新文章

  1. PK朱广权的手语数字人,现在要到医院银行上岗了
  2. easypoi导出数值型_SpringBoot使用EasyPoi进行数据导入导出Excel(一)
  3. 基础理论:集合的Hausdorff距离
  4. .NET分层登陆——机房收费系统再总结
  5. (论坛答疑点滴)DataGrid的EditCommandColumn如何使用图片作为按钮?
  6. 给定圆的半径r,求圆的面积。
  7. 中国速度之二神山建设(4):全能运维,召之即来,来之即战 | IDCF DevOps案例研究...
  8. html5 地图效果,html5 echarts图表插件炫光的分布地图动画特效
  9. 面向业务的立体化高可用架构设计
  10. 360推出国内首个工业互联网安全态势感知系统
  11. 计算机组成原理mw,计算机组成原理 存储器
  12. 第一部分 第二章 答案合集(part 1)1006-1023
  13. 西威变频器 服务器显示,西威变频器故障查询及操作方法
  14. php网站 视频马赛克,如何给视频加马赛克 菜鸟也能学会的视频加马赛克解决方案...
  15. android源码学习-Handler机制及其六个核心点
  16. Mac上好用的视频播放器有哪些?
  17. python高级函数_python高级之函数
  18. Html给网页加icon图标
  19. java中的枚举与注解
  20. stc15系列c语言pwm编程,STC单片机C语言程序设计 第25章 STC单片机增强型PWM原理及实现.docx...

热门文章

  1. Linux高级运维: Session与Cookie 、 部署memcached和Session共享(OPERATION----DAY36)
  2. 硬盘IDE、SATA、AHCI模式的区别
  3. Apriori算法作电影推荐
  4. 路由交换技术实战七 FR 网络中配置 OSPF( 完成版 )
  5. 判决文书网爬虫获取vjkl5失败原因
  6. 突变!微软将结束对Office Android应用的支持
  7. arx cloneSameOwnerObjects
  8. 【Django | 开发】面试招聘网站(增加csv,excel导出企业域账号集成日志管理功能)
  9. LeetCode Daily challenge - K Closest Points to Origin
  10. IEEE ICCSE 2022 Call for Papers (征文公告)