Quick start guide for Hodgkin-Huxley model


Hodgkin-Huxley model[1]

例として,Hodgkin-Huxley 方程式にみられる平衡点の Hopf 分岐を (Iext,VNa)-パラメータ平面上で求めてみましょう.Hodgkin-Huxley 方程式 は

HH_eq1.png

として記述されます.また式中の HH_eq2.png 等の詳細は原著論文[1]または[2],[3]を参照してください.

次の3つのプログラムを作成し,順番に用いることによって計算を行います.

  1. PP
  2. FIX
  3. BF

環境設定

  • まずインストールを参考に BUNKI をインストールし,環境設定を行って下さい.
  • 補足.1
    • Symbolic Math Toolbox (MATLAB 追加パッケージ)を利用出来ない方は,デモ用として以下のサンプルを用意してあります.Hodgkin-Huxley モデルの分岐解析に必要な解析ツール,それら設定ファイルなどが 入った Project ディレクトリをひとまとめにしたファイルです.適当な場所に展開して下さい.
    • 注意:BUNKI コマンドで展開したディレクトリを読込むと SE が起動します.ここで system create を行うと,Symbolic Math Toolbox が無い場合はエラーを返されます.Symbolic Math Toolbox が無い場合は,プログラムの作成 の項は飛ばして,PP に進んでください.
  • 補足.2
    • プログラム BUNKI を展開したディレクトリ内にサンプル集を集めた sample ディレクトリーがあります.
      /BUNKI/Sample/Hodgkin-Huxley
      このディレクトリ下に置かれた種々のファイルは,以下の説明で使用される設定ファイルです.ファイルを読み込むことで,各フィールドに書き込む手間が省けます.用意された設定ファイルは以下の通り:
      • fileHH.sed : モデル方程式が記述されたファイル:SE 用の設定ファイル
      • fileEq_point.ppd : 安定平衡点の例:PP 用の設定ファイル
      • fileEq_point.fixd : Hopf 分岐を検出:FIX 用の設定ファイル
      • fileEq_point_Hopf.bfd : 平衡点の Hopf 分岐点用設定ファイル:BF 用の設定ファイル

プログラムの作成

これからの作業はサブ・ディレクトリで行うことにしましょう. ディレクトリの名前はなんでもよいです.まず MATLAB command window 内で以下を実行します.

>> BUNKI

実行後,Select BUNKI Project Directory という window が開きます.

project.png

ここで解析を行う Project を選択します. この段階では,まだ何も Project を生成していないので, Name 欄に識別用の Project 名を命名して OK ボタンを押します.ここでは,Hodgkin-Huxley (HH) 方程式の解析なので, Project 名を HH として話を進めます*1

project2.png

新規に Project を生成する場合,ディレクトリ(or フォルダ)を生成しても良いかを尋ねられます. Yes を選択して下さい. SE(system editor) が起動します.

startSE.png

さて,いよいよ解析プログラムの作成です*2

  • システムの記述
    • まず解析する方程式がどういった種類の系であるかを選択します. Hodgkin-Huxley 方程式は,4変数, 自律系方程式 ですので,Dimension は 4, type は Autonomous をチェックします.
    • Equations 欄に Hodgkin-Huxley 方程式のモデル方程式を記述します.その際,以下のルールに従って記述して下さい.
      • 状態変数:各状態変数は x[i], i = 1,2,...,n として下さい.すなわち,V->x[1]m->x[2]h->x[3]n->x[4] と読みかえて式を記述して下さい.
      • パラメータ: パラメータであることを識別するために, $ 記号でパラメータを挟む形で記述して下さい.例えば,$para$,$Vm$,$alpha$,etc,.$の記号で挟まれたものはパラメータとして認識されます.そのパラメータ名の命名は自由です.

        startSE2.png

  • 文法チェック&プログラム生成
    • 以下が入力終了後の様子です.方程式の記述に矛盾が無いかをチェックするために, check ボタンを押して下さい.文法チェックが行われます.

      startSE3.png

    • 文法チェックを行った後,エラーが無ければ,いよいよプログラムを生成します.どのプログラムを生成するかを右下の check ボタンで制御します.分岐曲線を求める為には,PPFIXBF 全てにチェックを入れて下さい.Create ボタンを押して下さい.プログラム生成を開始します.

      startSE4.png
      (a): システム生成開始時に status bar が表示される.

      startSE5.png
      (b): システム生成完了後,log window に正常生成のメッセージが出力される.



PP

ここでは,パラメータと状態の初期値を読み込んで位相面図を描き,安定な平衡点をつかまえます.

まず SE から PP(phase portrait) プログラムを起動しましょう. Program -> PP を選択します.

pp.png

描画 window とコントロールパネルが起動します.初回起動時には,描画 window は, (x[1],x[2])平面となっています*3.ここでは,描画 window の変更は必要ないでしょう.

pp2.png

次にコントロールパネルです.まず初期状態点を入力します*4.対応する状態(x[1],x[2],x[3],x[4])にそれぞれスタートさせたい初期点を記述します.ここでは原点(0,0,0,0)からスタートさせてみましょう!

描画の前にパラメータ値を記述することを忘れないで下さい.初回起動時には全てのパラメータに1 が入力されます.それでは,各パラメータを以下のように設定します.

parametervalue
Cm1
Iext5
VNa50
Vk-77
Vl-54.4
gK36
gNa120
gl0.3


それでは,Startボタンを押してシミュレーションを開始しましょう.原点からスタートした解軌道は,ある一点に収束していく様子が描かれたでしょうか?

pp3.png

パラメータはリアルタイムに変化することができます.取り敢えずパラメータ Iext を変えてみましょう.パラメータ Iext を増加することで平衡点の Hopf 分岐が発生します.この場合は,安定平衡点が Iext の増加と共に不安定化し,その後,安定なリミットサイクルが観測できるようになります.

pp4.png

次に,Iext を初期設定値 5 に戻してシミュレーションを再開します.この時,Plot 欄にある states flow にチェックを入れます.こうすることで,数値積分を行っている現在の状態変数値リストをリストボックス内でチェックできます.この例では,HH 系は安定平衡点へ収束していきますので,リストボックス内には,同じ数値が流れていくのを確認できます.

pp5.png

また,この時,Clear ボタンを押すことで,描画 window 内に表示されていた過渡応答分の軌道が Clear されて定常状態に達した時の様子を見ることができます.安定平衡点へ収束するため,描画 window 上では安定平衡点に相当する一点だけが表示されます.

pp6.png

それでは,この平衡点の分岐を調べてみましょう.パラメータを変化させた時の平衡点に対する固有値を評価します.この目的には FIX ツールが利用できます.FIX を動かす為の初期値を PP から与えます.ここで重要な事は,定常状態に至った時点での状態変数値,パラメータ値を FIX に与えなければならないということです.

定常状態へ至ったかどうかは,上述した states flow スイッチを入れて,状態変数値に変化がなくなったことを確認するか,Staus ボタンを数度クリックしてみて,リストボックスに表示される情報に変化が無いことを確認する必要があります.

pp7.png

変化がなくなった事を確認した後,メニュ−バーの Tools から, Export current status を選択します.この操作により,定常状態に至った時点での状態変数値,パラメータ値,その他の設定値が保持され,次のプログラムに引き継ぐことが可能になります(FIX の項目を参照).

pp8.png
(a): export 選択.

pp9.png
(b): 設定値の export 完了.

FIX

ここでは,パラメータを変化させて平衡点を追跡し,そのときの固有値を表示させることが目的です.

FIX 動作の設定値はユーザ側でそれぞれ調整する必要があります.ここでは簡単のために,そのまま動作させてみましょう.FIX プログラムは,PP プログラムで保持された値 (Export Current status) をデータを読み込んでニュートン法への初期値として実行するのが通常の方法です*5

まず PP コントロールパネルから FIX プログラムを起動しましょう. Program -> FIX を選択します.

fix.png

初回起動時には,各フィールドにはデフォルト値が入力された状態で起動します.

fix2.png

PP で求められた平衡点に関する情報を初期設定値としてインポートします.メインパネル Tools -> Import initial point を選択します.

fix3.png

選択後,PP を利用して得たパラメータ値,平衡点の座標値などが各項目に反映されます.

fix4.png

PPでパラメータ Iext を大きくすることで,系のダイナミクスに変化が起きることが解ったので,変化させるパラメータをIextとし、その増分ステップサイズを設定します.

fix5.png

Start ボタンを押して計算を開始します.計算開始と同時に,別ウィンドウが開きます.これは,Gauss 平面上のどの位置に固有値が位置しているかを示す図です.平衡点の Hopf 分岐の発生条件は,複素共役な固有値が"純虚数"になるときです.パラメータの変化とともに,ウィンドウ上の1対の固有値が"虚軸"へと近づいていく様子を観察できます.

パラメータを連続的に変化させていき,分岐点が検出されるとプログラムは停止します*6.上の例では,複素共役な固有値が純虚数となったため Hopf 分岐の発生を検出した様子を示しています.

fix6.png

停止した時のパラメータ値,状態変数値は分岐曲線を追跡するプログラム BF の初期点として利用できます.停止した際のパラメータ値などを BF 用に Export します.ここで Export BF point を選択すると,状態・パラメータ値,その他必要な設定値が保持されます.この保持された値を次のプログラムに引き継ぎます(BF の項目を参照).

fix7.png
(a): Export 選択.

fix8.png
(b): リストボックス内に Export した情報が表示される.

BF

ここでは,パラメータを変化させて分岐曲線を求めます.

BF 動作の設定値はユーザ側でそれぞれ調整する必要があります.ここでは簡単のために,そのまま動作させてみましょう.BF プログラムは,FIX プログラムで検出された分岐点での状態変数やパラメータ値を Newton 法の初期値として読み込んで実行するのが通常の方法です*7

まず FIX メインパネルから BF プログラムを起動しましょう. Program -> BF を選択します.

bf.png

初回起動時には,各フィールドにはデフォルト値が入力された状態で起動します.

bf2.png

FIX で求めた分岐点に関する各種の情報を初期値として Import します.メインパネル Tools -> Import BF point を選択します.

bf3.png

選択後,分岐の種類,平衡点かリミットサイクルか?などの付属情報が各項目に入力されます.(Iext,VNa) 平面上の分岐曲線を追跡することを考え,X パラメータとして Iextを,Y パラメータとして VNaにチェックを入れます.また step size,end などを設定します.計算結果をデータファイルとして残す場合は,Output に出力ファイル名を書いておきます.

bf4.png

ここまで設定が終われば,後は Start ボタンを押して分岐曲線の追跡を開始します.そのとき別ウィンドウとして,Eigenvalues window と Bifurcation diagram window が起動します.Eigenvalues window は,分岐曲線を計算している際,Hopf 分岐に対応する固有値だけではなく,それ以外の固有値の配置変化を視覚化する目的で表示されます.例えば,余次元2の分岐点が発生したことなどを視覚的に理解するために使用します.Bifurcation diagram window は,Hopf 分岐曲線を追跡していく様子をリアルタイムに確認するための window です.

bf5.png
(a):固有値配置図とリストボックスの様子.

bf6.png
(b):(Iext,VNa) 平面の分岐図.リアルタイムに計算結果を見ることができる.


参考文献


  1. A.L. Hodgkin and A.F. Huxley, A qualitative description of membrane current and its application to conduction and excitation in nerve, J. Physiol. (London), 117, pp.500-544, 1952.
  2. D. Hansel, G. Mato and C. Meunier, Synchrony in excitatory neural networks, Neural Comp. 7, pp.307-335, 1995.
  3. C. Koch, ed., Biophysics of Computation: Information Processing in Single Neurons, Oxford University press, New York, 1999




*1 Project 名は自由に命名出来ます.ユーザーが識別しやすい名前にすれば良いです
*2 サンプルディレクトリの下に fileHH.sed という SE 用の設定ファイルがあります.このファイルを読み込む事で,あとはプロクラムの生成をするだけの状態にすることが可能です.すなわち,これから行う諸々の設定を省略することができます.ファイルの読み込み方法は,SE設定ファイルを読み込むには?を参照して下さい.
*3 この設定は,コントロールパネル Setting から変更することが出来ます.
*4 サンプルディレクトリの下に fileEq_point.ppd という PP 用の設定ファイルがあります.このファイルは以下の説明にある平衡点をみるためのパラメータ設定や初期条件が保存された PP 設定ファイルです.あとは読み込んだ後にスタートボタンを押すだけでシミュレーションが可能です.ファイルの読み込み方法は,PPの設定ファイルを読込むには?を参照して下さい.
*5 一方,パラメータ,状態変数値が記述さたファイルを読み込んで実行する方法もあります.サンプルディレクトリの下に fileEq_point.fixd という FIX 用の設定ファイルがあります.このファイルは以下で説明される,平衡点のパラメータ設定や初期条件が保存された FIX 用の設定ファイルです.読み込んだ後にスタートボタンを押すだけで数値計算を開始することが可能です.ファイルの読み込み方法は,FIX の設定ファイルを読込むには?を参照して下さい.
*6 この動作の詳細は Setting から option パネルを動作させてコントロールすることが可能です.詳細はマニュアルまたは,個別対策マニュアルを参考にして下さい.
*7 一方,パラメータ,状態変数値が予め記述さたファイルを読み込んで実行する方法もあります.サンプルディレクトリの下に fileEq_point_Hopf.bfd という BF 用の設定ファイルがあります.このファイルは以下で説明される平衡点の Hopf 分岐曲線を追跡するためのパラメータ設定や初期条件が保存された BF 設定ファイルです.読み込んだ後にスタートボタンを押すだけで分岐曲線の追跡が可能です.ファイルの読み込み方法は,BFの設定ファイルを読込むには?を参照して下さい.

Attach file: fileeq_img01.gif 200 download [Information] fileHH-sample.zip 353 download [Information] fileEq_point_Hopf.bfd 449 download [Information] fileEq_point.fixd 449 download [Information] fileEq_point.ppd 448 download [Information] filefix3.png 410 download [Information] filestartSE3.png 397 download [Information] filefix7.png 391 download [Information] filepp7.png 414 download [Information] filepp3.png 421 download [Information] filebf5.png 405 download [Information] filepp6.png 400 download [Information] filebf.png 398 download [Information] filepp2.png 415 download [Information] filepp.png 450 download [Information] fileproject.png 415 download [Information] filefix2.png 404 download [Information] filebf4.png 407 download [Information] filestartSE2.png 400 download [Information] fileHH_eq2.png 397 download [Information] filefix6.png 404 download [Information] fileHH.sed 464 download [Information] filepp8.png 406 download [Information] filefix.png 407 download [Information] filepp4.png 404 download [Information] filefix4.png 410 download [Information] filestartSE4.png 422 download [Information] filefix8.png 407 download [Information] filebf6.png 403 download [Information] filefix5.png 408 download [Information] filebf2.png 411 download [Information] filestartSE5.png 397 download [Information] filebf3.png 416 download [Information] fileHH_eq1.png 415 download [Information] filestartSE.png 426 download [Information] filepp5.png 406 download [Information] filepp9.png 411 download [Information] fileproject2.png 412 download [Information]

Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2009-07-23 (Thu) 20:18:53 (3229d)