12

私は、タンパク質構造に対してモンテカルロ シミュレーション スクリプトを実行しています。モンテカルロ スクリプトを作成する前に、私は一度もやったことがありません。このプログラムを大規模に拡張します。タンパク質の xyz 座標によると、ボックスのサイズを定義する必要があります。このボックスは、サイズ 0.5 A のグリッドに分割されます。距離と角度の基準に基づいて、ボルツマン確率分布に基づいてポイントを割り当てる必要があります。

グリッドを示す 3D ボックス内のタンパク質構造

私のプログラムは、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 のグリッドを定義する方法に完全に感銘を受けました。ボックス内のすべてのポイントを確認する方法。
どんな助けもかなりのものです。

4

3 に答える 3

3

PyRosetta の使用を検討しましたか? 必要な多くの関数が既に組み込まれているため、はるかに使いやすくなっています。PyMol でリアルタイムに出力を視覚化できます。私は PyRosetta で同様のスクリプトを作成しましたが、作成と変更がかなり簡単で、本来の目的を果たしました。

于 2013-09-19T10:19:44.847 に答える
3

あなたのトピック、質問、アプローチが大好きです。ここがいつまで続くかわかりません。

長方形空間内の 3D メッシュは、有限要素解析やその他の物理問題を解析するすべての手法で一般的です。メッシュがどのように生成されるかを見てみましょう。

通常、空間内の (x,y,z) 点のメッシュとそれらを接続するボックスの 2 つの部分があります。2 つの要素を持つ単純な 2D メッシュは次のようになります。

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

このメッシュには 6 つのポイントがあります。

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

と 2 つのボックス:

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

したがって、可能なアプローチの 1 つは、すべてのボックスを反復処理し、重心の位置を確認し、それに応じて調整することです。

コードからメッシュ定義を外部化し、ファイルから読み込みます。そうすれば、同じコードで異なるメッシュを処理できます。

私の理解が正しければ、メッシュは空間に固定されたままになります。タンパク質自体の動きをランダム化しようとしています。これは、流体の問題、オイラーのアプローチのようなものです。つまり、固定されたコントロール ボリュームに対するマテリアルの動きを追跡します。ただし、液体ではなくタンパク質です。

したがって、空間内のタンパク質の初期条件も個別に定義されます。規則に従ってタンパク質がどのように折り畳まれるかを確認するために、時間をかけて増加させる予定です。

私は近いですか?

于 2013-09-19T10:00:17.933 に答える