拆分PDBQT文件并将其转换为PDB格式

拆分PDBQT文件转为PDB格式

1. vina_split拆分PDBQT文件

假设你用AutoDock Vina做了对接,那么所有预测的结合构象都被放入一个多构象 PDBQT 文件中,如果需要拆分后进行可视化分析,那么Vina官方自带了vina_split来进行拆分。下面是vina_split的用法简介。

Input: --input arg input to split (PDBQT)

Output (optional) - defaults are chosen based on the input file name:
–ligand arg prefix for ligands
–flex arg prefix for side chains

Information (optional):
–help print this message
–version print program version


1a0q_out.pdbqt进行示例

vina_split --input 1a0q_out.pdbqt

该命令假定vina_split 已经在你的环境变量PATH 中 (ps: vina_splitt和vina在同一个安装路径下面)
1a0q_out.pdbqt为对接后的结果文件
--ligand arg可以设置拆分后文件的文件头,不加该选项则默认的文件头为输入文件的文件名

最终将会获得如下拆分后的文件
在这里插入图片描述

2. shell脚本自拆分

自己手动拆分也很简单,按照ENDMDL为分隔,将大的1a0q_out.pdbqt文件拆分成每个构象的小文件。只需在shell中一行搞定。

start=1;for i in `cat 1a0q_out.pdbqt|grep -n "ENDMDL"|awk -F : '{print $1}'`;do end=$i;sed -n ${start},${end}p 1a0q_out.pdbqt >out_${i}.pdbqt;start=`expr ${end} + 1`;done

最终将会获得如下拆分后的文件
在这里插入图片描述

3. PDBQT格式转换为PDB格式

PDBQT格式的可视化依赖于AutoDockTools的PMV(Python Molecule Viewer)图形化界面。但大部分情况下,我们更喜欢用PyMOL来进行结构可视化分析,而PyMOL不能支持PDBQT格式,因此需要将PDBQT格式转换为更普遍的PDB格式。可以通过万能的格式转换工具Open Babel将PDBQT格式转换为PDB格式(Open Babel的安装可参考官方文档:Install Open Babel)。

3.1 单个的格式转换

babel -ipdbqt out_105.pdbqt -opdb out_105.pdb

3.2 批量格式转换(bash)

for i in `ls out_*.pdbqt`;do j=`basename $i .pdbqt`;babel -ipdbqt $i -opdb ${j}.pdb;done

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/56549.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

恒盛策略:15亿成立地产公司?华为紧急回应!10倍大牛股闪崩

今天上午A股商场和港股整体低位震动,但走势整体平稳,动摇不大。 A股商场方面,TMT赛道股走强,近期火热的券商板块则现分解,昨夜发布半年报的公司今天上午股价也分解明显。 港股商场,大都股票动摇不大&#…

python中数据可视化

1.掷一个D6和一个D10 50000次的结果 die.py from random import randintclass Die:def __init__(self, num_sides6):self.num_sides num_sidesdef roll(self):return randint(1, self.num_sides) die_visual.py from die import Die from plotly.graph_objs import Bar, L…

Java课题笔记~6个重要注解参数含义

1、[掌握]Before 前置通知-方法有 JoinPoint 参数 在目标方法执行之前执行。被注解为前置通知的方法,可以包含一个 JoinPoint 类型参数。 该类型的对象本身就是切入点表达式。通过该参数,可获取切入点表达式、方法签名、目标对象等。 不光前置通知的方…

C++ STL vector

目录 一.认识vector 二.vector的使用 1.vector的构造函数 2.vector的迭代器 2.1 begin(),end() 2.2 rbegin(),rend() 2.3 迭代器初始化对象 3. vector…

小白到运维工程师自学之路 第六十五集 (docker-compose)

一、概述 Docker Compose 的前身是 Fig,它是一个定义及运行多个 Docker 容器的工具。可以使用YAML文件来配置应用程序的服务。然后,使用单个命令,您可以创建并启动配置中的所有服务。Docker Compose 会通过解析容器间的依赖关系(…

分布式应用:Zookeeper 集群与kafka 集群部署

目录 一、理论 1.Zookeeper 2.部署 Zookeeper 集群 3.消息队列 4.Kafka 5.部署 kafka 集群 6.FilebeatKafkaELK 二、实验 1.Zookeeper 集群部署 2.kafka集群部署 3.FilebeatKafkaELK 三、问题 1.解压文件异常 2.kafka集群建立失败 3.启动 filebeat报错 4.VIM报错…

使用 React Native CLI 创建项目

React Native 安装的先决条件和设置 需要掌握的知识点 掌握 JavaScript 基础知识掌握 React 相关基础知识掌握 TypeScript 相关基础知识 安装软件前需要首先安装Chocolatey。Chocolatey 是一种流行的 Windows 包管理器。 安装 nodejs 和 JDK choco install -y nodejs-lts …

数据互通,版本管理优化图文档与BOM数据

在现代企业的产品开发过程中,图文档和BOM数据是不可或缺的关键要素。图文档记录了产品的设计和工程信息,而BOM数据则明确了产品所需物料的清单和规格。然而,由于数据的复杂性和版本变更的频繁性,图文档与BOM数据之间的协作和管理常…

JDK下载与安装

一、下载JDK安装包 在JDK官网(https://www.oracle.com/java/technologies/downloads/)或其他渠道提前下载好JDK安装包。 二、开始安装JDK 1、进入/opt/software目录(可自定义),将JDK压缩包上传到该目录下: …

yo!这里是STL::vector类简单模拟实现

目录 前言 重要接口模拟实现 默认成员函数 1.构造函数 2.析构函数 3.拷贝构造函数 4.赋值运算符重载 迭代器 简单接口 1.size() 2.capacity() 3.swap() 操作符重载 1.操作符[] 扩容接口 1.reserve() 2.resize() 增删查改接口 1.push_back() 2.pop_back() …

RabbitMQ的安装

RabbitMQ的安装 1、Windows环境下的RabbitMQ安装步骤 使用的版本:otp_win64_23.2 rabbitmq-server-3.8.16 版本说明:https://www.rabbitmq.com/which-erlang.html#compatibility-matrix 1.1 下载并安装erlang RabbitMQ 服务端代码是使用并发式语言…

java,python,c++有什么区别,python java c c++区别

大家好,给大家分享一下java,python,c有什么区别,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 从这四种语言的难度、受欢迎度还有作用以及优点缺点给楼主做一个全面的分析,我们可以从中了解其区别,以及…