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

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

时间:2024-08-02 14:09:43浏览次数:13  
标签:教程 sq SPONGE 配体 np import txt hbonds average

前序课程1
前序课程2

目录

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

5. XPONGE:数据简单后处理
经过1ns的SPONGE分子动力学模拟,得到了轨迹文件"mdcrd.dat"和盒子边长信息"mdbox.txt"。

cp ../1ae5_pro_lig_sol.pdb .
#复制pdb文件到文件夹内进行分析
import MDAnalysis
import Xponge.analysis.md_analysis as xmda
from MDAnalysis import Universe
u = Universe("1ae5_pro_lig_sol.pdb","mdcrd.dat",box="mdbox.txt",format=xmda.SpongeTrajectoryReader)
#calculate RMSD
ca = u.select_atoms('name CA')
import MDAnalysis.analysis.rms as rms
R = rms.RMSD(ca, ca, select='all', ref_frame=0)
R.run()
R.rmsd.shape
import numpy as np
np.savetxt('rmsd.txt',R.rmsd)
#calculate Rg
import numpy as np
from MDAnalysis.analysis.base import (AnalysisBase, AnalysisFromFunction, analysis_class)
def radgyr(atomgroup, masses, total_mass=None):
    # coordinates change for each frame
    coordinates = atomgroup.positions
    center_of_mass = atomgroup.center_of_mass()
    # get squared distance from center
    ri_sq = (coordinates-center_of_mass)**2
    # sum the unweighted positions
    sq = np.sum(ri_sq, axis=1)
    sq_x = np.sum(ri_sq[:,[1,2]], axis=1) # sum over y and z
    sq_y = np.sum(ri_sq[:,[0,2]], axis=1) # sum over x and z
    sq_z = np.sum(ri_sq[:,[0,1]], axis=1) # sum over x and y
    # make into array
    sq_rs = np.array([sq, sq_x, sq_y, sq_z])
    # weight positions
    rog_sq = np.sum(masses*sq_rs, axis=1)/total_mass
    # square root and return
    return np.sqrt(rog_sq)

    
protein =u.select_atoms('protein')
rog = AnalysisFromFunction(radgyr, u.trajectory, protein, protein.masses, total_mass=np.sum(protein.masses))
rog.run()
np.savetxt('Rg.txt',rog.results['timeseries'])

#calculate Hbonds
u.add_TopologyAttr('charges')
from MDAnalysis.analysis.hydrogenbonds.hbond_analysis import HydrogenBondAnalysis as HBA
hbonds = HBA(universe=u, between=['resname HUP', 'protein'])
hbonds.hydrogens_sel ="type H"
hbonds.acceptors_sel = "type O" or "type N"
hbonds.donors_sel = "type H"
hbonds.d_h_cutoff = 2.0
hbonds.run()
hbonds.results.hbonds
import numpy as np
np.savetxt('hbond.txt',hbonds.results.hbonds)
out=np.zeros((hbonds.results.hbonds.shape[0],3),dtype=float)
count=np.zeros(u.atoms.n_residues)
for i in range(0, hbonds.results.hbonds.shape[0]-1):
  tempDresid=u.atoms.resids[int(hbonds.results.hbonds[i,1])]
  tempAresid=u.atoms.resids[int(hbonds.results.hbonds[i,3])]
  out[i,0]=hbonds.results.hbonds[i,0]
  out[i,1]=tempDresid
  out[i,2]=tempAresid
  count[tempDresid-1]=count[tempDresid-1]+1
  count[tempAresid-1]=count[tempAresid-1]+1
  

np.savetxt('res_hbond.txt',count)
np.savetxt('t_hbond.txt',hbonds.count_by_time())

#calculate RMSF
from MDAnalysis.analysis import align
average = align.AverageStructure(u, u, select='name CA', ref_frame=0,in_memory=True).run()
ref = average.universe
aligner = align.AlignTraj(u, ref, select='name CA', in_memory=True).run()
chain = ca.select_atoms('all')
R = rms.RMSF(chain).run()
import numpy as np
np.savetxt('rmsf.txt',R.rmsf)
#after RMSF, had better to exit, 'alignTraj' change the coord

#save average structure
from MDAnalysis.analysis import align
average = align.AverageStructure(u, u, select='protein', ref_frame=0,in_memory=True).run()
average = average.universe
average = average.select_atoms('all')
average.write('average.pdb')

对所得文本数据进行分析,得到下图:

数据存储格式如下:

RMSD(图左上,rmsd.txt): time_frame;time_frame;RMSD(unit:A)

Rg(图左中,Rg.txt): Rg(unit:A); Rg_x; Rg_y; Rg_z

Hbond(图左下,t_hbond.txt):hbond_counts

以上横坐标为时间t(/ps);

RMSF(图右上,rmsf.txt):RMSF(unit:A)

Hbond(图右中,res_hbond.txt):hbond_counts

以上横坐标为蛋白残基序号。

右下为平均构象average.pdb对齐到起始构象示意图(绿色:平均构象;黄色:初始构象;天蓝色:配体初始位置;紫色:氢键作用较强的残基)。

本教程为教学演示用,搭建水盒偏小,成品模拟时间较短,只进行了基础的数据分析,正式使用时建议适当调整。

标签:教程,sq,SPONGE,配体,np,import,txt,hbonds,average
From: https://www.cnblogs.com/bgalang/p/18338363

相关文章

  • 功能强大的电路设计与仿真软件Multisim 14.3安装教程
    一款功能强大的电路设计与仿真软件Multisim是一款强大的电子电路仿真软件,广泛应用于电子工程和教育领域。本教程全面细致地解析了原理图设计、电路仿真以及虚拟仪器测试等核心功能,通过友好易学的界面设计,为用户打造了一款高效便捷的电路设计和分析工具,助您轻松掌握电路设计的精髓......
  • wps 最新 2019 专业版 下载安装教程,解锁全部功能,免费领取
    文章目录前言软件介绍软件下载安装步骤激活步骤小福利(安卓APP)软件介绍软件下载安装步骤前言本篇文章主要针对WPS的安装下载进行详细讲解,软件已激活,可放心使用;并且可以进行账号登录,进行云文档存储、编辑、分享,所有vip功能均可使用;没有限制;有任何问题可以在评论区讨论......
  • NVM下载、安装和配置教程-2024年6月6日
    NVM下载、安装和配置教程-2024年6月6日一、下载二、安装三、配置环境三、配置镜像源四、测试安装与使用五、nodejs配置与使用一、下载1.githubhttps://github.com/coreybutler/nvm-windows/releases这里是win系统的2.找到你想下载的版本,我这里选择的v1.1.11nvm-noinstall.zip:绿......
  • 计算机视觉库Kornia基础教程
    Kornia是一个用于计算机视觉任务的Python库,它提供了丰富的图像处理和计算机视觉操作接口。本教程将介绍Kornia的基本安装、使用方法以及一些实用的功能示例。一、引言Kornia是一个面向研究人员和开发者的计算机视觉库,它建立在PyTorch之上,旨在简化图像处理和计算机视觉任......
  • Python连接MinIO进阶教程:文件类型指定、上传与获取预览链接
    文章目录概要1.指定文件内容类型2.获取文件的预览链接(PresignedURL)使用fput_object上传文件4.完整示例与总结概要在上一篇文章中,我们介绍了如何使用Python连接MinIO服务器,并进行了基本的文件上传和下载操作。这次,我们将深入探讨一些进阶功能,包括在上传文件时指......
  • AI表情神同步!LivePortrait安装配置,一键包,使用教程
    快手在AI视频这领域还真有点东西,视频生成工具“可灵”让大家玩得不亦乐乎。现在又开源了一款超好玩的表情同步(表情控制)项目。 一看这图片,就知道是小视频平台出的,充满了娱乐性。发布没几天就已经有8000+Star。项目简介 LivePortrait是一款由快手团......
  • ollama 简易使用教程
    ollama安装Install使用以下命令安装ollama:curl-fsSLhttps://ollama.com/install.sh|sh手动安装下载ollama二进制文件:sudocurl-Lhttps://ollama.com/download/ollama-linux-amd64-o/usr/bin/ollamasudochmod+x/usr/bin/ollama添加ollama作为启动服务(推......
  • 数据库教程:从基础操作到高级应用
    数据库教程:从基础操作到高级应用大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!数据库是现代软件开发的核心组成部分之一。掌握数据库的基础操作以及高级应用技术对于开发人员而言至关重要。本文将从基础操作开始,逐步深入到数据库的高级应用,包括SQL语句......
  • Oracle数据库教程:入门到精通
    Oracle数据库教程:入门到精通大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!Oracle数据库是市场上最强大的关系数据库管理系统之一。无论是大数据分析、企业级应用还是高性能交易系统,Oracle都能提供卓越的性能和可靠性。本文将带你从Oracle数据库的基本操......
  • Python 教程(九):内置模块与第三方模块
    目录专栏列表前言1.模块基础目录结构示例模块`mymodule.py`2.导入模块3.从模块中导入特定内容3.1`from…import*`总结:4.包示例包结构`moduleone.py``moduletwo.py``__init__.py`导入包5.模块搜索路径6.内置模块示例7.第三方库8.`__name__`属性9.初始......