現在位置: ホーム torrent No.8 日本語版 ERmodの開発者・松林さんと桜庭さんに聞く

ERmodの開発者・松林さんと桜庭さんに聞く

アプリケーション開発の最前線から 第6回

 

私たちは身の回りの物質のさまざまな機能を利用している。例えば、おむつに使われる吸水性高分子には水分子を吸着したり離したりする機能があり、電池の正極や負極には電子を取り込んだり離したりする機能がある。物質の機能を1つの枠組みで計算し、「未知の機能」を予測することができないだろうか? こうした課題に取り組むアプリケーション ERmod(イーアールモッド) を紹介する。

「溶ける・混ざる」化学からアプローチする物質の機能
 ERmodの生みの親である松林さんのアイデアは、「溶ける・混ざる」という概念を拡張すれば、物質の機能を統一的に理解できるのではないか、というものである。例えば、吸水性高分子の例では、水分子を「溶質」、それらが取り込まれる環境である高分子を「溶媒」ととらえ、「水分子が高分子に取り込まれる」現象を「溶質(水分子)が溶媒(高分子)に“溶ける”」と考える。同様に、電子が取り込まれる化学反応(還元反応)では「電子が分子に“溶ける”」と考える。これらの考え方は、単なる言い換えではない。溶液の分子レベルの描像と「溶ける・混ざる」現象とをつなぐ「溶液理論」を適用して、個々の粒子の動きを追いかけるだけでは難しい計算を高速にできる、という非常に大きなメリットを生む。このような大胆な発想の転換から生まれたのがERmodである。

ERmodの誕生
 実は、松林さんは、もともとは液体を研究する実験化学者であった。「実験と計算を組み合わせて安全かつ効率的に研究を進めたい」。そう考えた松林さんは、分子動力学(MD)法を用いたシミュレーションに取り組み始めた。MD法とは、原子や分子1つ1つの動きを時間で追っていく計算手法である。ところが、実験に役立つ結果が、なかなか得られない。実験を再現し、さらには予測できるような計算手法をつくりたい、そんな思いがERmodの原点であった。
 実験と計算を比較するためには「自由エネルギー」という量を計算するのが王道である。自由エネルギーとは、分子や原子の集団の全体としての安定性の指標である。この自由エネルギーが重要なのは、この値が集団としてのさまざまな変化、例えば物質の溶解や化学変化、の起こり具合を決めるからである。しかし、MD法だけから自由エネルギーを計算しようとすると非常に時間がかかる。これは、図1の上段に示すように、変化の起こる前の状態(始状態)と変化が完全に終わった後の状態(終状態)だけで計算すればよいのではなく、中間の多数の状態に関しても計算が必要なためである。そこで松林さんが着目したのが、系の分子レベル情報から自由エネルギーを構成できる「溶液理論」である。溶液理論によると、あるパラメータに関する分子のヒストグラム(分布関数と呼ばれる)を入力すると自由エネルギーが求められる「関数」(これは関数を入力とする関数なので「汎関数」と呼ばれる)をつくることができる。つまり、始めと終わりの状態でMD法からヒストグラムを計算し、それを適切な汎関数に放り込めば自由エネルギーの変化がわかるので、各中間状態での計算をすっとばし、短時間で自由エネルギーが計算できるはずである(下図 "ERmodの計算方法")。
 次の問題は、何についてのヒストグラム(分布関数)を使えばいいのかという問題である。分布関数として初めに考えつくのは、位置情報に関する分布関数であろう。しかし、膨大な位置情報(N個の分子に対して、最も単純な場合でも3N個のパラメータがある!)のうちどういった分布関数を使えばいいのかは自明ではない。悩んでいた松林さんはある日、位置情報ではなく分子間の相互作用エネルギーについての分布関数を使う方法を思いついた。「眠りから覚めたときにふとアイデアが頭に浮かび、後は式を書き下すだけでよかった」と、そのエキサイティングな瞬間を語ってくれた。さらに、このエネルギー分布関数を使えば、不均一な系や分子内自由度のある系なども扱えるなど、いくつものメリットがあることもわかった。この「コロンブスの卵」的な発想は驚きをもって迎えられたようで、さる高名な先生の「これほんまにお前がやったんか」という驚きのコメントが松林さんの記憶に強く残っている。

 このアイデアを実際にプログラムにしたのがERmodである。2000年代の終わりころまでには、ERmodはさまざまなMD計算ソフトにモジュールとして組み込まれて使われるようになった。ちなみに、ERmodという名前はEnergy Representation(エネルギー表示)の頭文字ERとモジュールを意味するmodを組み合わせて生まれたもので、モジュール時代の名残を残している。

独立のソフトウェアへ発展
 ERmodの重大な転機は桜庭さんが開発に加わったことによって訪れた。桜庭さんは、かつてITベンチャーで働いていたこともあるソフトウェア開発者であり、生体高分子の計算に取り組んできた理論化学者でもある。「近年の計算機やMD計算法の急激な多様化を考えると、MDソフトのモジュールとしてERmodを続けていくのは難しくなっていくのではないか」。こう感じた桜庭さんは、モジュールから脱皮して独立のソフトウェアとする大改革に取り組んだ。まず、もともとはFortranで書かれていたERmodであったが、独立のソフトとして多くのMDソフトと連携ができるように、CやPythonを併用して外部プログラムとの連携機能の強化が図られた。もちろん、核となる計算部分にも並列化などの改良が加えられ、実に1000倍もの高速化が実現した。また、ドキュメントを充実させたり、エラーメッセージを整備したり、さまざまな環境で簡単に実行できるようにするなど、利用者の利便性を図るための裏方的な仕事にも多くの努力を払った。さらにユーザーの裾野を広げるため、プログラムをソースコードも含めて完全にWebに公開した。今では世界中からダウンロードされて使われている。
「こちらの提案を松林先生がほとんど受け入れてくれて、逆に心配になるくらいだった」と桜庭さん。松林さんも、「共同研究ではまず相手を100パーセント信じるところから始めることにしている」と語る。二人の信頼関係がERmodのさらなる飛躍を成功させた原動力となったのだと感じられた。

ERmodの「選択と集中」の効果
 ERmodの特徴をひと言でいうと、「選択と集中」だと思う。実空間の情報はある意味で捨ててしまって、実験に重要な自由エネルギーの高速算出に注力する。ここには「実験に役に立つプログラムでありたい」という松林さんの初期からの開発哲学が反映されている。また、分布関数の計算にMD計算を利用するのも特徴である。分布関数の計算も独自に行って誤差が収束するまで反復するというやり方も当然ありえるのだが、ERmodではそこは既存のMD計算プログラムに投げてしまって、自由エネルギー計算の高機能化に集中している。重要なのは、それでも構わないという背景がきちんとある点だ。つまり、変分原理という原理によって、MD計算の誤差が自由エネルギーに反映されにくい仕組みに自然となっているのである。
 ERmodの「選択と集中」の効果は、実際の成果に如実に表れている。例えば、溶質が溶媒に溶ける前後の自由エネルギーの変化を計算すると、通常の厳密法に比べて数十分の一の時間で、厳密計算と比べても遜色のない確度で計算できる。今では、例えば東レとの共同研究(7ペ-ジの記事を参照)で吸水ポリマーの設計に使われているし、図2に示すタンパク質の運動解析などさまざまな応用例で大きな成果が上がっている。


裏方作業の評価が大きな課題に
 桜庭さんは、「日本の学術アプリケーションがあまり世界的に有名にならないのにはドキュメントが整備されていないという問題が大きい」と語る。また、「エラーメッセージの整備は、ユーザーのためだけでなく、長い目で見れば開発者の負担軽減につながる」と、プロらしい視点も見せてくれた。しかし、これらの作業に対する評価方法は確立されていない。これが問題だと、松林さんも桜庭さんも揃って口にしている。
 私自身も実験に使うプログラムを開発しているので共感できるのだが、プログラムを説明するドキュメントを整備したり、エラーメッセージを充実させたりするのは非常に面倒だ。にもかかわらず評価対象にされにくい。実験系でたとえると、実験室の棚の整理や廃棄物の処理などと似ている。こういった裏方的作業を、研究者の業務の一環として正しく評価し、「まじめな人が馬鹿をみる」ことがないようにするにはどうしたらいいのか? 学術アプリケーションの開発に限らず、あらゆる研究分野において重要な課題になっていると感じる。

ERmodの未来
 ERmodは今後どのように発展していくのであろうか。まずは、大型計算機での利用拡大が目標になる。例えば、「京」で使うための方法はWebに完全に紹介されている。また将来的には、大型計算機に初めからインストールしてもらえるようにプログラムを整備していく。実現すれば、理論化学に詳しくないユーザーへも裾野が広がり、生物や電池といったより広範なシステムへの応用につながるだろう。
 一方、理論面の進歩もさらなるERmodの進化には不可欠である。例えば、状態の時間変化の情報を計算できれば、ある分子の会合状態の寿命がわかったり、電気伝導度が計算できたりと、より応用範囲が広がる。さらに、より大きな対象の計算を目指し、「粗視化」のテクニックを組み込めないかと松林さんは考えている。これは、例えば100個のモノマーからなるポリマーを考えたときに、モノマー10個の塊が10個あるとして計算を高速化する手法である。これらの進歩によって、さらにERmodの応用範囲は広がっていくにちがいない。
 松林さんのひらめきと桜庭さんのソフトウェア開発手腕のハーモニーで進歩してきたERmodの、さらなる発展に期待したい。

松林 伸幸

まつばやし のぶゆき

ラトガース大学でPh.Dを取得した後、京都大学の化学研究所へ。現在は同研究所の准教授を務める。もともとは超臨界水の実験研究を行っていたが、理論研究へ重心を移した。ERmodの基になっているエネルギー表示の汎関数理論の定式化に関しては、文部科学大臣表彰若手科学者賞をはじめとして、多数の受賞歴がある。愛娘の幼稚園や小学校での工作を研究室にたくさん飾っている、良きパパでもある。

Matsubayashi
Sakuraba

桜庭 俊

さくらば しゅん

東京大学大学院で情報生命科学博士を取得。タンパク質のシミュレーションに関する研究を行ってきた。また、東京大学在学中に同期生の設立したベンチャーに参加し、コンパイラ開発に携わったこともあるくらいにプログラミングが得意。現在は日本原子力研究開発機構で博士研究員として研究を進めながら、ERmodの開発も積極的に主導している。

◆インタビュー後記◆

米澤 進吾

よねざわ しんご

私は超伝導の実験研究をしており、理論化学に関しては素人である。今回のインタビューでは、お二人の非常に丁寧な説明でとてもよく内容が理解できただけでなく、アツいお話で盛り上がりあっという間に予定の時間をオーバーしてしまった。おおらかな印象の松林さんと、まじめな感じの桜庭さんのコンビはとてもしっくりしていて、いいチームなのだという雰囲気が伝わってきた。

Yonezawa