首页 > 其他分享 >SPONGE常用教程:蛋白+配体模拟1

SPONGE常用教程:蛋白+配体模拟1

时间:2024-07-24 16:52:34浏览次数:14  
标签:教程 1ae5 mol2 SPONGE HUP 配体 pdb 蛋白

软件支持
SPONGE(Simulation Package tOward Next GEneration molecular modelling)是由北京大学高毅勤课题组开发的分子动力学模拟程序。安装教程
XPONGE 使用python编写的分子动力学模拟前后处理工具。简易安装:pip install git+https://gitee.com/gao_hyp_xyj_admin/xponge.git
DSDP 使用GPU开发的蛋白-分子对接工具。

目录

  1. 应用场景简述;
  2. DSDP:蛋白-配体对接;
  3. XPONGE:蛋白-配体建模,加溶剂;
  4. SPONGE:能量极小化-NVT-NPT-正式模拟;
  5. XPONGE:数据简单后处理。

1. 应用场景简述
研究蛋白与药物分子结合的体系中,模拟盒子包含以下几个部分:A.蛋白 + B.有机配体分子 + C. 溶剂水分子。这一过程包括以下几个步骤:
a. DSDP:蛋白-配体对接(可选)如果蛋白-配体之间不在合适的位置,可以使用分子对接算法将两者坐标调整到正确的位置上。输入:蛋白pdb+配体mol2;输出:蛋白pdb+配体mol2(对接坐标)
b. XPONGE:蛋白-配体建模,加溶剂(必选)将蛋白、配体和溶剂分别加载对应力场,加入到体系中,生成SPONGE模拟引擎可读文件。输入:蛋白pdb+配体mol2(对接坐标);输出:一系列文本文件+体系pdb
c. SPONGE:分子动力学模拟(必选)体系经过能量极小化优化氢原子位置,升温到反应温度,加压到反应压强,然后运行成品模拟。输入:一系列文本文件;输出:轨迹(二进制文件)
d. XPONGE:数据简单后处理(可选)统计轨迹中的体系稳定性信息(RMSD、Rg、RMSF)及氢键数等基础信息。输入:轨迹+体系pdb;输出:统计文件txt

数据预清洗(1AE5-HUP作用对,点击下载原文件)
PDB数据库中下载的PDB文件(1ae5_pdbraw.pdb)除了蛋白的PDB结构之外,往往还会带有额外稳定结构的配体或者结晶水等我们不需要的信息,需要进行预清洗。
这里我们使用Xponge.pdb_filter函数来获得简化的文件,其中前两个参数分别是输入和输出的文件名,heads指定需要的表头部分,hetero_residues指定需要的非蛋白残基(这个例子没有)。

##>>python
import Xponge
Xponge.pdb_filter("1ae5_pdbraw.pdb", "1ae5_protein.pdb", heads=["ATOM", "SEQRES", "TER"], hetero_residues=[])

小分子配体mol2文件(HUP.mol2)有可能会存在氢原子缺失的情况,若是,可使用openbabel对mol2进行加氢处理,设置pH为7。

##>>bash
obabel HUP.mol2 -O HUP_ligand.mol2 -p 7

确认蛋白-配体相对位置:
可通过分子可视化软件(例如pymol,vmd等)确认蛋白与配体的相对位置,坐标是否匹配,分以下两种情况:

如图左,绿色为蛋白6OOY,紫色为配体A7M(C17H18N2O)的正确结合位置,可以跳过第2步,直接进行第3步; 图右,蛋白1AE5与配体HUP(紫色,Huperzine A,C15H18N2O)有相互作用,但是未找到对接的pdb结构,需要执行DSDP分子对接。

2. DSDP:蛋白-配体对接

下面以1AE5-HUP作用对为例,演示对接操作:
安装DSDP
复制prepare_receptor4.py和prepare_ligand4.py到DSDP.yaml所在的文件夹中进行操作:

##>>bash
mkdir runpdb
cd runpdb
mkdir 1ae5
#根据蛋白名新建文件夹
cd 1ae5
#将蛋白文件(1ae5_protein.pdb)和配体文件(HUP_ligand.mol2)复制到当前文件夹
pythonsh ../../prepare_receptor4.py -r 1ae5_protein.pdb -A hydrogens -o 1ae5_protein.pdbqt
pythonsh ../../prepare_ligand4.py -l HUP_ligand.mol2 -A hydrogens -o 1ae5_ligand.pdbqt
#此时文件夹中会多出1ae5_protein.pdbqt和1ae5_ligand.pdbqt两个文件
cd ../../
./DSDP_redocking/DSDP \
--ligand ./run_pdb/1ae5/1ae5_ligand.pdbqt \
--protein ./run_pdb/1ae5/1ae5_protein.pdbqt \
--box_min -20 -10 0 \
--box_max 30 50 60 \
--exhaustiveness 384 --search_depth 40 --top_n 1  \
--out ./results/DSDP_dataset/redocking/1ae5_out.pdbqt \
--log ./results/DSDP_dataset/redocking/1ae5_out.log
#定位到生成的文件夹中
cd results/DSDP_dataset/redocking
#此处需要通过其他软件转换pdbqt文件回到mol2格式,教程采用openbabel进行格式转换
obabel -ipdbqt 1ae5_out.pdbqt -opdb -O 1ae5_out.pdb
#查看配体pdb结构,发现-NH2基团键级错误(来自autodock-MGLtool的prepare_ligand4.py脚本在格式转换过程中误识别成-NH3+),补救措施为手动删除1ae5_out.pdb的id=22的氢原子(删除第29&51行,并删去第48行的“22  ”字符,且第40行CONNECT应该多加一个“13”,第41行CONNECT应该多加一个“12”,若有更优的解决方法欢迎讨论),再转mol2格式
obabel -ipdb 1ae5_out.pdb -omol2 -O 1ae5_HUP_ligand.mol2 -p 10
#通常加氢应该是加到ph=7,此处配体分子式(C15H18N2O)对应-NH2,而非-NH3+,故采用ph=10保存配体分子
#将pdbqt文件转回mol2文件,复制到工作文件夹
再次查看配体位置,发现已经对接到蛋白口袋。

3.XPONGE:蛋白-配体建模,加溶剂
将蛋白文件(1ae5_protein.pdb)和配体文件(1ae5_HUP_ligand.mol2)复制到工作文件夹。【文件直接下载

##>>bash
mkdir 1ae5
#创建空文件夹用于保存SPONGE输入文件(因为子文件数量较多(10+),放在一个文件夹目录下方便一起拷贝)
##>>python3
import Xponge
import Xponge.forcefield.amber.gaff as gaff
assign1 = Xponge.Get_Assignment_From_Mol2("1ae5_HUP_ligand.mol2")
assign1.Determine_Atom_Type("gaff")
assign1.Calculate_Charge("resp")
HUP = assign1.toResidueType("HUP")
gaff.parmchk2_gaff(HUP, "HUP.frcmod")
Xponge.save_mol2(HUP, "HUP.mol2")
#保存HUP分子力场用于后续调用

import Xponge.forcefield.amber.ff14sb
C = Xponge.load_pdb("1ae5_protein.pdb", ignore_hydrogen=False, ignore_unknown_name=True, ignore_seqres=True)
C.add_missing_atoms()
HUP = Xponge.load_mol2("HUP.mol2")
gaff.parmchk2_gaff(HUP, "HUP.frcmod")
a = C | HUP

#如果是真空体系的话,可以采用下面命令行保存,同样需要在外部创建空文件夹1ae5V
#Xponge.save_pdb(a, "1ae5_pro_lig.pdb")
#Xponge.save_sponge_input(a, "1ae5V/1ae5")

#正常模拟生理状态加水的话,用下面的命令行
import Xponge.forcefield.amber.tip3p
Xponge.addSolventBox(a, WAT, 5)
#此处加溶剂水为tip3p水,参数5代表蛋白距离盒子边界5A,通常模拟会选更大的距离,以避免边界效应
print(C.charge+int(round(HUP.charge)))
#此处显示体系带3个单位负电荷,需要加入离子补到电中性#思考题,若要达到生理盐水的离子浓度,此处电荷数量是怎样算出来的?
Xponge.Solvent_Replace(a, WAT, {CL:8})
Xponge.save_pdb(a, "1ae5_pro_lig_sol.pdb")
Xponge.save_sponge_input(a, "1ae5/1ae5")
AtomId ResId ResCount
Protein 0-3351 0-222 223
Ligand 3352-3387 223 1
Iron 3388-3395 224-231 8
Water 3396-12650 232-3316 3085

[To be continued...]

标签:教程,1ae5,mol2,SPONGE,HUP,配体,pdb,蛋白
From: https://www.cnblogs.com/bgalang/p/18316362/SPONGE

相关文章

  • SketchUp v2023 激活版下载与安装教程 (强大的绘图三维建模工具)
    前言Sketchup草图大师专业版,一套面向建筑师、城市规划专家、制片人、游戏开发者以及相关专业人员的3D建模程序,全球知名的三维建模软件,强大的绘图工具、建模渲染、扩展插件和渲染器模板、海量3D模型库及建模灯光材质渲染效果图,用于建筑师、城市规划专家、游戏开发等行业。......
  • 中望CAD 机械 v2024 解锁版下载与安装教程 (CAD三维制图)
    前言中望CAD机械版是一款国产CAD制图软件,专为机械设计而打造。中望CAD机械版2024中文版拥有丰富的标准零件图库,提供绘图标准规范,并支持定制化需求。其智能注释功能更是一大亮点,通过一个命令即可完成80%的标注工作,极大提高了绘图效率。一、下载地址下载链接:中望CAD机械......
  • PyCharm安装教程(详细步骤)
    一、软件简介PyCharm是一款PythonIDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如,调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等等。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。......
  • 逆向分析学习入门教程(非常详细)零基础入门到精通,看这一篇就够了!_逆向都要学啥
    前沿从本篇起,逆向工厂带大家从程序起源讲起,领略计算机程序逆向技术,了解程序的运行机制,逆向通用技术手段和软件保护技术,更加深入地去探索逆向的魅力。一、程序如何诞生?1951年4月开始在英国牛津郡哈维尔原子能研究基地正式投入使用的英国数字计算机“哈维尔·德卡特伦”,是......
  • Zabbix监控TiDB数据库教程
    作者乐维社区(forum.lwops.cn)许远1 概述TiDB数据库是一个常见的开源分布式关系型数据库,通过使用分布式事务、分布式SQL引擎和分布式存储引擎来实现高可用性和横向扩展性。而Docker则是一个开源的容器化平台,它可以帮助开发者在不同的环境中轻松地部署和运行应用程序。本文......
  • 软件著作权申请教程(完整版,小白也看得懂)【2024最新版】
    一,注册个人/企业账号注册流程并不复杂,难就难在代码、说明书、申请表怎么配合写。①、注册账号首先在中国版权保护中心官网,注册账号②、在版权中心实名认证个人实名需要的资料:邮箱、手机号、身份证正反面、手持证件照片公司实名需要的资料:公司营业执照扫描件、授权书扫描......
  • AI视频元年AI漫画推文小众宝藏网站巨日禄体验教程
    2024年可谓AI视频元年,继Sora炸场引发科技圈全球讨论,国外AI圈继续开卷,国内大厂也努力提升视频生成时长和质量。抖音的即梦、快手的可灵、爱诗科技的PixVerse都令人眼前一亮也让我们对国产AI视频有了更多期待!AI视频的出现给影视制作一定会带来挑战和机遇。而对于普通大众小伙伴,......
  • STM32入门教程:LED闪烁
    STM32是一款流行的微控制器系列,具有广泛的应用领域。在本教程中,我们将介绍如何使用STM32来控制LED灯的闪烁。第一步:准备工作在开始编写代码之前,我们需要准备一些必要的工具和材料。首先,我们需要一款能够编程的STM32微控制器开发板,例如ST-LinkV2。其次,我们需要一个集成开发......
  • STM32入门教程:智能健康监测
    STM32是一种嵌入式微控制器,是STMicroelectronics公司开发的一款产品。它具有高性能、低功耗、丰富的外设接口等特点,非常适合用于智能健康监测等应用领域。本教程将以智能健康监测为例,详细介绍如何使用STM32进行开发。主要包括以下内容:硬件准备开发环境搭建传感器使用......
  • GitHub 详解教程
    1.引言GitHub是一个用于版本控制和协作的代码托管平台,基于Git构建。它提供了强大的功能,使开发者可以轻松管理代码、追踪问题、进行代码审查和协作开发。2.Git与GitHub的区别Git是一个分布式版本控制系统,用于跟踪文件的更改历史。GitHub是一个基于Git的在线平台,......