2006年08月20日

MMTK: Energy Minimization

MMTKを使ってEnergy Minimizationを行ってみます。以下にそのコードを示します。

EM.py


それでは、順番にみていきます。

UniverseはMMTKにおけるシミュレーションの基盤となるクラスです。topology、boundary condition, force fieldなどの設定を行うことができます。

 universe = InfiniteUniverse(Amber94ForceField())

分子(タンパク質)の読み込みは、Proteinクラスで行いました。'bala1'は、MMTKにはじめから含まれているもので、その実体は、$Python23\Lib\site-packages\MMTK\Database\PDB\bALA1.pdbです。ファイル名を指定してPDBを入力することもできます。

 universe.protein = Protein('bala1')

今回は、Energy Minimizationを2つの最適化手法で実施しています。
まずは、SteepestDescent(SD)です。StandardLogOutputでPotential Energy等の情報が50step毎に表示されます。SDのステップ数は200です。

 minimizer1 = SteepestDescentMinimizer(universe, actions =   [StandardLogOutput(50)])
 minimizer1(steps = 200)

次に、ConjugateGradientで最適化です。SDと使い方はほぼ同じです。

 minimizer2 = ConjugateGradientMinimizer(universe, actions = [StandardLogOutput(50)])
 minimizer2(steps = 100)

最後に、EM後の構造を表示します。拡張子(.pdb)と関連付けされたソフトウェアが起動し、構造を表示させます。

 view(universe)

プログラムを実行すると、以下のような結果が表示されると思います。

SteepestDescent
Step 0
Potential energy: -80.205828, Gradient norm: 809.115225

Step 50
Potential energy: -110.589675, Gradient norm: 62.273830

Step 100
Potential energy: -111.893701, Gradient norm: 64.541604

Step 150
Potential energy: -112.424998, Gradient norm: 67.033451

Step 200
Potential energy: -112.810568, Gradient norm: 62.190661

ConjugateGradient
Step 0
Potential energy: -112.810568, Gradient norm: 62.190661

Step 50
Potential energy: -116.103856, Gradient norm: 16.267230

Step 100
Potential energy: -116.504514, Gradient norm: 21.127653



banner_02.gif
人気ブログランキング(クリックして応援してね)


posted by わばのり at 06:29| Comment(0) | TrackBack(0) | MMTK | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。