开源分子对接程序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协议内容都是按照文本的方式明文传输的. 这就导致了在传输过程中出现了一些被篡改的情况. 臭名昭著的"运营商劫持" 下载一个天天动听. 未被劫持的效果,点击下载按钮,就会弹出天天动听的…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
