ChemPy -Optional dependenciesなしの場合-
背景
ChemPyを使ってみるにあたって、kinetics以外のExamplesのコードを走らせるのであれば、optional dependenciesは不要なはずなので、確認のため走らせてみました。
Installation
今回は、Windows 10のvenvの仮想環境にinstallしてみました。
まず仮想環境を作成、アクティベートして、
$ py -3.13 -m venv <my_venv>
$ cd <my_venv>
$ Scripts\activate.bat
この仮想環境にinstallします。
(my_venv)$ py -3.13 -m pip install chempy pytest
公式ドキュメントでは"python -3"でしたが、Windowsなので"py"としています。
なお、google colaboratoryの場合は、
!pip install chempy
でinstallできました。
ExamplesのコードをJupyter notebookに移す
DocumentationのExamplesのコードを、一つの例毎一つのセルにして、Jupyter notebookのセルにコピペしました。
"Working with units"の例のみ、"ValueError"の行より上と下でセルを分けました。
なお、単純にコピペしただけだと、当然">>> "や"... "が残るので、これは手動で消します。
また、貼り付け後、print文出力、その他出力結果が含まれているので、やはり手動で消しています。
Examplesコードを走らせる
検証の結果、想定していたように、以下のExamplesコードは、公式の動作例のように出力されました。
検証にあたっては、セルごとにrestart kernelしています。
今回は、 とりあえず走らせてみることが、第一の目標です。 従って、内容や備考については、今理解できている範囲、であり、間違い等がある可能性があります。
| Example | 内容 | 動作結果 | 備考 |
|---|---|---|---|
| Parsing formulae | 化学式を表現する。例では化合物名をunicodeのテキストや、LaTex記法、html記法で出力したり、分子量を算出したり | 動作例のように出力 | <化合物名>.compositionは辞書形式で、key 0 にチャージ、原子番号をkeyとして値に原子数 |
| Balancing stoichiometry of a chemical reaction | 反応式の出発系と生成系を指定すると、それぞれの化学種の量論を計算してくれる | 動作例のように出力 | |
| Balancing reactions | Eqiolibriumですが、基準とする化学種を指定して、連立の反応式や半反応式を統合してくれる | 動作例のように出力 | |
| Working with units | 単位の一貫性をチェックする | error含めて再現 | 将来的に変更される可能性のあるパッケージ、とのこと |
| Chemical equilibria | 水溶液での平衡反応の反応式、化学種のpKa、pKwを入力してと濃度を指定してpHなどを計算している | 動作例のように出力 | 2つ目のammoniaの例でも、1つ目でimportした、表下に記載したモジュールが必要。 |
| Concepts | 詳細未確認。「イオン強度などの概念を扱うための式や関数を持っている」とのこと。種々熱力学計算ができそう | 動作例のように出力 | |
| Properties | chempy.propertiesのモジュールに、現時点7種の物性が収載されていた | 動作例のように出力 | 文献で公開された数値や、熱力学計算による算出手順が収載されているようだ |
from collections import defaultdict
from chempy.equilibria import EqSystem
結構、できること多そうで、個別の機能については、(自分の)必要に応じて追々チェックしていくことにします。
総括
少なくともDocumentationのExamplesの範囲では、kinetics以外のモジュールは、「Windows and OS X へはpipでinstallしてね」という公式の言いつけを守って実行できることがわかりました。
Discussion