开源分子对接程序rDock的安装及使用流程
欢迎浏览我的CSND博客! Blockbuater_drug …点击进入 |
---|
前言
本文介绍开源分子对接程序rDock在Linux Ubuntu 22.04系统上的conda安装、编译安装过程及程序使用流程。
一、rDock是什么?
rDock来源
rDock是一个快速、多功能的开源对接程序,可用于将小分子与蛋白质和核酸对接。它专为高通量虚拟筛选(HTVS)活动和结合模式预测研究而设计。
rDock开发历史:
rDock程序由RiboTargets(后来的Vernalis(R&D)Ltd)的软件团队于1998年至2006年开发,命名为RiboDock。
2006年,该软件被授权给约克大学进行维护和分发,改名称为rDock。
2012年,Vernalis和约克大学同意将该程序作为开源软件发布(rDock)。此版本在GNU-LGPL 3.0版下授权,并得到巴塞罗那大学的支持。
2014年开发一度停滞。2019年,RxTx公司开发了一个rDock分支,命名为RxDock。
rDock的主要组件现在包括针对蛋白质和RNA靶标验证的快速分子间评分功能(范德华、极性、去溶剂化)、基于遗传算法的随机搜索引擎、各种外部基于结构的药物发现(SBDD)衍生的约束条件(tethered模板、药效团、noe距离约束)以及基于遗传编程的新型对接后过滤。提供了各种脚本来执行自动验证实验和启动虚拟筛选活动。
rDock主要用C++编写,辅助脚本和程序用C++、perl或python语言编写。完整的rDock软件包需要不到50 MB的硬盘空间,并且它可以在所有Linux计算机上编译(目前仅限Linux系统)。
由于它的设计和实现,它可以安装在计算集群上,并部署在无限数量的CPU上,使HTVS活动可以在几天内进行。
除了主对接程序外,rDock软件包还提供了一套工具和脚本,以方便输入文件的准备以及结果的后处理和分析,极大地拓展了用户需求:
(1)对接准备:
使用已知的活性区域或用户提供的3D坐标定义结合位点。允许受体中-OH和-NH2侧链旋转。添加明确的溶剂分子和结构水分子。提供药效团约束作为指导对接的范围。
(2)输入文件的预处理
定义用于执行tethered docking的常见配体结构(需要OpenBabel python绑定)。排序、过滤或拆分配体文件以利于并行化。查找HTVS协议以优化计算时间。预先计算网格以减少后续计算时间。
(3)结果的后处理和分析
以表格形式总结结果。排序、筛选、合并或拆分结果文件。使用参考结构计算RMSD,考虑内部对称性(需要OpenBabel python绑定)。
(4)结合模式预测
预测配体如何与给定分子结合。蛋白质的ASTEX非冗余测试集和RNA的DOCK和rDock测试集已用于验证rDock并将其与其他程序进行比较。
(5)HTVS
通过利用计算机的能力,在短时间内运行数百万种化合物。易于在相对无限的CPU中并行化,以优化HTVS运行时间。DUD集已用于验证rDock并将其性能与其他参考对接程序进行比较。
二、rDock两种安装方法
自从2022年以来,可以通过conda由bioconda源安装rDock到conda环境(方式一),如果安装不成功,可以尝试编译安装(方式二)。
为了更好的适配系统运行,建议采用后者方法安装。
安装方式一:通过conda安装
建立conda环境,笔者使用的python版本为3.12.2。
conda create -n rdock_env
进入环境,通过conda安装gcc:
conda activate rdock_env
conda install gcc=13 -c conda-forge
#以上不成功,可以尝试:
conda install conda-forge::libgcc-ng
通过conda安装rdock:
conda install acellera::rdock
#以上不成功,可以尝试
conda install -c bioconda rdock
安装方式二:rDock编译安装
1. 安装前准备
rDock是作为源代码提供的,所以必须在使用它之前编译二进制文件。rDock主要是在Linux操作系统上开发的,最近使用的是在openSuSE 11.3下的GNU g++编译器。几乎不需要修改,这些代码可以在其他Linux发行版下编译和运行。
截至2013年11月,它已经在32位和64位系统架构的最新Ubuntu和openSuSE版本中进行了测试,并且可以在不修改任何代码的情况下编译。
安装需要的包
在安装之前,请确保您的计算机上安装了以下软件包。
sudo apt update
sudo apt install gcc g++ make git libcppunit-dev csh build-essential
2. 下载安装包及安装
下载最新版的rDock,安装步骤如下(/path/to/install/rDock):
git clone https://github.com/CBDD/rDock.git
cd rDock
make
make test
make PREFIX=/path/to/install/rDock install
3. 设置环境变量并生效
打开 ~/.bashrc, 添加以下内容:
export RBT_ROOT=/path/to/install/rDock
export PATH=$RBT_ROOT/bin:$PATH
export LD_LIBRARY_PATH=$RBT_ROOT/lib:$LD_LIBRARY_PATH
运行source ~/.bashrc,使环境变量生效。
三、 rDock使用流程
rDock 的基本对接步骤包括3步:定义对接体系、产生对接位点和分子对接。
Step 1. 通过prm文件定义对接体系
以下是ASTEX数据集的.prm文件示例:
RBT_PARAMETER_FILE_V1.00
TITLE 1sj0_ASTEXRECEPTOR_FILE 1sj0_rdock.mol2
RECEPTOR_FLEX 3.0##################################################################
### CAVITY DEFINITION: REFERENCE LIGAND METHOD
##################################################################
SECTION MAPPERSITE_MAPPER RbtLigandSiteMapperREF_MOL 1sj0_ligand.sdRADIUS 6.0SMALL_SPHERE 1.0MIN_VOLUME 100MAX_CAVITIES 1VOL_INCR 0.0GRIDSTEP 0.5
END_SECTION################################################################
# CAVITY DEFINITION: TWO SPHERES METHOD
################################################################
#SECTION MAPPER
# SITE_MAPPER RbtSphereSiteMapper
##HETATM 2815 O HOH 756 37.266 -20.992 -4.910 0.90 24.86 1CSE2940
# CENTER (7.185,8.250,22.649)
# RADIUS 15.0
# SMALL_SPHERE 1.5
# LARGE_SPHERE 6.0
# MAX_CAVITIES 1
#END_SECTION#################################
#CAVITY RESTRAINT PENALTY
#################################
SECTION CAVITYSCORING_FUNCTION RbtCavityGridSFWEIGHT 1.0
END_SECTION#################################
## PHARMACOPHORIC RESTRAINTS
#################################
#SECTION PHARMA
# SCORING_FUNCTION RbtPharmaSF
# WEIGHT 1.0
# CONSTRAINTS_FILE pharma_cdk2.const
# OPTIONAL_FILE optional.const
# NOPT 3
# WRITE_ERRORS TRUE
#END_SECTION
将以上内容保存为.prm文件,受体结构mol 2文件为1sj0_rdock.mol2,结合位点配体文件为1sj0_ligand.sd。
注意事项:
必须对受体“.mol2”文件进行质子化、加电荷。选择什么样的软件来处理取决于用户。作为建议,通常使用MOE或者Maestro。
Step 2. 产生对接位点
以上文件准备就绪,rbcavity命令将可用于生成对接空腔:
rbcavity -W -d -r <PRMFILE>
使用-d参数将生成网格“.grd”文件。该文件可以在pymol中查看:
pymol<RECEPTOR>. mol 2<LIGAND>.sd<GRID>.grd
在命令行输入以下:
isomesh cavity, <GRID>.grd, 0.99
Step 3. 分子对接
定义并生成空腔后,可以使用以下命令直接运行,对每个配体运行50次的rDock:
注意事项:
“.prm”文件、受体、参比配体和“.as”腔体文件必须位于工作目录中或由环境变量“RBT_HOME”指向的文件夹。
rbdock -i <INPUT>.sd -o <OUTPUT> -r <PRMFILE> -p dock.prm -n 50
总结
本文介绍了rDock的两种安装方式及使用流程,为开始使用rDock的朋友提供参考以及快速入门指导。
后续系列文章将结合案例详细介绍rDock使用。
欢迎感兴趣的朋友留言讨论,批评指正。
参考资料
- https://rdock.github.io/
- https://rdock.github.io/documentation/
欢迎浏览我的CSND博客! Blockbuater_drug …点击进入 |
---|
相关文章:

开源分子对接程序rDock的安装及使用流程
欢迎浏览我的CSND博客! Blockbuater_drug …点击进入 前言 本文介绍开源分子对接程序rDock在Linux Ubuntu 22.04系统上的conda安装、编译安装过程及程序使用流程。 一、rDock是什么? rDock来源 rDock是一个快速、多功能的开源对接程序,可用…...

【JavaEE】_tomcat的安装与使用
目录 1. Tomcat简介 2. Tomcat安装 2.1 下载Tomcat并解压缩 2.2 启动Tomcat 2.2.1 Tomcat乱码问题 2.2.2 Tomcat闪退问题 2.3 访问Tomcat欢迎页面 3. 使用Tomcat部署前端代码 3.1 路径匹配 3.2 文件路径访问与网络访问 4. 静态页面与动态页面 5. 基于tomcat的网站后…...
实现一个Windows环境一键启停Oracle的bat脚本
Oracle数据库有许多优点,其中一些最重要的包括: 可靠性和稳定性: Oracle数据库经过长期的发展和测试,被广泛认为是非常可靠和稳定的数据库管理系统。它在大型企业和关键业务环境中被广泛应用,能够处理高负载和大规模的数据。 高性能: Oracle数据库具有优化的查询处理器和…...

大数据-数据可视化-环境部署vue+echarts+显示案例
文章目录 一、安装node.js1 打开火狐浏览器,下载Node.js2 进行解压3 配置环境变量4 配置生效二、安装vue脚手架1 下载vue脚手架,耐心等待。三、创建vue项目并启动1 创建2 启动四、下载echarts.js与axios.js到本地。五、图表显示demo【以下所有操作均在centos上进行】 一、安…...
spark超大数据批量写入redis
利用spark的分布式优势,一次性批量将7000多万的数据写入到redis中。 # 配置spark接口 import os import findspark from pyspark import SparkConf from pyspark.sql import SparkSession os.environ["JAVA_HOME"] "/usr/local/jdk1.8.0_192"…...
C# Socket的使用
C# 中的 System.Net.Sockets.Socket 类是 .NET Framework 提供的核心类,用于处理网络套接字编程。Socket 类是用于网络编程的基础类,它位于 System.Net.Sockets 命名空间中。 使用 Socket 类,可以创建客户端和服务器应用程序来进行基于TCP、…...

Spring Cloud + Vue前后端分离-第17章 生产打包与发布
源代码在GitHub - 629y/course: Spring Cloud Vue前后端分离-在线课程 Spring Cloud Vue前后端分离-第17章 生产打包与发布 17-1 注册中心配置中心Nacos 注册中心 Nacos 快速开始 | Nacos 本节内容:使用nacos作注册中心配置中心,不用eureka Nacos…...
力扣热题100_普通数组_56_合并区间
文章目录 题目链接解题思路解题代码 题目链接 56. 合并区间 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区…...
Springcloud OpenFeign 的实现(二)
Springcloud OpenFeign 的实现(一) 一、Feign request/response 压缩 您可以考虑为您的外部请求启用请求或响应GZIP压缩。您可以通过启用以下属性之一来完成此操作: feign.compression.request.enabledtrue feign.compression.response.en…...

[C++]智能指针用法
一、智能指针存在的意义 智能指针主要解决以下问题: (1)内存泄漏:内存手动释放,使用智能指针可以自动释放。 (2)共享所有权指针的传播和释放,比如多线程使用同一个对象时析构问题…...
六、行列式基本知识
目录 1、行列式的特性 2、行列式的计算方法: 2.1 通过行列式的定义去计算:对角法则。 2. 2 利用行列式的性质将行列式转化为上三角行列式: ①行列式的性质 : 性质一: 性质二: 性质三: 性质四:行列式之间的加法...

中断系统(详解与使用)
讲解 简介 中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。 假设一个人在家看电视,这时候突然门铃响了,这个人此时就要停止看电视去开门,然后关上门后继续回来…...

uniapp开发微信小程序跳转到另一个小程序中
注意:一开始我的云上务工模块是单独的tabbar界面,但是小程序跳转好像不能直接点击tabbar进行,所以我将这里改成了点击首页中的按钮进行跳转 点击这里进行小程序跳转 目录 基础讲解 uniapp小程序跳转的两个方法 调用说明(半屏跳转…...

chatGPT 使用随想
一年前 chatGPT 刚出的时候,我就火速注册试用了。 因为自己就是 AI 行业的,所以想看看国际上最牛的 AI 到底发展到什么程度了. 自从一年前 chatGPT 火出圈之后,国际上的 AI 就一直被 OpenAI 这家公司引领潮流,一直到现在&#x…...

unity Aaimation Rigging使用多个约束导致部分约束失去作用
在应用多个约束时,在Hierarchy的顺序可能会影响最终的效果。例如先应用了Aim Constraint,然后再应用Two Bone Constraint,可能会导致Two Bone Constraint受到Aim Constraint的影响而失效。因此,在使用多个约束时,应该仔…...

什么是ChatGPT
国外有篇文章解释了ChatGPT的开发技术是什么,GPT-3和GPT-4的区别,以及未来的可能性。 截至 2023 年,ChatGPT 等生成式 AI 服务正在全球引起关注,并且正在探索在广泛领域的应用。 您可能想知道 ChatGPT 是使用哪种开发技术制作的&a…...
当我们浪费时我们在浪费什么
世界上的物质和能量不会增加也不会减少,为什么会存在浪费一说呢?是因为人类可以利用和支配的物质和能量是有限的,而且物质和能量的不同组织方式对于人类有着不同的价值。 人类对于世界的事物都有价值评估。例如一个玻璃杯摔碎了,…...

一文搞懂TCP三次握手与四次挥手
什么是TCP协议? TCP(Transmission control protocol)即传输控制协议,是一种面向连接、可靠的数据传输协议,它是为了在不可靠的互联网上提供可靠的端到端字节流而专门设计的一个传输协议。 面向连接:数据传…...

FairyGUI × Cocos Creator 3.7.3 引入报错解决
Cocos Creator 3.7.3引入fgui库 package.json添加这个依赖 "devDependencies": {"fairygui-cc": "latest"}执行npm i 报错解决 使用import引入fairygui-cc,就会有报错和警告,简单处理一下。 鼠标随便点一下也会出警告…...

网络原理 - HTTP/HTTPS(5)
HTTPS HTTPS也是一个应用层协议.在HTTP协议的基础上引入了一个加密层. HTTP协议内容都是按照文本的方式明文传输的. 这就导致了在传输过程中出现了一些被篡改的情况. 臭名昭著的"运营商劫持" 下载一个天天动听. 未被劫持的效果,点击下载按钮,就会弹出天天动听的…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...

前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...

MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...

Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...