- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在对蛋白质结构进行蒙特卡罗模拟脚本。我以前从未做过蒙特卡洛脚本。我将大规模扩展这个程序。根据蛋白质 xyz 坐标,我必须定义框的大小。这个盒子将被分成一个大小为 0.5 A 的网格。根据距离和角度标准,我必须根据玻尔兹曼概率分布分配点。
我的程序应该通过采用 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/
我应该在一些蒙特卡洛模拟中计算标准偏差函数。公式是这样的: 我认为我的结果与应有的结果相去甚远。我的函数使用来自 boost 库的元组,它看起来像这样: double add_square(doubl
我需要使用 R 代码执行股票价格模拟。问题是代码有点慢。基本上我需要模拟每个时间步长(每天)的股票价格并将其存储在矩阵中。 假设股票过程是几何布朗运动的例子 for(j in 1:100000){
如何在卷积神经网络中使用 Keras 实现 Monte Carlo dropout 以估计 YARIN GAL 建议的预测不确定性?我正在使用 R。R-Code is here 我正在小批量地拟合模型
我是一名优秀的程序员,十分优秀!