前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python每日一谈|No.24.实例.5-PyMol.4-alter-更改

Python每日一谈|No.24.实例.5-PyMol.4-alter-更改

作者头像
DrugScience
发布2021-03-29 11:33:03
5.8K0
发布2021-03-29 11:33:03
举报
文章被收录于专栏:DrugScience

Emm,想错了

竟然忘掉了要抓重点

PyMol中cmd指令很多,常用的写一下就好

我又不是遍历hhh

alter

web:https://pymolwiki.org/index.php?title=Alter&redirect=no

参考:https://kpwulab.com/2020/01/14/pymol-alter-your-molecules/#:~:text=“alter”%20is%20a%20useful%20function%20in%20PyMOL.%20One,to%20redraw%20secondary%20structure%20of%20ubiquitin%20%28PDB%3A%201UBQ%29.

描述

"alter"是一个十分重要的指令

他可以重新对氨基酸编号进行重排,重命名蛋白链,重新定义二级结构。

使用

代码语言:javascript
复制
alter selection, expression

案例

代码语言:javascript
复制
# 更改链名
alter chain A, chain='B'
alter all, resi=str(int(resi)+100)
sort
# 改变原子的vdw半径
alter (name P), vdw=1.90
# 如果dots, spheres, mesh or surface等表现形式被使用,则使用rebuild
rebuild

注意

其可改变的属性有

代码语言:javascript
复制
name, resn, resi, chain, alt, elem, q, b, segi,type (ATOM,HETATM), partial_charge, formal_charge,text_type, numeric_type, ID, vdw
在更改属性之后,需要进行sort

如果dots, spheres, mesh or surface等表现形式被使用,则使用rebuild
则需要rebuild

解释

视觉型学习者这里来

案例蛋白为:1UBQ

1.改变链名

代码语言:javascript
复制
alter (chain A),chain='B' 
sort

更改之后

原始蛋白文件

更改之后蛋白文件

右边的A应该是segid,而左边的A则为chainID

所以,alter真实的改变了链名

2.修改某一条链中的氨基酸的编号,

类似于从氨基酸14-15变为氨基酸114-115

看下图,可以看到氨基酸从0开始

输入指令

代码语言:javascript
复制
alter (chain A),resi=str(int(resi)+100) 
sort

编号从100开始

看下pdb文件

原始文件

更改之后

1.改变二级结构显示

拿到一个蛋白1UBQ

蛋白质链上40-45位氨基酸的主链,以stick形式显示,C为黄色

重新定义40-45的二级结构

命令框中输入指令

代码语言:javascript
复制
alter 40-45/, ss='L' 
rebuild

此时显示为loop

命令框中输入

代码语言:javascript
复制
alter 40-45/, ss='H' 
rebuild

此时显示为螺旋

可以看到 alter只是影响二级结构的显示,并不是真正的改变了主链原子的空间位置

最后,仍然来强制使用python,将HETATM 标记更改了ATOM

代码语言:javascript
复制
In [1]: import pymol

In [2]: Feature has expired.
Feature:       PYMOL_MAIN
Expire date:   01-nov-2020
License path:  /Users/sujiaqi/.pymol/license.lic:
FlexNet Licensing error:-10,32
For further information, refer to the FlexNet Licensing documentation,
available at "www.flexerasoftware.com".

In [3]: pymol.cmd.load('1ubq.cif')
 PyMOL not running, entering library mode (experimental)
 ExecutiveLoad-Detail: Detected mmCIF
    
In [6]: pymol.cmd.get_object_list()
Out[6]: ['1ubq']

In [7]: pymol.cmd.alter('all', 'type="ATOM"')
Out[7]: 660

In [8]: pymol.cmd.sort('all')
In [9]: pymol.cmd.save('1ubq_c.pdb','1ubq')

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FindKey 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档