Python模拟大型蛋白质结构与细胞膜的相互作用

细胞的质膜可以被视为具有多种功能的高度动态、调节、异质的环境。它构成了单元的边界,封装了它的所有组件。蛋白质以多种方式与膜相互作用以适应基本过程,例如膜运输、膜突出、胞质分裂、信号传导和细胞间通讯。大量文献已经促进了我们目前对膜蛋白相互作用的理解。其模拟是一种可以在氨基酸残基水平上揭示在化学变性剂不存在和存在的情况下蛋白质展开/折叠机制的技术。

模拟原理

力学

牛顿第二定律将物体的运动学(运动)与其力学(作用在其上的总力)联系起来,并定义了其位置的动态演化:

m d 2 r ( t ) d t 2 = F = − ∇ U ( r ) ( 1 ) m \frac{d^{2} r(t)}{d t^{2}}=F=-\nabla U(r)\qquad(1) mdt2d2r(t)=F=U(r)(1)

粒子动力学模拟

求解常微分方程的方法有很多。二阶常微分方程转换为两个一阶常微分方程的系统,如下所示:

d r ( t ) d t = v ( t ) ( 2 ) \frac{d r(t)}{d t}=v(t)\qquad(2) dtdr(t)=v(t)(2)

m d v ( t ) d t = F ( t ) ( 3 ) m \frac{d v(t)}{d t}=F(t)\qquad(3) mdtdv(t)=F(t)(3)

我们使用一个简单的正向欧拉算法的有限差分逼近:

v n + 1 = v n + F n m d t ( 4 ) v_{n+1}=v_{n}+\frac{F_{n}}{m} d t\qquad(4) vn+1=vn+mFndt(4)

r n + 1 = r n + v n + 1 d t ( 5 ) r_{n+1}=r_{n}+v_{n+1} d t\qquad(5) rn+1=rn+vn+1dt(5)

这里我们用时间步长 d t dt dt 离散时间 t t t,于是 t n + 1 = t n + d t t_{n+1} = t_n + dt tn+1=tn+dt,并且 r n = r ( t n ) r_{n} = r(t_n) rn=r(tn) v n = v ( t n ) v_{n} = v(t_n) vn=v(tn),其中 n n n 是时间步数。使用这种方法,计算动态很简单。

模拟地球上球体下落

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import animation

# Setup the figure and axes...
fig, ax = plt.subplots(figsize=(8,8))

## Adjust axes limits according to your problem. Here we don't need more than a couple of meters left or right, and 600 meters up
ax.set(xlim=(-2, 2), ylim=(0, 600), xlabel='Position, meters', ylabel='Height, meters', title='Apple falling from CN tower')

# parameters of the problem
T = 10. #s
m = 0.3 #kg
g = 9.8 #m/s^2
v0x = -0.1 #m/s
H = 553. #m

# setting a timestep to be 50 ms
dt = 0.05 #s
N = int(T / dt)

# Allocating arrays for 2D problem
v = np.zeros((N+1, 2))
r = np.zeros((N+1, 2))
f = np.zeros((N+1, 2))

# initial conditions:
r[0] = np.array([0., H])
v[0] = np.array([-v0x, 0.])

# the only force is gravity
f[:] = np.array([0., -m * g])

## Run dynamics:
for n in range(N):
    v[n+1] = v[n] + f[n]/m * dt
    r[n+1] = r[n] + v[n+1] * dt

## drawing the first data point  
scat = ax.scatter(r[0,0], r[0,1], marker='o', c='g', s=200)

## animating 
def animate(i):
    scat.set_offsets(r[i])

ani = animation.FuncAnimation(fig, func=animate, frames=N)
## this function will create a lot of *.png files in a folder 'CNtower_frames'
## and create an HTML page with a simulation
ani.save('CNtower.html', writer=animation.HTMLWriter(fps= 1//dt))
plt.close()
#ani.save('CNtower.mp4', fps= 1//dt)

胡克定律模拟三体问题

蛋白质结构和功能

分子力学

蛋白质的分子动力学

蛋白质折叠成α螺旋的分子动力学模拟

分子动力学轨迹分析

源代码

模拟和分析

  1. 分析分子动力学模拟脚本
  2. 分子动力学模拟中非共价相互作用的快速、可定制和可视化分析
  3. 探索式分子可视化系统
  4. 在配置文件或分子动力学模拟的轨迹中识别和分析表面分子
  5. Python生物工程研究

详情参阅 - 亚图跨际

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值