2006年08月23日

MMTK: Normal Mode Calculation

MMTKを使ってNormal Modeの計算を行ってみます。Energy Minimizationの後、以下の作業で計算できます。

 #Normal Modes
 modes = NormalModes(universe)

 #Print mode
 for mode in modes:
  print mode

 #View
 view(modes[6])

ここでは、以下のモジュールのimportが必要となります。

 from MMTK.NormalModes import NormalModes

最後のviewで各モードを分子Viewerで視覚化でき、とても便利なのですが、Windows上で実施する場合、いくつか注意点があります。まずは、環境変数PDBVIEWERに分子Viewerの名前を指定します。現在は、アニメーション表示可能なViewerとしてXmolとVmdをサポートしているようです。ここでは、vmdと設定します。そうすると、MMTKは、Tempフォルダ下にvmd script、pdb、dcdの3つのファイルを出力します(Tempフォルダは、環境変数で各自設定されている場所です。通常はLocal Settingsフォルダ下だと思います)。

うまく動作すれば、vmdが自動起動され、vmd scriptを読み込み、アニメーション処理となるのでしょうが、私の環境?では、vmdが一瞬起動し、終了してしまいます。vmd scriptを見るとファイルの指定が以下のようになっていました。

 c:\temp\tmpbjpved

このファイル指定を以下のように変更します。

 c:\\temp\\tmpbjpved

変更後、vmdを立ち上げ、プロンプトからscriptを実行すれば、アニメーションが無事、表示されます。


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

posted by わばのり at 11:43| Comment(0) | TrackBack(0) | MMTK | このブログの読者になる | 更新情報をチェックする

2006年08月21日

MMTK: Energy Minimization その2

Energy Minimizationのパラメータはsteps以外にもstep_sizeとconvergenceがあります。それぞれdefault値は以下のとおりです。

step_size = 2 pm
convergence = 0.01 KJ/mol/nm

MMTKでは単位の記述はUnitsモジュールを利用すると便利です。

 from MMTK import Units

具体的にEMのパラメータ設定は、以下のように記述することができます。

 minimizer(steps = 200, step_size = 0.04*Units.Ang, convergence = 0.02*Units.kJ/(Units.mol*Units.nm))


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

posted by わばのり at 19:24| Comment(0) | TrackBack(0) | MMTK | このブログの読者になる | 更新情報をチェックする

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 | このブログの読者になる | 更新情報をチェックする

2006年08月17日

MMTKのインストール

The Molecular Modelling Toolkit (MMTK)は、分子モデリングに関連する計算を行うためのPythonの拡張ライブラリです。MMTKは私にとって、Pythonを覚えるきっかになったライブラリです。ここ3-4年全く使っていなかったのですが、最近?Windows版とMacOS X版のbinary installersが公開されたようです。はじめはWindows版と言ってもCygwin上で動くのかなと思ったのですが、そうではありませんでした。MMTKは、MD,MMを手軽に体験できる便利なツールですので、興味のある方はぜひ使ってみてください。

それでは、Windows(XP)にMMTKをインストールします。

1. Pythonのインストール
 Windows版のPython 2.3.4日本語環境用インストーラを利用します。

2. pywin32インストール
 pywin32-209.win32-py2.3.exeをインストールします。

3. netCDFのインストール
 NetCDF 3.6.1のprecompileされたWindows DLLを取得し、展開後、ファイルをC:\WINDOSW\SYSTEM32以下にコピーします。

4. Numericのインストール
 Numeric-24.2.win32-py2.3.exeをインストールします。

5. ScientificPythonのインストール
 ScientificPython-2.4.6.win32-py2.3.exeをインストールします。

6. MMTKのインストール
 やっとたどり着きました。MMTK-2.4.4.win32-py2.3.exeをインストールします。

注意すべきところは、各ソフトウェアのバージョンで、組合せによってはMMTKが動作しない場合があります。今のところは、私の環境では、上記バージョンの組合せで動作しています。MMTKのサイトにExamplesがありますので、まずはこれを利用して動作確認することができます。


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







posted by わばのり at 07:54| Comment(0) | TrackBack(0) | MMTK | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

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