科学ツールの導入

このディレクトリには,Builcule と Libbuilcule の開発以外の勉強記録を置いています.
すなわち,量子化学ソフトウェアによる計算と分子軌道の表示方法の導入記録,C++ による数値計算ライブラリや科学ライブラリの練習記録,Python による数値計算や RDKIT の練習記録をおいています,

このディレクトリは,プラットフォーム OS である Debian の,"bookworm" から ”trixie” へのアップデートに伴う改定中です.
「量子化学ソフトウェア」セクションについては,本サイトで開発している分子モデリングソフト Builcule がある程度進んだら,それを利用してアップデートする予定です.


量子化学ソフトウェア

量子化学ソフトウェアによる計算と分子軌道の表示方法の導入記録です.
計算ソフトウェアの添付ドキュメントの最初の例を試すところから始めて,表示ソフトウェアで分子軌道を描くところまで進めます.

ピロリン酸の分子軌道

導入


PSI4 練習ノート:PSI4 と Gabedit を使って,水などの簡単な分子を計算,表示します
NWChem 練習ノート:NWChem と Gabedit を使って,アンモニアなどの簡単な分子を計算,表示します

分子軌道の表示

量子化学ソフトウェアによる出力ファイルを開いて分子軌道を表示するには,Avogadro や Gabedit のパッケージをインストールして使っています.
これらのソフトウェアは,表示以外にいろいろな機能を有しているので,サイトへのリンクを貼り付けておきます.
画像は,Gabedit で表示したピロリン酸の HOMO です.


開発環境

コンテンツを作成していない項目もありますが,非公開の作業に使っていることや将来作成する可能性があるこことから,能力を維持するために置いています.
なお,RDKit や量子化学ソフトウェアは Python 環境で利用することが多そうです.

プログラミング言語やライブラリのパッケージ

このディレクトリで使用している主な 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 上のリソース

本家のドキュメント類を読めるようになる,というのも筆者の目標の一つなのでリンク集を作成しました.


その他

分子モデリングにとらわれず,勉強したコンテンツを置く場所とします.

データベースの利用

このサイトのテーマである分子モデリングについては,まだデータベースを構築していません.
なのですが,日常的に利用したり,利用法を検討したりしています.
ここでは,日常的に利用している例を 2 つ挙げておきます,

このサイトのテーマと乖離しそうなので,現状をメモ程度にまとめておきます.

利用しているソフトウェア

私は,古典的な "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 でデータベースを操作するために必要な関数等のドキュメントです.
関数のリファレンスだけでなく,サンプルコード付の入門者用コンテンツもあります.

言語の仕様が変わる場合があるので,必要に応じてコードを見直す作業が必要なようです.
私の経験では,OS のメジャーバージョンアップ時に食事管理用のコードが古くなって動作しなくなり,しばらく日々の献立が見られなくなったことがあります.

食事管理データベースのデータ

私は下記のデータを利用してデータベースを構築しています.

Apache のログファイル

ログファイル - Apache HTTP サーバ バージョン 2.4 を見ると,「アクセスログの書式は非常に柔軟な設定が可能です」と書いてあります.サーバーごとに,あるいは同一サーバでも時期によっては書式が異なるかもしれません.
ログファイルを Python/Pandas で適当な形に処理し,MariaDB に格納すればデータベースでのできあがりです.