by 岐阜大学大学院医学系研究科 組織・器官形成分野 手塚建一
生体シミュレーションについてくどくど説明するより、まず一つ作ってみましょう。僕は古いMacにおまけで付いて来たHyperCardというプログラミング環境が好きなんですが、とりあえずいろいろなコンピュータ上で動くC言語を使って簡単なプログラムを組んでみます。コンピュータ=インターネットから一歩進んだ使い方です。例は、膜のイオン透過性が膜内外の電位差を作るという簡単なシミュレーションです。
用意するもの
パソコン(C言語でプログラミングできればなんでも/MacOSXかLinuxマシンが良いと思います) C言語プログラミングに関する入門書(自分のマシンに合ったもので、何よりも勉強する気を起こさせるもの) 実は、プログラムを組んだ事が無い人にとって、上の2つはかなりの難関のはずです。OSが入っていないPCを用意して、Linuxをインストールすればそれで済むのですが、いろいろとトラブルが起き、なかなか動いてくれないかもしれません。大学のUNIXマシンを使うのもひとつの方法です。最近のMacOSXには、Xcode ToolsというCDがおまけで付いて来ますが、これをインストールして、Terminalでプログラムを行うのもオツな物です。Windows環境は良くわからないので、パス(笑)。
とにもかくにも、なんとか自分でC言語でプログラムを作れる環境を整える事ができたら、既にあなたはプログラマーです。コンピュータの華やかな上っ面から、一歩中に入った事になります。プログラムを組むというのは、海に潜るのとちょっと似ています。波の上でサーフィンするのと、ダイビングの違いですね。地味だけど、奥が深いダイビングです。
さて、環境が用意できたら、早速プログラムを組んでみましょう。Linuxなら、
emacs simulation.cで、ファイルを作ります。最後の.cがCで書かれたプログラムである事を意味しています。Macならテキストエディットなどの使いやすい文章入力ツールを使って、普通にファイルを作って下さい(僕の好みはミミカキエディットです)。それでは、コメント文でタイトルなぞ付けてみましょう。
/* My Simulation 1.0 */
/* Programmed by K. Tezuka */
/* 2004/7/14 */自分の名前と日付を付けておくと、自分で作ったぞという主張ができます。/*と*/で挟まれた部分は、プログラムとしては何もしないので、好きな文章を入れられます。
次に、環境に組み込まれたツールを使える様にしておきます。基本入出力(printfなど)と計算用ライブラリ(平方根などが計算できる関数が含まれる)をリンクしておけば良いでしょう。
#include <stdio.h>
#include <math.h>この2つを入れる事で、シミュレーションに使うための道具が使える様になります。簡単でしょ?
次に変数を作ります。ここで作った変数は、プログラム全体で使えるグローバル変数になります。必要になったらまた後で付け足しますから、とりあえず細胞内と細胞外のNaとKの濃度を、
double Nai, Nao, Ki, Ko;と定義しておきます。
では、いよいよプログラム本体です。
main()
{
printf("%f %f %f %f\n",Nai,Nao,Ki,Ko);
}日本語環境では\(バックスラッシュ)が¥(円)になったりします。ここまででとりあえずファイルを保存(Emacsならctrl-C-S)して、終了(Emacsならctrl-C-X)します。
コンパイル(cc)して実行プログラムを作ります。
cc -o simulation simulation.cこれで、simulationという実行プログラムが出来るはずです。何かエラーメッセージが出たら、プログラムファイルに間違いが無いか良く確認して下さい。意外とミスがあるのに気づくはずです。何もエラーが出なければ、
./simulationで実行させると、
0.000000 0.000000 0.000000 0.000000と出ますか?環境によってはランダムな数値が4つ出力されるかもしれません。
もし、うまく行かない場合は、今、simulation.cのファイルの中身は下の様になっているでしょうか?プログラム用のエディタを使うと、文の性格によって色分けがされるので、ミスを見つけやすいですね。
ターミナル上でコンパイルし実行した時には、下の様に表示されているでしょうか(環境によって見かけは異なります)。
最後に、変数は定義した時に値が0にセットされる事も多いですが、これは保証されないので、最初の定義の時に、初期値を入れておくと良いと思います。
double Nai=50.0, Nao=50.0, Ki=50.0, Ko=50.0;次に、実際の膜電位シミュレーションを作ってみます>膜電位シミュレーションへ