首页 > 其他分享 >Rosetta 二:手把手教你用Rosetta的全局对接模块

Rosetta 二:手把手教你用Rosetta的全局对接模块

时间:2024-09-22 18:48:09浏览次数:12  
标签:Rosetta 得分 手把手 教你用 pdb 文件 配体 模型

文章目录

1. 跟着官网下载

在这里插入图片描述
不过我是从github下载的,这也是官网
命令git clone https://github.com/RosettaCommons/demos.git 其实都是一个地址
同时tools也要下载一下git clone https://github.com/RosettaCommons/tools.git
下载后的文件要对应到这篇文章中下载的rosetta的相关文件夹
Rosetta 一:手把手教你用Linux安装Rosetta(全网最简洁)在这里插入图片描述

2. 跟着官网的样例做对接

在这里插入图片描述
在这里插入图片描述

1. 导航到配体文件夹

在这里插入图片描述
在这里插入图片描述

2.准备受体

在这里插入图片描述

2.1 先导航到蛋白受体文件夹

在这里插入图片描述

2.2 下载 3BLP的pdb文件并用clean_pdb.py 脚本预处理蛋白质

下载,可用命令也可去pdb官网

wget https://files.rcsb.org/download/3PBL.pdb

在这里插入图片描述

2.3 把处理好的蛋白放到docking文件夹

在这里插入图片描述

3. 准备配体参数

在这里插入图片描述

3.1 导航到ligand_prep

在这里插入图片描述

3.2 配体文件

在目录中,有一对已经准备好的文件:eticlopride.sdf 和 eticlopride_conformers.sdf

  • eticlopride.sdf:包含在 3PBL 蛋白质复合物中发现的 eticlopride 结构。
  • eticlopride_conformers.sdf:在 Rosetta 之外生成的 eticlopride 构象库。下载的配体 .sdf 文件仅包含在 PDB 中发现的构象,因此我们必须扩展该库以正确采样构象空间。我们还需要添加氢,因为它们在晶体结构中未解析。
  • 这个特定的构象库是使用 Meil​​er 实验室的 BioChemicalLibrary (BCL) 生成的。BCL 是一套用于蛋白质建模、小分子计算和机器学习的工具。如果您有兴趣获得 BCL 的许可,请访问http://www.meilerlab.org/bclcommons或咨询其中一位讲师。其他配体构象生成方法包括 OpenEye 的 MOE 软件、CSD Mercury 软件和 Web 服务器,例如Frog 2.1或DG-AMMOS。生成的库将根据所选方法而有所不同。
  • 生成 .params 文件和与 eticlopride 的 Rosetta 原子类型相关的 PDB 构象。params 文件对于配体对接是必需的,因为 Rosetta 数据库中没有自定义小分子的记录。
  • <path-to-Rosetta>/main/source/scripts/python/public/molfile_to_params.py -h了解有关生成 params 文件的脚本的更多信息
  • $ROSETTA3/scripts/python/public/molfile_to_params.py -n ETQ -p ETQ --conformers-in-one-file ligand_prep/eticlopride_conformers.sdf可能会看到有关残基中原子数量的警告。这没关系,因为 Rosetta 只是告诉您配体的原子数比氨基酸多。ETQ.params 包含 Rosetta 处理配体的必要信息,ETQ.pdb 包含第一个构象,ETQ_conformers.pdb 包含构象库的其余部分。
  • 在 ETQ.params 上使用 tail 命令,您会注意到 PDB_ROTAMERS 属性行,它告诉 Rosetta 在哪里找到构象库。确保此行具有 ETQ_conformers.pdb 作为属性。

在这里插入图片描述

在这里插入图片描述
现在我们有了配体对接所需的文件,让我们把它们复制到 ligand_docking 目录。我的已经在 ligand_docking 目录了,正常情况下小分子配体的这些参数需要自己生成

在这里插入图片描述
现在,我们要在对接目录中做最后的准备。
切换到我们的docking目录
打开我们准备好的受体和配体结构,检查复合物(我是ssh链接,就不检查了)
现在通过连接蛋白质和配体来制作 pdb 文件,并运行此脚本:
现在,运行此脚本,将蛋白质和配体连接起来,制作一个 pdb 文件:

cp protein_prep/3PBL_A.pdb .
cat 3PBL_A.pdb ETQ.pdb > 3PBL_ETQ.pdb

如果没有这些文件,请从答案目录中复制:

cp answers/docking/3PBL_ETQ.pdb .

在这里插入图片描述

提示:"All->Action->preset->lligand sites->cartoon"(全部->操作->预设->配体位点->卡通)将帮助您直观地显示蛋白质/配体界面。在 Pymol 中,"全部 "按钮用单个字母 "A "表示。
    
由于这是一个初级练习,我们将从蛋白质结合位点中的配体开始。在实际应用中,我们可能需要使用[StartFrom mover](https://www.rosettacommons.org/docs/latest/scripting_documentation/RosettaScripts/Movers/movers_pages/StartFromMover)定义一个起点,或者使用 Pymol 手动将配体放入一个近似区域。

有关pymol的操作可以看我的另一篇文章Pymol用法
在这里插入图片描述
确保ligand_docking下有这四个文件

  • 3PBL_A.pdb
  • ETQ.pdb
  • ETQ_conformers.pdb
  • ETQ.params
    在这里插入图片描述

接下来,确保有正确的[[RosettaScripts|rosetta_scripting]]文件。XML文件、输入选项文件和晶体复合体。这些文件分别是 dock.xml、options.txt 和 crystal_complex.pdb。将这些文件复制到配体对接目录下:

  • dock.xml - 这是 RosettaScripts XML 文件,它告诉 Rosetta 要进行的取样和评分类型。它定义了评分函数,并为低分辨率粗采样和高分辨率蒙特卡洛采样提供参数。
  • options -这是一个选项文件,用于告诉 Rosetta 在哪里找到我们输入的 PDB 结构和配体参数。它还可以引导 Rosetta 找到合适的 XML 文件。
  • crystal_complex.pdb - 这是来自 PDB 的 D3-eticlopride 复合物。它将作为我们的正确答案,使我们能够对模型和实际结构进行比较。
cp docking/dock.xml .
cp docking/options .
cp docking/crystal_complex.pdb .

在这里插入图片描述
在这里插入图片描述
这就到了对接了,运行命令

$ROSETTA3/bin/rosetta_scripts.linuxgccrelease @options

在这里插入图片描述
运行完成,蓝色部分告诉我们发表论文时要引用里面的文章
在这里插入图片描述
在这里插入图片描述
Rosetta模型的保存前缀为3PBL\_ETQ\_,后跟一个四位数的标识符。每个模型的 PDB 都包含该模型对应的坐标和 Rosetta 分数。此外,模型得分在 score.sc 文件中以表格形式汇总。需要考虑的两个主要评分项是

  • total_score(总分):总分反映了整个蛋白质配体复合物的情况,是对模型的整体评估。
  • interface/_delta_X:界面得分是结合蛋白-配体复合物与未结合蛋白-配体之间的差值。界面得分有助于分析配体效应和比较不同的复合物。

Transform\_accept\_ratio 是另一个需要注意的指标。这是在低分辨率变换网格搜索过程中接受的蒙特卡洛移动的分数。如果这个数字为零或很低,那么搜索空间可能过于有限,无法进行适当的采样。

在基准测试示例中,当我们有一个正确的晶体结构时,ligand\_rms\_no\_super\_X 将给出我们的配体模型与 crystal_complex.pdb 中给出的晶体结构配体之间的 RMSD 差值。这是衡量模型与现实相关性的一个重要指标。当晶体结构未知时,我们还可以使用得分最高的结构作为 "真实答案 "来计算模型 RMSD。

使用 pymol 将得分最高的模型和得分最低的模型与 crystal_complex.pdb 中提供的晶体结构进行直观比较。Pymol 中的 "All->Action->preset->ligand sites->cartoon "设置是界面可视化的理想选择。Rosetta 成功预测了哪些相互作用?

scripts 目录中的 visualize_ligand.py 脚本是对蛋白质配体界面进行快速可视化的有用快捷方式。它接收一个 PDB,并通过应用常用的可视化设置生成一个 .pse Pymol 会话。下面的示例显示了在 0001 模型上使用该脚本的命令行,但您也可以在任何一个(或多个)模型上尝试使用:

<path-to-Rosetta>/demos/tutorials/ligand_docking/scripts/visualize_ligand.py 3PBL_A_ETQ_0001.pdb
pymol 3PBL_A_ETQ_0001.pse
# 只有在 pymol 环境设置正确的情况下,此方法才有效。

3 . 分析结果

在这里插入图片描述
由于我们生成的结构数量很少,因此不可能捕捉到实际对接运行中可能遇到的所有结合模式。在 "out "目录下,有 500 个使用完全相同的协议预先生成的模型。我们将举例说明如何分析这个数据集。

1.cd 进入配体对接中的 out 目录:

cd out

2.分析

除了这里的 50 个结构外,您还可以找到 score.sc、score_vs_rmsd.csv 文件、rmsds_to_best_model.data 和几个 .png 图像文件。

2.1. score.sc

Rosetta 输出的 50 个结构的得分汇总文件

2.2. score_vs_rmsd.csv

以逗号分隔的文件,第一列为文件名,第二列为复合物的总分,第三列为界面得分,第四列为配体与原生结构的 RMSD。

该文件使用 extract_scores.bash 脚本和 score.sc 文件作为输入进行制表。这是一个非常特殊的脚本,用于提取配体对接实验中的有用信息。不过,该脚本可以很容易地进行定制,以便从 Rosetta score 文件中提取其他信息。如果您对脚本的工作原理或修改方法有任何疑问,请随时提出。要查看它的运行情况,请运行

/demos/tutorials/ligand_docking/scripts/extract_scores.bash score.sc

2.3. rmsds/_to/_best/_model.data

一个空格分隔的文件,包含所有 PDB 文件与最佳得分模型(而非晶体结构!)的 RMSD 比较结果。本教程将进一步详细讨论该文件。该文件的第一列是文件名,第二列是所有重原子 RMSD,第三列是不叠加的配体 RMSD,第四列是叠加的配体 RMSD,第五列是配体周围侧链的重原子 RMSD。

该文件使用 calculate_ligand_rmsd.py 脚本生成。它使用 pymol 比较包含相同残基和配体原子的 PDB 结构。这是计算 Rosetta 模型配体 RMSD 的一种快速方法。为了了解它是如何工作的,让我们在前面步骤中生成的五个模型上试试:

cd …/
/demos/tutorials/ligand_docking/scripts/calculate_ligand_rmsd.py -n 3PBL_ETQ_0003.pdb -c X -a 7 -o rmsds_to_best_model.data _000.pdb
该命令将您的所有五个模型与 -n 选项后的模型进行比较。您的最佳得分模型可能不是标注为 0003 的模型,因此请随意自定义该选项。-c选项告诉脚本配体表示为X链。-a选项告诉脚本使用 7 埃作为侧链 RMSD 的截止球。-o选项是输出文件名。最后,我们提供了一个使用通配符选择的 PDB 列表。

脚本会生成 rmsd_to_best_model.data 文件,您可以用任何文本编辑器打开该文件。如果你想进一步讨论如何为自己的应用定制这个脚本,欢迎随时提问。现在让我们回到预先生成的模型目录:

        cd out

2.4. PNG 文件

由上述各种数据文件制作的图表。这里使用了 Python 和 matplotlib 包,但您可以自由使用您喜欢的任何绘图软件。

3. 查看得分更高的模型是否确实更接近天然配体结合模式

在本例中,我们根据晶体结构得到了正确的答案,因此我们可以检查得分与 rmsd 图,看看得分更高的模型是否确实更接近天然配体结合模式。使用以下命令打开该图:

gthumb score_vs_crystal_rmsd_plot.png 

在 X 轴上,您将看到晶体结构中配体的 RMSD。在 Y 轴上,您将看到 Rosetta 能量单位中的界面增量得分。请注意 RMSD 和 Rosetta 得分之间的一般相关性,左下角有一大群高度准确且得分良好的模型。

4.在实际应用中,我们没有晶体结构可供比较怎么办?

在实际应用中,我们没有晶体结构可供比较,但是,我们可以将最佳得分模型视为正确模型,看看是否生成了类似的漏斗。这是我们如何使用前面讨论的 calculate_ligand_rmsd.py 脚本的一个应用。一旦我们确定了所需的“最佳模型”,我们就可以运行脚本来生成 rmsds_to_best_model.data。可能需要编写一些脚本来将来自多个文件的信息放在一起,具体取决于您选择使用哪个软件包来绘制图表。为了确定此示例的最佳得分模型,我根据最佳总体得分选择了前 200 个模型,然后根据界面得分确定了最佳模型。这些图的最佳模型是 3PBL_A_ETQ_0347.pdb。使用以下命令打开第一个图:

gthumb score_vs_low_rmsd_plot.png 

再次,我们看到得分较高的模型集群靠近得分最高的模型,而得分较低的模型集群则总体呈下降趋势。我们可以放大左下角的集群,以获得更清晰的图像。

gthumb score_vs_low_rmsd_zoom_plot.png 

我们在这个集群中看到了相同的总体趋势,这表明这次运行中得分最高的模型很可能能够很好地预测真正的配体结合位置。

5.看结构

要按接口分数对 CSV 文件进行排序并取前 20 名,请键入:

sort -t, -nk3 score_vs_rmsd.csv | head -n 20 

这些都应该是 RMSD 非常低的模型。要将某个结构与 Pymol 中的原生结构进行比较,请使用:

pymol 3PBL_ETQ_0001.pdb ../crystal_complex.pdb 

不要忘记配体位点预设模式来可视化界面,或者使用 visualize_ligand.py 脚本来生成 pymol 会话。如果您愿意,我们还可以查看一些得分较低的模型,以确切了解问题所在。要按界面得分查找排名前 20 位的较差模型:

sort -t, -nk3 score_vs_rmsd.csv | tail -n 20 

3PBL_A_ETQ_0033.pdb 应该显示为得分较低、RMSD 较高的结构。当我们在 Pymol 中打开它时,我们可以看到配体结合方向与天然位置不同。当存在延伸的结合口袋时可能会发生这种情况,但在这种情况下,Rosetta 得分能够辨别出这些模型之间的差异。

pymol 3PBL_A_ETQ_0033.pdb ../crystal_complex.pdb

关于结合口袋和调整配体采样空间的一些注意事项

问:我的蛋白质有一个相当大的腔和一个很小的配体(不比亮氨酸大)。在 XML 文件中,这些是标准参数:。为什么move_distance和角度这么小?将 box_size 增加到 12、将 move_distance 增加到 5 并将角度增加到 360 是否有意义,以便采样更多允许配体移动的空间?

答:Transform 算法是一种蒙特卡罗程序,角度move_distance和角度是 MC 协议中各个步骤的大小,而不是移动的最大范围。它们也是高斯的标准差,因此您不一定受限于任何给定步骤中的给定量。也就是说,如果您要增加口袋的大小,则按比例增加移动大小可能是有意义的。(因此,对于 12 的盒子大小,0.25 到 0.5 左右的 move_distance 可能是合适的。)

如果您正在探索口袋,我还建议您设置initial_perturb选项。默认情况下,Transform 将始终从输入位置开始。如果添加该initial_perturb=X.X选项,那么它将首先随机化距离起始位置 XX 埃球体内配体的起始位置,并随机化方向。-- 并且将为每个 nstruct 采取一个新的随机位置/方向,因此即使您的 MC 移动不足以在口袋中徘徊,您也可以对其进行采样。此外,如果您要增加口袋的尺寸,则可能需要增加网格的尺寸,以便它能够覆盖配体行进的最大范围。如果没有,Transform 将拒绝任何意外落在网格之外的配体。

问:该initial_perturb选项是否也会随机化角度?因为initial_angle_perturbTransformMover 中还有另一个选项。

答:是的,默认情况下设置initial_perturb将完全随机化角度(配体方向) -initial_angle_perturb如果您想减少角度扰动,就可以使用。(例如,如果您正在优化方向)

恭喜,您已完成 RosettaLigand 对接研究!现在使用对接模型生成假设并在湿实验室中测试它们!

标签:Rosetta,得分,手把手,教你用,pdb,文件,配体,模型
From: https://blog.csdn.net/m0_54634272/article/details/142413805

相关文章

  • 数据结构: 顺序表(Seqlist篇) 手把手带你了解数据结构~
    文章目录前言一、顺序表的概念1.顺序表是什么?2.顺序表和数组的区别二、顺序表的实现1.顺序表的结构(1).静态顺序表(2).动态顺序表2.顺序表的初始化3.顺序表的销毁4.顺序表尾插5.顺序表头插6.顺序表尾删7.顺序表头删8.顺序表获取元素下标9.顺序表任意位置插入......
  • 大麦抢票自动抢票教程/教你用脚本自动抢演唱会门票
    ......
  • FLUENT离心风机仿真手把手零基础入门进阶有声解说教程(#331)
    本文摘要(由AI生成):本文主要介绍了FLUENT中旋转机械仿真方法,包括旋转坐标系模型、多参考坐标系模型、混和平面模型、滑移网格模型和重叠网格模型。其中,多重参考系法与滑移网格法设置几乎相同,两者相互转换容易。本文以离心风机为例,介绍了使用WORKBENCH19.2平台及其对应的DM、ICEM......
  • 手把手教你自己动手写cpu(六)--算术操作指令实现
    目录1.加法指令(Addition)实现思路Verilog实现示例2.减法指令(Subtraction)实现思路Verilog实现示例3.乘法指令(Multiplication)实现思路Verilog实现示例4.除法指令(Division)实现思路Verilog实现示例ALU模块乘法器模块除法器模块顶层模块测试模块总结 ......
  • 手把手教你写一个图形化的端口扫描工具
    前言关于学习群,有想要交流学习的朋友们可以在后台菜单栏加群奥~由于我使用masscan进行纯端口扫描的时候,遇到扫描不出结果的情况,我就考虑了自己写一个端口扫描脚本,还挺好用。库介绍1、asyncioasyncio是Python的一个库,用于编写单线程并发代码。使用asyncio,你可以使用异步......
  • 手把手教你写一个Unity对象池
    对象池,我在最初学习时觉得这一定是个非常复杂的东西,但其实从现在看过去,对象池其实非常简单。首先对象池也叫做缓存池,是常见的一种优化内存的手段(划重点,常用,一定要学会哦)再来看,对象池主要用于面对以下问题:1.对象的频繁创建频繁的实例化对象会带来一定的性能开销2.对象的频......
  • HTML页面中搭建WebSocket服务和调试部署的手把手操作教程
    好的,以下是一份关于“在HTML页面中搭建WebSocket服务和调试部署”的手把手操作流程,由浅入深,先整体后分部:一、引言WebSocket是一种在单个TCP连接上进行全双工通信的协议。它允许服务器主动发送信息给客户端,使得实时应用成为可能。本文将详细介绍如何在HTML页面中搭建WebSoc......
  • 在CentOS系统中如何配置Java开发环境环境变量的手把手操作流程
    以下是一份关于“在CentOS系统中如何配置Java开发环境环境变量”的手把手操作流程,由浅入深,先整体后分部:一、引言Java是一种广泛使用的编程语言,其跨平台特性使得它在不同操作系统上都能运行。为了在CentOS系统中进行Java开发,我们需要配置Java开发环境。本文将详细介绍如何......
  • 在Windows系统中如何配置Java开发环境环境变量&零基础手把手教程
    以下是一份关于“在Windows系统中如何配置Java开发环境环境变量”的手把手操作流程,由浅入深,先整体后分部:一、引言Java是一种广泛使用的编程语言,其跨平台特性使得它在不同操作系统上都能运行。为了在Windows系统中进行Java开发,我们需要配置Java开发环境。本文将详细介绍如......
  • 【视频教程】手把手AppWizard轻松制作一个emWin滑动主界面控制框架,任意跳转控制(2024-0
    现在的新版AppWizard已经比较好用,用户可以轻松的创建各种项目常规界面。比如早期创建一个支持滑动的主界面框架,并且可以跳转各种子界面,仅仅界面布局和各种图片格式转换都要花不少时间,而现在使用AppWizard,可以说轻轻松松,毫不费力。用户唯一要做的就是根据自己的芯片性能做一定的速度......