2014年度学術交流支援資金 外国語電子教材作成支援

研究成果報告書

科目名:バイオシミュレーション1

所属:環境情報学部

氏名:内藤泰宏

 

背景と目的

「バイオシミュレーション1」は、新カリキュラムで導入された4学期制に則したクォーター科目として、2014年度に新設された科目である。この科目は週2コマ×7週の形態で開講する2単位科目であり、別々の曜日に週2回1コマずつを開講し(週1回2コマ連続ではない)7週で終了するという、これまでSFCにはなかった開講形態をとっている。科目区分は基盤科目であり、新入生も含む初学者が本来の学習目的に容易にアクセスし、集中できるような教材を整備することが望まれる。

授業は特別教室で行い、授業中に用いる数値シミュレーション実行のためのソフトウェアとして、我々の研究室で開発してきた細胞シミュレーション環境 E-Cell System Version 3E-Cell3)を用いる。E-Cell3 は、数値計算などのコア部分を C++ で、ユーザインターフェイスとなる階層を Python で開発しており、Python 言語を用いてユーザが通常必要とする全機能にアクセスすることができる。「バイオシミュレーション1」の旧科目にあたる「バイオシミュレーション」(週1回連続2コマ×1学期、4単位)でも教材に用いており、SFCの特別教室の端末(iMac)にもインストールされている。

旧科目では、理論面の講義と、ハンズオン形式の実習を組み合わせて、特に授業前半では簡単なモデルの構築を中心に授業を組み立てていたが、新科目では、理論面の多くは「バイオシミュレーション2」に譲り、入門篇となる「バイオシミュレーション1」は、モデルのシミュレーションを実行し、結果を解析する基本的なスキルを身につけることに焦点を絞ることとし、モデル構築については敢えて中心的な目的から除外した。

本教材開発では、こうした方針、計画に沿って、初学者にとって見通しの得やすい(混乱しにくい)実習環境を構築した。

 

開発した教材の内容

Python は自然科学研究に幅広く利用されているプログラミング言語のひとつで、モジュールから統合アプリケーションまでさまざまなソフトウェアを利用することができる。E-Cell3 を中心に、さまざまなソフトウェアをスムースに往き来し、シミュレーションの実行、結果の解析、可視化といったプロセスを流れを把握しやすい形式で、途切れなく進めていける環境を構築した。

そのために、IPython notebook を利用した。IPython 2001年にはじまったプロジェクトで、科学技術計算分野で Python を利用する上で非常に有用なツールとなっている。IPython のコアとなっているのは優れたユーザ支援機能を持った対話型シェルである。これに加えて、可視化機能を備えた GUI コンソール、そして2011年に始まったプロジェクトで、Web ブラウザから利用できる対話的ノート形式の IPython notebook が提供されている。IPython notebook の実態は軽量の HTTP サーバで、ローカルで起動することも、クラウドサービス上で稼働することもできる。Webサービス上のノートで、コード作成、実行、可視化そしてプレゼンテーションまでを一元的に行うことができ、json形式で保存されるノートを他のノート内で再利用することもできる。

プログラミングを学ぶ初学者にとって学習障壁を下げる仕様が整っているとともに、OSとの親和性、デバッガ機能、プロファイリング機能等にも優れており、上級者にとっても有用である。

本教材開発では、E-Cell3 の全機能を IPython から利用可能にするソフトウェアを IPython の機能拡張(extension)として開発した。

また、生命科学領域の数理モデルを集積した実用的なデータベースとして、現在、BioModelsPhysiomeプロジェクトの2つが公開されており、それぞれ数百の数理モデルが登録されている。モデル記述には、BioModelsSBMLSystems Biology Markup Language)、PhysiomeプロジェクトはCellMLという独自の異なるXMLベースの記述様式を採用している。E-Cell3 では、EMLE-Cell Model Description Language)という、やはり独自の軽量のXMLベースの様式を用いている。

本教材開発で、SBMLEML および CellMLEML の相互コンバータ(それぞれ ecell3-sbml2eml, ecell3-cellml2eml)を開発した。また、E-Cell3 本体の数値計算コアの機能も拡張した。SBMLCellML では、モデル中の数式の記述に MathML を採用しているが、それぞれ、許される数理表現の範囲が異なる。変換したモデルを、E-Cell3 でシミュレート(数値計算)するためには、SBMLCellML で記述できる数理表現を、E-Cell3 の数値計算エンジンで計算できる必要がある。E-Cell3 ではモデル中の数式の解釈と実行を担う軽量の仮想マシンを実装しているので、その機能を SBMLCellML の双方に準拠するよう拡張した。

 

授業での利用

開発した教材のうち、秋学期の授業に間に合ったものは、2014年度「バイオシミュレーション1」で実際に利用した。もくろみ通り、初学者であっても、〔既存の数理モデルの取得→シミュレーション→結果のグラフなどによる可視化〕といった一連のプロセスを、Web 上の操作だけで円滑に実行、保存、再利用できた。

授業中の課題もIPython notebookファイルで配布し、このファイルを直接改変して提出させることで、課題の評価、履修者相互の閲覧を効率化することができた。

また、IPython extensionのバージョンアップはwebよりダウンロードして特別教室の環境で利用することができ、ソフトウェアの更新をITCに依頼する必要がない。そのため、細かいバージョンアップ、デバッグをリアルタイムに授業に反映することができた。

今年度の利用経験を踏まえ、来年度以降、今年度は実装できなかった、ルーチン的な作業を効率的に実現するマジックコマンドを実装するなど、初学者向けの利用と導入が容易な教材としてより洗練させていきたい。

 

教材の入手先

 

E-Cell System Version 3

https://github.com/ecell/ecell3

シミュレーション環境本体。ecell3-sbml2emlを含む。

 

E-Cell IPython extension

https://github.com/naito/ecell3-ipython

IPythonIPython notebook)から以下の手順で読み込むことで利用できる。

% install_ext https://raw.githubusercontent.com/naito/ecell3-ipython/master/extensions/ecell3.py
% load_ext ecell3

 

ecell3-cellml2eml

https://github.com/naito/CellML2EML

2015年2月27日時点で、実装が完成しておらず、変換はできるが、シミュレーション可能なEMLにするためには、いくつかの要素を別途書き加える必要がある。