私は、タンパク質構造に対してモンテカルロ シミュレーション スクリプトを実行しています。モンテカルロ スクリプトを作成する前に、私は一度もやったことがありません。このプログラムを大規模に拡張します。タンパク質の 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 のグリッドを定義する方法に完全に感銘を受けました。ボックス内のすべてのポイントを確認する方法。
どんな助けもかなりのものです。