背景と目的
学部先端導入科目「バイオシミュレーション」では、本キャンパス先端生命科学研究会(冨田、板谷、金井、曽我、斎藤、内藤)で開発した細胞シミュ
レーション環境E-Cellを用いて演習を行っている。
現在配布されているE-Cell Simulation Environment バージョン 3.2(以下
E-Cell3)は、C++で記述されたコアライブラリ(libecs)をPythonで記述されたインターフェイス層でラップしている。SFCの特別教
室のMac OS X環境にも、MacPortsのパッケージとしてインストールされている。
Mac OS Xには、初学者にも比較的学習障壁の低い開発環境Xcodeが付属しており、美しいGUIを備えたソフトウェアを簡単に開発できる。Xcodeの主たる開発言語であるObjective-CとPythonのブリッジにPyObjCがある。
本年度は、PyObjCを用いてXcode上で開発したGUIからE-Cell3を制御するプログラムを開発した。このプログラムを改変し、機能を変更・追加する演習を通して、E-Cell3のアーキテクチャを理解し、効率的に利用するためのGUIを考案する学習機会をつくりたい。
成果と展望
年度中にリリースしたE-Cell3の最新版(バージョン3.2.1)をMacPortsのパッケージとしてインストールするためのPortFileを作成した。特別教室の環境には、湘南藤沢ITCにインストールを依頼し、このバージョンにアップデート済みである。なお、2011年1月にバージョン3.2.2をリリースしたので、2012年度の講義にはその時点での最新版にアップデートする計画である。
Xcode上で、以下の要素からなるE-Cell3の制御プログラムを開発した。
- コントローラ:数理モデルを記述したファイルを読み込み、シミュレーションの実行、停止などを行う。
- モデルブラウザ:読み込んだモデルの構造を閲覧するためのウィンドウ。ここからモデル内の要素を選択し、時系列の表示、データの保存のためのインターフェイスを呼び出すことができる。
- トレーサー:選択したモデル中の要素の時間変化をグラフ表示する。
- ロガー:選択したモデル中の要素の値を記録し、ユーザの要求に応じて保存する。
プログラムは、Xcode上でPyObjCを用いて記述した。E-Cell3のソースには一切改変を加えていない。イベントハンドラ等、初学者には難易度
の高い要素については、単純なメソッド等から利用できるように隠蔽した。また、コントローラにはPythonインタプリタ機能を実装し、Pythonによ
る制御も可能とするとともに、GUI操作についても、行った操作に相当するPythonスクリプトをバッファに蓄積し、ユーザが行った操作の実態を確認で
きるようにした。この機能によって、ユーザはGUIによる操作とスクリプトを用いた操作の間を往還し、E-Cell3を用いたシミュレーションセッション
の構成を学ぶことができる。実行画面を下に示す。
これと平行して、iOSからE-Cell3を操作するためのアプリケーションの開発も進めている。iOSを搭載する機器で独立して数値シミュレーションを
実行する意義は少ないので、ネットワークを介してサーバ上のE-Cell3を制御し、シミュレーションの実行、結果のブラウジングを行うためのアプリケー
ションとして設計している。
いずれのプログラムも、現時点で初学者レベルの履修者に配布できるレベルには達していないので、2012年度秋学期の開講までにより洗練し、授業に供したい。