前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python每日一谈|No.21.实例.1-PyMol.2

Python每日一谈|No.21.实例.1-PyMol.2

作者头像
DrugScience
发布于 2021-03-22 06:51:42
发布于 2021-03-22 06:51:42
2.9K10
代码可运行
举报
文章被收录于专栏:DrugScienceDrugScience
运行总次数:0
代码可运行

我可以把cmd的指令遍历一次,这样就不需要愁拖稿了hhh

我们来看下蛋白质的中的结构比较

在结构比较中,你可以很方便的使用align对两个object进行比较

这里的object你可以简单的理解为蛋白

1.你可以很方便的pymol自带的工具对两个或者多个蛋白进行align

步骤如下,3nss-->Action-->align-->to molecule-->5nwe

2. 当align不能满足的时候,你也可以使用pymol的插件alignment选择一个比对方式,来进行比较

这里我们先来看下比较方式的不同定义:

align:首先进行序列对齐,然后进行结构叠加,随后循环几个周期来进行优化,以便拒绝掉在拟合期间发现的异常值。在序列相似度较高的蛋白中align效果会比较好(序列>30%),如果序列相似度比较低的话,super或者cealign会比较好。

super:对齐选择的结构,他执行的是基于结构的动态规划对齐(不依赖于序列),随后进行循环优化来提高拟合度,对于低序列相似性的蛋白来说,super比align更为鲁棒。

cealign:使用CE算法来对齐两个蛋白。对于几乎没有序列相似性的蛋白质(twilight zone),它是非常鲁棒的。对于结构比较相似的蛋白,请使用super首选命令,对于序列比较相似的蛋白,则align为首选命令,因为这些命令比cealign快得多

fit:将第一选择中的模型叠加到第二个模型中,在两个选择中,只要匹配的院子才会被用于fit

晕了的话我们就来看看例子

借用我最近看的算法图解的书来说,我们都是视觉型学习者

align:

官方给的例子是1oky, 1t46

在pymol进行align比较,rmsd = 1.306

我们来看看他的序列相似度

虽然,我有时候并不喜欢做图,但是,我们可以比较容易的从图中获得其序列相对而言比较保守的信息

然后我们在看看看super,官方给的案例是

1F9J,1YX5,rmsd = 0.717

两者的序列相似度,部分链相似

我使用了align方法,对齐比较了一下,rmsd = 13.697

然后,我们来看cealign,官方给的案例:1c0mB,1bco,rmsd = 4.958

序列相似度

最后,我们看来看下fit

所用的比较部分为1a00的a链和c链,rmsd =0.564,当然这个需要的对比条件比较严格,

object的id必须要严格保持一致,比如segi, chain,如果不一致那么需要手动整

到这里,基本上和python没什么用

但是,强制有用

举个例子,假设,我有10个蛋白需要比较,计算rmsd

此处,以aligh为例

蛋白为:6BHT,4WYM,6OBH,6ECN,5HGL,2PWM,2PWO,6ECO,6OMT,3J3Y

开始

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 启动pymol
In [1]: import pymol

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".
# 将pdb id号存储为list
In [2]: pdb_list = ['6BHT','4WYM','6OBH','6ECN','5HGL','2PWM','2PWO','6ECO','6OM
   ...: T','3J3Y']
# 获取蛋白
In [5]: for  i in pdb_list:
   ...:     pymol.cmd.fetch(i)
   ...:
 PyMOL not running, entering library mode (experimental)
 ExecutiveLoad-Detail: Detected mmCIF
 ExecutiveLoad-Detail: Detected mmCIF
 ExecutiveLoad-Detail: Detected mmCIF
 ExecutiveLoad-Detail: Detected mmCIF
 ExecutiveLoad-Detail: Detected mmCIF
 ExecutiveLoad-Detail: Detected mmCIF
 ExecutiveLoad-Detail: Detected mmCIF
 ExecutiveLoad-Detail: Detected mmCIF
 ExecutiveLoad-Detail: Detected mmCIF
 ExecutiveLoad-Detail: Detected mmCIF
# 查看object名单
In [6]: pymol.cmd.get_object_list()
Out[6]:
['6BHT',
'4WYM',
'6OBH',
'6ECN',
'5HGL',
'2PWM',
'2PWO',
'6ECO',
'6OMT',
'3J3Y']
# 两两比较rmsd
# 构建两两组合表
In [7]: import itertools

In [8]: combinations = list(itertools.combinations(pdb_list, 2))

In [9]: combinations
Out[9]:
[('6BHT', '4WYM'),
 ('6BHT', '6OBH'),
 ('6BHT', '6ECN'),
 ('6BHT', '5HGL'),
 ('6BHT', '2PWM'),
 ('6BHT', '2PWO'),
 ('6BHT', '6ECO'),
 ('6BHT', '6OMT'),
 ('6BHT', '3J3Y'),
 ('4WYM', '6OBH'),
 ('4WYM', '6ECN'),
 ('4WYM', '5HGL'),
 ('4WYM', '2PWM'),
 ('4WYM', '2PWO'),
 ('4WYM', '6ECO'),
 ('4WYM', '6OMT'),
 ('4WYM', '3J3Y'),
 ('6OBH', '6ECN'),
 ('6OBH', '5HGL'),
 ('6OBH', '2PWM'),
 ('6OBH', '2PWO'),
 ('6OBH', '6ECO'),
 ('6OBH', '6OMT'),
 ('6OBH', '3J3Y'),
 ('6ECN', '5HGL'),
 ('6ECN', '2PWM'),
 ('6ECN', '2PWO'),
 ('6ECN', '6ECO'),
 ('6ECN', '6OMT'),
 ('6ECN', '3J3Y'),
 ('5HGL', '2PWM'),
 ('5HGL', '2PWO'),
 ('5HGL', '6ECO'),
 ('5HGL', '6OMT'),
 ('5HGL', '3J3Y'),
 ('2PWM', '2PWO'),
 ('2PWM', '6ECO'),
 ('2PWM', '6OMT'),
 ('2PWM', '3J3Y'),
 ('2PWO', '6ECO'),
 ('2PWO', '6OMT'),
 ('2PWO', '3J3Y'),
 ('6ECO', '6OMT'),
 ('6ECO', '3J3Y'),
 ('6OMT', '3J3Y')]
# 使用align进行比较,然后计算一下时间
In [7]: import time
   ...: a = time.time()
   ...: print(pymol.cmd.align(combinations[0][0],combinations[0][1]))
   ...: b = time.time()
   ...: b - a
(0.797596275806427, 17935, 5, 1.2639384269714355, 19167, 14602.0, 2772)
Out[7]: 3.0302011966705322

输出的7个值为

This returns a list with 7 items:

1.RMSD after refinement

2.Number of aligned atoms after refinement

3.Number of refinement cycles

4.RMSD before refinement

5.Number of aligned atoms before refinement

6.Raw alignment score

7.Number of residues aligned

简而言之,选择第一个就够用


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

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

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

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

评论
登录后参与评论
1 条评论
热度
最新
我想问下,expect+scp 经过堡垒机的话,应该会让选后端主机的地址选项啥的,但这时不会报错么?
我想问下,expect+scp 经过堡垒机的话,应该会让选后端主机的地址选项啥的,但这时不会报错么?
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
expect java,Expect 使用详解「建议收藏」
expect是Unix系统中用来进行自动化控制和测试的软件工具,由Don Libes制作,作为Tcl脚本语言的一个扩展,应用在交互式软件中如telnet,ftp,Passwd,fsck,rlogin,tip,ssh等等。该工具利用Unix伪终端包装其子进程,允许任意程序通过终端接入进行自动化控制;也可利用Tk工具,将交互程序包装在X11的图形用户界面中。
全栈程序员站长
2022/11/15
3.1K0
用expect脚本实现Xcode对越狱设备的动态库注入
如果我们想远程登录或者控制一台机器,可以在被操控的设备上安装ssh服务。无论是本地设备使用命令行还是可视化工具都需要预先登录到远程设备中,登录过程需要输入用户名和密码。我们还可以使用scp命令来实现本地设备和远程设备之间的文件拷贝。很多操作系统比如Linux、macOS都内置了ssh服务和客户端相关的功能。要想具体了解ssh可以参考下面几个非常有用的链接:
欧阳大哥2013
2019/05/31
1.1K0
linux 定时传送文件 scp脚本实现自动输密码并传送
expect是在tcl的基础上发展起来的,所以在安装expect之前务必要先安装tcl
悟空宇
2024/03/11
1K0
linux 定时传送文件 scp脚本实现自动输密码并传送
shell expect权威指南和实战
我们通过Shell可以实现简单的控制流功能,如:循环、判断等。但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能。而expect就使用来实现这种功能的工具。
sunsky
2020/08/20
2.4K0
网络安全设备分类清单
主要介绍当前市面企业中常用的安全设备进行分类,因为个人的接触主要以深信服,天融信,绿盟产品进行分类对比;
全栈工程师修炼指南
2022/09/28
7.7K0
网络安全设备分类清单
第五章·SSH远程管理服务实战
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
1.1K0
第五章·SSH远程管理服务实战
Keepalived+expect方式实现Redis主从高可用实际操作
redis高可用有Sentinel、Cluster等多种方式,本文主要介绍keepalived方式。
星哥玩云
2022/08/17
6030
Keepalived+expect方式实现Redis主从高可用实际操作
Keepalived+expect方式实现Redis主从高可用(亲测有用)
redis高可用有Sentinel、Cluster等多种方式,本文主要介绍keepalived方式。
loong576
2019/09/10
1.3K0
Keepalived+expect方式实现Redis主从高可用(亲测有用)
每日shell练习题
(63)需求: –监控节点 一个网站,使用了cdn,全国各地有几十个节点。需要你写一个shell脚本来监控各个节点是否正常。 假如: 监控的url为www.aming.com/index.php 源站ip为88.88.88.88 以及各个节点ip列表文件为/tmp/ip.txt #!/bin/bash url="www.aming.com/index.php" s_ip="88.88.88.88" curl -x $s_ip:80 $url > /tmp/source.html 2>/dev/null fo
老七Linux
2018/05/31
4.8K0
23 个非常实用的 Shell 拿来就用脚本实例
shell脚本是帮助程序员和系统管理员完成费时费力的枯燥工作的利器,是与计算机交互并管理文件和系统操作的有效方式。区区几行代码,就可以让计算机接近按照你的意图行事。
公众号机器学习与AI生成创作
2021/03/29
9900
与终端同居日记:Shell交响曲の终极共舞指南
欢迎来到「文件马戏团」!在这里,zip是那个强迫症整理狂,tar是爱玩俄罗斯套娃的魔法师,而gzip——绝对是偷偷给文件喝减肥茶的健身房教练。
用户11295429
2025/04/25
1080
与终端同居日记:Shell交响曲の终极共舞指南
超实用!18 个开箱即用的 Shell 脚本,拿好了~
假设服务器环境为 lnmp,近期访问经常出现 502 现象,且 502 错误在重启 php-fpm 服务后消失,因此需要编写监控脚本,一旦出现 502,则自动重启 php-fpm 服务。
PHP开发工程师
2021/05/10
6830
超实用!18 个开箱即用的 Shell 脚本,拿好了~
超牛逼!100 个开箱即用的 Shell 脚本,拿好了~
shell脚本是帮助程序员和系统管理员完成费时费力的枯燥工作的利器,是与计算机交互并管理文件和系统操作的有效方式。区区几行代码,就可以让计算机接近按照你的意图行事。
民工哥
2021/05/11
1.6K0
Go进阶训练营 – 微服务概览与治理三:gRPC & 服务发现
消费者可以直接感知提供者的状态,保障消费者和注册中心网络不稳定的情况下,也能及时将异常服务提供者从本地负载均衡池中移除。同理,提供者正常运行后,也能被消费者感知,重新加入负载均衡池。
Yuyy
2022/09/21
1.9K0
Go进阶训练营 – 微服务概览与治理三:gRPC & 服务发现
记一次蚂蚁金服的面试经历
2015在实习的时候,当时一个一起实习的朋友在2019年3月份的时候突然在微信上找我,问我要不要面试下蚂蚁金服。问了下相关信息才知道他在2018年11月的时候进到蚂蚁金服,现在招人就想到了我,问我要不要试一下。
纯洁的微笑
2019/05/06
1.4K0
记一次蚂蚁金服的面试经历
FTP远程文件传输服务安装与配置
描述: FTP只通过TCP连接,没有用于FTP的UDP组件.FTP不同于其他服务的是它使用了两个端口, 一个数据端口和一个命令端口(或称为控制端口)。通常21端口是命令端口,20端口是数据端口。当混入主动(Active)/被动模式(Passive)的概念时,数据端口就有可能不是20了。
全栈工程师修炼指南
2022/09/29
2.1K0
FTP远程文件传输服务安装与配置
101个shell脚本
emm。。这个脚本是因为tomcat没有自带的能够给service开机启动的脚本,我就琢磨着自己写了一个简单的启动脚本,如下:
端碗吹水
2020/09/23
1.4K0
101个shell脚本
nginx 502错误原因和解决办法总结
一、NGINX 502错误排查 NGINX 502 Bad Gateway错误是FastCGI有问题,造成NGINX 502错误的可能性比较多。将网上找到的一些和502 Bad Gateway错误有关的问题和排查方法列一下,先从FastCGI配置入手: 1.FastCGI进程是否已经启动 2.FastCGI worker进程数是否不够 运行 netstat -anpo | grep “php-cgi” | wc -l 判断是否接近FastCGI进程,接近配置文件中设置的数值,表明worker进程数设置太少 3.FastCGI执行时间过长 根据实际情况调高以下参数值 fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; 4.FastCGI Buffer不够 nginx和apache一样,有前端缓冲限制,可以调整缓冲参数 fastcgi_buffer_size 32k; fastcgi_buffers 8 32k; 5.Proxy Buffer不够 如果你用了Proxying,调整 proxy_buffer_size 16k; proxy_buffers 4 16k; 参见:http://www.server110.com 6.https转发配置错误 正确的配置方法 server_name www.mydomain.com; location /myproj/repos { set $fixed_destination $http_destination; if ( $http_destination ~* ^https(.*)$ ) { set $fixed_destination http$1; } proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Destination $fixed_destination; proxy_pass http://subversion_hosts; } 当然,还要看你后端用的是哪种类型的FastCGI,我用过的有php-fpm,流量约为单台机器40万PV(动态页面), 现在基本上没有碰到502。
后端技术探索
2018/08/09
6K0
Kubernetes容器集群管理环境 - 完整部署(上篇)
Kubernetes(通常称为"K8S")是Google开源的容器集群管理系统。其设计目标是在主机集群之间提供一个能够自动化部署、可拓展、应用容器可运营的平台。Kubernetes通常结合docker容器工具工作,并且整合多个运行着docker容器的主机集群,Kubernetes不仅仅支持Docker,还支持Rocket,这是另一种容器技术。Kubernetes是一个用于容器集群的自动化部署、扩容以及运维的开源平台。通过Kubernetes, 可以快速有效地响应用户需求: -> 快速而有预期地部署应用; -> 极速地扩展你的应用; -> 无缝对接新的应用功能; -> 节省资源,优化硬件资源的使用;
洗尽了浮华
2019/07/08
1.3K0
部署上线-部署Django项目
启动命令:python manage.py runserver 0.0.0.0:8000
星哥玩云
2022/09/14
1.6K0
部署上线-部署Django项目
相关推荐
expect java,Expect 使用详解「建议收藏」
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档