gpt4 book ai didi

python - 蛋白质结构和网格的蒙特卡洛模拟

转载 作者:太空狗 更新时间:2023-10-29 17:49:23 26 4
gpt4 key购买 nike

我正在对蛋白质结构进行蒙特卡罗模拟脚本。我以前从未做过蒙特卡洛脚本。我将大规模扩展这个程序。根据蛋白质 xyz 坐标,我必须定义框的大小。这个盒子将被分成一个大小为 0.5 A 的网格。根据距离和角度标准,我必须根据玻尔兹曼概率分布分配点。

Protein structure in the 3-D box, showing the grid

我的程序应该通过采用 0.5 A 的网格在每个方向上移动并生成随机点并检查距离和角度的条件。如果满足条件放点,否则根据玻尔兹曼概率分布丢弃该点。

这是我生成随机点的代码

from __future__ import division    
import math as mean
from numpy import *
import numpy as np
from string import *
from random import *

def euDist(cd1, cd2):# calculate distance
d2 = ((cd1[0]-cd2[0])**2 + (cd1[1]-cd2[1])**2 + (cd1[2]-cd2[2])**2)
d1 = d2 ** 0.5
return round(d1, 2)

def euvector(c2,c1):# generate vector
x_vec = (c2[0] - c1[0])
y_vec = (c2[1] - c1[1])
z_vec = (c2[2] - c1[2])
return (x_vec, y_vec, z_vec)


for arang in range(1000): # generate random point
arang = arang + 1
x,y,z = uacoord
#print x,y,z

x1,y1,z1 = (uniform(x-3.5,x+3.5), uniform(y-3.5,y+3.5), uniform(z-3.5,z+5))
pacord = [x1,y1,z1] # random point coordinates
print pacord

我对从蛋白质结构的 xyz 坐标生成框大小以及如何定义大小为 0.5 的网格感到震惊。如何检查方框内的每一点。
任何帮助将不胜感激。

最佳答案

喜欢您的主题、问题和方法。我不知道它会在这里停留多久。

矩形空间中的 3D 网格在有限元分析和所有其他用于分析物理问题的技术中很常见。看看网格是如何生成的。

通常有两部分:空间中的 (x,y,z) 点网格和连接它们的框。具有两个元素的简单二维网格如下所示:

D               E               F
o (1, 0) ------ o (1, 1) ------ o (1, 2)
+ + +
+ + +
+ + +
o (0, 0) -------+ (0, 1) -------+ (0, 2)
A B C

这个网格有六个点:

A (0, 0)
B (0, 1)
C (0, 2)
D (1, 0)
E (1, 1)
F (1, 2)

和两个盒子:

1 - (A, B, E, D)
2 - (B, C, F, E)

因此,一种可能的方法是遍历所有框,检查质心位置,并相应地进行调整。

我将从您的代码中外部化网格定义并从文件中读取它。这样您就可以使用相同的代码处理不同的网格。

如果我没理解错的话,网格将在空间中保持固定。你试图随机化蛋白质本身的运动。这就像一个流体问题,一种欧拉方法:您正在跟踪 Material 相对于固定控制体积的运动。除了它是一种蛋白质而不是液体。

因此,您还将单独定义空间中蛋白质的初始条件。您计划及时增加它以查看蛋白质如何根据您的规则折叠。

我接近了吗?

关于python - 蛋白质结构和网格的蒙特卡洛模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18891472/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com