PyOMES:生化学プロセスを手早く組み立てられるオープンソースのPythonツール
この論文は、PyOMESというPythonベースのオープンソースソフトウェアを紹介します。PyOMESは、動的な過程(時間で変化する現象)も定常状態も含めて、生物学的・化学的なプロセスを一つの枠組みでモデル化しやすくすることを目指しています。目標は、モデリング経験の少ない実験者や学生から熟練の開発者まで幅広い利用者に使ってもらうことです。
著者らは、PyOMESをオブジェクト指向のPythonパッケージとして設計しました。中心になるのはSimulation(シミュレーション)オブジェクトで、そこにControlVolume(制御体積)、Phase(相)、Species(化学種)、Reaction(反応)といった要素を組み合わせてモデルを作ります。制御体積は空間の一区画を表し、質量やエネルギーの収支を自動でチェックできるように設計されています。
設計の柱は「モジュール化」です。概念的なモジュール化では、化学反応や輸送といった異なる現象を分けて扱えるようにしています。空間的なモジュール化では、制御体積をつなげて多区画系(たとえば消化槽やカラム)を作れます。熱力学の前提はThermoFrameworkという専用オブジェクトで一元管理します。質量輸送は物理的輸送と化学的輸送に分け、時間的には速い過程を代数的に、遅い過程を常微分方程式(ODE:ordinary differential equations)で扱えるようにしています。
数値解法も二軸の仕組みで整理されています。各制御体積内の時間発展を解くStepSolverと、複数の制御体積や流れを含む系全体を扱うSystemSolverを分けることで、常微分方程式だけでなく微分代数方程式(DAE:differential algebraic equations)を含む状況にも対応しやすくしています。また、既存の数値ライブラリ(SciPy)の実装を利用するオプションも用意されています。論文中では、既存のベンチマークソフトウェア(PHREEQC)との比較で堅牢性を示したと報告しています。
このような枠組みは、実験者がpHやガス移動など環境要因を含むモデルを作りやすくする点で重要です。著者らはPyOMESを統一的なモデリング基盤に育て、コミュニティで改良していくことを目指しています。一方で注意点として、(bio)化学プロセスのモデリングは質量・熱力学・輸送・制御理論など多分野の知識を要するため、ソフトがあっても専門的な課題は残ること、そして本稿はパッケージの設計と数例のユースケースを示す紹介であり、実運用でのさらなる検証や拡張は今後の課題であることが明記されています。