pirika logo

Home 化学 HSP 情報化学+教育 PirikaClub Misc.
情報化学+教育トップ 情報化学 MOOC YMB MAGICIAN MAGICIAN Club

YMBトップ 古い化学プログラム

YMB講座(化学系プログラミング)

2020.8.14改訂 2020.2.7

講義資料 非常勤講師:山本博志

日本でHSPiP(Hansen Solubility Parmeters in Practic[実践ハンセンの溶解度パラメータ])を販売し始めて10年以上になる。多くのユーザーがHSPiPを利用して、特許、論文を書いてくださるので、知名度もとても高くなってきた。

ユーザーのフィードバックを元に機能を拡張してきたので、できる事が増えた。また、逆に、誰も使わない機能は容赦なく切り捨てられてきた。

実際には日本からのフィードバックはほとんどない。すると、これまで使ってきた機能が、「バージョンアップと共に使えなくなった」という事も頻繁に起きている。

欧米系の研究者のフィードバックにより、欧米系の研究者が使いたい機能が搭載されていくというのは、日本人の開発者としては歯痒いことである。

このHSPiPの中に、山本の作成したYMB(Yamamoto Molecular Break)機能が搭載されている。元々は、名前の通り「分子を分割するアルゴリズム」である。SMILESの分子構造式を原子団に分割する。それと物性推算機能を組み合わせたので、YMBは物性推算法と考えている人も多くいる。


最近は、マテリアルズ・インフォマティクス (MI)の識別子ジェネレーターとしても盛んに用いられるようになってきた。

材料ゲノムやMIをやろうとした時には目的変数と説明変数が必要になる。
目的変数は文字通り、目的とする材料物性の値である。
説明変数はその材料物性を説明する変数である。

説明変数に原子団の数を入れるのは古くから行われている「原子団寄与法」という方法がある。

最近は、量子化学計算結果やトポロジカル・インデックスなどを入力する事が多くなってきた。
どんな分子も計算できるので説明変数として優れているのだが、目的変数との関係はニューラル・ネットワークの作り出すブラックボックスとなる事が多い。

溶解度パラメータというのは分子間力を表す1つの指標で、実験値から導き出される。

それを3次元に分割したハンセンの溶解度パラメータ(HSP)は、ハンセン先生、アボット教授、山本の三人がある意味「恣意的」に決めている値であり、実験値ではない。

しかし実用上は、HSPやYMBによる熱物性値推算値を用いたMI式は、情報の流れがはっきり分かる式になる。
YMBは他のMOOCMAGICIANの基礎となる技術なので考え方をしっかり学ぼう。

HSPiPを用いた様々な応用記事はpirika/ HSPで紹介している。自分のやりたいことと似たものが無いか探してみよう。

YMBの基礎

物性推算機能、YMB(Yamamoto Molecular Break)は、溶解性を扱うときに、HSPだけでは足りない機能、例えば蒸気圧などを取り扱うために搭載された。元々は、名前の通り「分子を分割するアルゴリズム」である。SMILESの分子構造式を原子団に分割する。

例えばJOBACK法を用いて臨界定数を推算しようとしたときに、各分子の原子団の数が必要となる。
Van Krevelen法を用いてポリマーの物性値を推算したいときには、高分子に含まれる原子団の数が必要になる。
気液平衡を推算する場合にはUNIFACの原子団の数が必要になる。
様々な推算式が必要とする原子団は、種類と加算値が異なるので異なるテーブルを用意しなければならなかった。

実際に原子団寄与法で推算式を構築していると、原子団を増やしたり減らしたりは頻繁に行われる。その度にテーブルを作り直す手間は非常に大きい。

また、間違った原子団認識、例えば、エステル基をケトン基とエーテル基のように間違って認識すると、意図とは全く違う結果を与えてしまう事がある。

YMBはそうした問題点を吸収してくれるので都合が良い。
物性推算式については、pirika.comの化学で扱う。
その解析ツールについては情報化学で扱っている。
それでは、YMBでは何を扱うのかというと、メインはプログラミングになる。

化学系プログラミング

山本は、高校の時カシオのFX-502Pを入手して以来、プログラムを作り続けてきた。

いわゆる、職業プログラマーでは無い。
メモリーの使用量を下げるとか、高速化などはほとんど興味がない。
自分の専門である化学を助けるためだけのソフトが、望むべくはMac, Windows, Linuxで動作してくれれば良い。

開発言語をJAVAに切り替えたのは、Appleがやばくなたっ時に、ソフト資産を守ためだ。
まだ、生まれたてのJAVA言語は、意図しない動作(言語のバグ?)もあり、それが私のプログラミング上のバグなのか分からずに随分苦労した。OSの出来も悪く、すぐにクラッシュした。

だから私のプログラミングのやり方は、非常にシンプルな機能しか使わない。化学の実験と同じように、あーしてみて、こーしてみてを繰り返し、何となく動くようにしてしまう。

だから、プログラミングの専門家を育成することはできない。
あくまでも、化学の専門家が、化学現象をコンピュータで扱うのに必要なプログラミング・スキルを身につけるのを手伝うだけだ。

マイコン、パソコンの聰明期には、良い本が沢山あった。
また、逆にそうした本に載っているプログラムを自分で打ち込まない限り、パソコンは(ゲーム以外)何もできなかった。

今は、Excelを使ったXXXとか、Pythonを使ったXXXで、プログラムなど作成する必要性すら無くなってきた。
逆いいえば、「こんな事がしたい」その為には「XXXを実現する必要がある」と考える力が極端に衰えてしまっているように思える。のび太はしょうもない奴だけど、「こんな事がしたい」があるから、ドラえもんは助ける事ができる。

「こんな事がしたい」に対して、逆さ引きの書籍を利用していく。
それを進める前に、どんな事ができるのか「化学系の例題」を見ておくのは悪く無いと思う。その先の何かがインスパイアーされるかもしれない。
昔からPirikaに置いてあったものだが、リニューアルの際に欠落していたものだ。


Copyright pirika.com since 1999-
Mail: yamahiroXpirika.com (Xを@に置き換えてください) メールの件名は[pirka]で始めてください。