科学ツールの導入
このディレクトリには,Builcule と Libbuilcule の開発以外の勉強記録を置いています.
すなわち,量子化学ソフトウェアによる計算と分子軌道の表示方法の導入記録,C++ による数値計算ライブラリや科学ライブラリの練習記録,Python による数値計算や RDKIT の練習記録をおいています,
このディレクトリは,プラットフォーム OS である Debian の,"bookworm" から ”trixie” へのアップデートに伴う改定中です.
「量子化学ソフトウェア」セクションについては,本サイトで開発している分子モデリングソフト Builcule がある程度進んだら,それを利用してアップデートする予定です.
量子化学ソフトウェア
量子化学ソフトウェアによる計算と分子軌道の表示方法の導入記録です.
計算ソフトウェアの添付ドキュメントの最初の例を試すところから始めて,表示ソフトウェアで分子軌道を描くところまで進めます.
導入
PSI4 練習ノート:PSI4 と Gabedit を使って,水などの簡単な分子を計算,表示します
NWChem 練習ノート:NWChem と Gabedit を使って,アンモニアなどの簡単な分子を計算,表示します
分子軌道の表示
量子化学ソフトウェアによる出力ファイルを開いて分子軌道を表示するには,Avogadro や Gabedit のパッケージをインストールして使っています.
これらのソフトウェアは,表示以外にいろいろな機能を有しているので,サイトへのリンクを貼り付けておきます.
画像は,Gabedit で表示したピロリン酸の HOMO です.
開発環境
コンテンツを作成していない項目もありますが,非公開の作業に使っていることや将来作成する可能性があるこことから,能力を維持するために置いています.
なお,RDKit や量子化学ソフトウェアは Python 環境で利用することが多そうです.
- C++ による GNU Scientific Library(GSL) 入門:高校数学に近いレベルのトピックスをいくつか採りあげ,プログラムを走らせています
- C++ による RDKit 入門:SMILES 形式や MDL MOL 形式から RDKit::ROMol クラスや RDKit::RWMol クラスのインスタンスを作成します
- Python による RDKit 練習ノート:ケモインフォマティクスライブラリ.RDKitドキュメンテーション非公式日本語版の最初の部分を,Python API Reference を参照しつつ作成しました
- NumPy 練習ノート:要素が数値である N 次元配列ライブラリ.NumPy ドキュメントの "Getting Started" を勉強したときのノートです
- Pandas 練習ノート:NumPy を利用したデータフレームライブラリ.Getting started の "Intro to pandas" および UserGuide の "the absolute basics for beginners" を勉強したときのノートです
プログラミング言語やライブラリのパッケージ
このディレクトリで使用している主な Debian パッケージを紹介します.
パッケージ間の依存性により自動的にインストールされるパッケージあるので,網羅できているとは限りません.
| パッケージ名(バージョン) | 注 |
| libgsl-dev (2.7.1) | GNU 科学ライブラリ(数値解析用ルーチン集)の開発ファイル |
| librdkit-dev (202209.3) | RDKit の C++ 用 ヘッダファイル |
| python3-rdkit (202209.3) | RDKit の Python 用 API |
パッケージ化されたドキュメント類
Debian パッケージに入っているドキュメントを一覧表にまとめました.
インストール先として HTML 形式のドキュメントを記しているのは,ローカルで Apache を使って HTTP アクセスしているからです.
| パッケージ名(バージョン) | 注 | インストール先 |
| rdkit-doc (202209.3) | RDKit の API ドキュメント | /usr/share/doc/rdkit/html/ |
Web 上のリソース
本家のドキュメント類を読めるようになる,というのも筆者の目標の一つなのでリンク集を作成しました.
- GNU Scientific Library:数値計算ライブラリ
- Python 3.12.1 ドキュメント
- Python 標準ライブラリ
- Python 言語リファレンス
- NumPy documentation:要素が数値である N 次元配列ライブラリ
- Pandas documentation:NumPy を利用したデータフレームライブラリ
- Matplotlib documentation:NumPy のグラフ描画
- RDKit:ケモインフォマティクスライブラリ
- RDKit ドキュメンテーション非公式日本語版サイト — RDKit_unofficial_translation_JP 2019.03.1 ドキュメント
その他
分子モデリングにとらわれず,勉強したコンテンツを置く場所とします.
データベースの利用
このサイトのテーマである分子モデリングについては,まだデータベースを構築していません.
なのですが,日常的に利用したり,利用法を検討したりしています.
ここでは,日常的に利用している例を 2 つ挙げておきます,
- 食事管理
- Apache のログ解析
このサイトのテーマと乖離しそうなので,現状をメモ程度にまとめておきます.
利用しているソフトウェア
私は,古典的な "LAMP(Linux + Apache + MariaDB + PHP)" 上でデータベースを操作しています.MySQL を MariaDB に変えていますが,意味はありません.
この場合,HTML ファイルを作成・生成する必要があります.
ごくアバウトですが,静的 HTML ファイルは Python で作成し,動的 HTML ファイルは PHP のコードを HTML ファイルに埋め込んで作成する,といった感じです.
| Debian パッケージ(バージョン) | コメント |
|---|---|
| mariadb-server(11.8.3) | データベースサーバ |
| apache2(2.4.65) | HTTP サーバ.ここでは,データベースとブラウザとのインターフェース |
| firefox(143.0.3) | ウェブブラウザ.ここでは,データベースと人間(個人利用なので私)とのインターフェース |
| PHP(8.4) | サーバーサイドの HTML 埋め込みスクリプト言語.データベース操作言語その1です |
| python3(3.13.5) | 対話式の高レベルオブジェクト指向言語.データベース操作言語その2です |
| python3-mariadb-connector(1.1.12) | Python プログラムから MariaDB や MySQL データベースにアクセスするためのモジュール |
| python3-pandas(2.2.3) | データ分析用のモジュール.ここでは Apache のログ解析用(Pandas 練習ノートを作成しています,ログは扱っていませんが) |
API ドキュメント
PHP や Python でデータベースを操作するために必要な関数等のドキュメントです.
関数のリファレンスだけでなく,サンプルコード付の入門者用コンテンツもあります.
- PHP:PHP: データベース関連 - Manual
- Python:API Reference | MariaDB Documentation.MariaDB のサイト内のページです
言語の仕様が変わる場合があるので,必要に応じてコードを見直す作業が必要なようです.
私の経験では,OS のメジャーバージョンアップ時に食事管理用のコードが古くなって動作しなくなり,しばらく日々の献立が見られなくなったことがあります.
食事管理データベースのデータ
私は下記のデータを利用してデータベースを構築しています.
- 日本人の食事摂取基準:厚生労働省が健康・生活衛生局が実施する検討会等でまとめているデータ
- 食品の成分:文部科学省が公開している食品成分データベース
Apache のログファイル
ログファイル - Apache HTTP サーバ バージョン 2.4 を見ると,「アクセスログの書式は非常に柔軟な設定が可能です」と書いてあります.サーバーごとに,あるいは同一サーバでも時期によっては書式が異なるかもしれません.
ログファイルを Python/Pandas で適当な形に処理し,MariaDB に格納すればデータベースでのできあがりです.