概要
Pymatgen(Python Materials Genomics)は、材料解析用のPythonライブラリです。結晶構造、分子、組成、電子構造計算を扱うワークフロー向けに、再利用可能な表現と解析ツールを提供します。プロジェクトのREADMEでは、Materials Projectの解析コードとして説明されていますが、独立した研究ワークフローにも対応しています。これは解析ツールキットであり、単体の予測モデルや自律型研究エージェントではありません。
このパッケージでは、基盤機能と高レベルの解析が分離されています。Element、Site、Molecule、Structure、Composition、Latticeなどのコアオブジェクトと、主要な電子構造ファイルの入出力機能は、pymatgen-coreに含まれています。pymatgenをインストールすると、この依存パッケージも導入され、追加の解析、アプリケーション、連携機能とともに、pymatgen.coreを通じてコアクラスが利用できるようになります。ドキュメントに記載されている入出力形式には、VASP、ABINIT、Gaussian、CIF、XYZが含まれます。選択するモジュールに応じて、相図やPourbaix図の作成、状態密度やバンド構造の電子構造解析、または熱力学計算や反応計算を行うワークフローを構成できます。
材料ワークフローを構築する研究者にとって、Pymatgenは構造データや計算データと、分野固有の解析をつなぐ手段となります。外部連携にはMaterials Project REST APIやその他の材料データベースが含まれます。これらのデータベースは独立したリソースであり、ライブラリ自体が提供するデータ集合ではありません。Python APIに加えて、エンドユーザー向けアプリケーションとコマンドラインインターフェースも用意されています。資料によれば、POTCARの生成など、一部の機能には追加設定が必要です。コアオブジェクトとファイル入出力だけが必要なプロジェクトでは、pymatgen-coreに直接依存する方法もあります。より広範なパッケージは、ここで説明する高レベルの機能を対象としています。
主な機能
- `pymatgen.core`を通じて、元素、サイト、分子、構造、組成、格子を表す`pymatgen-core`のオブジェクトを再エクスポートします。
- VASP、ABINIT、Gaussian、CIF、XYZをはじめとする科学分野のファイル形式の入出力をサポートします。
- 相図やPourbaix図の作成、反応解析、局所環境、表面、界面、欠陥の解析機能を含みます。
- 状態密度とバンド構造の電子構造解析に対応しています。
- 熱力学計算および反応計算向けの`pymatgen.entries`データオブジェクトを提供します。
- `pymatgen.ext`を通じた外部材料データベース連携のほか、エンドユーザー向けアプリケーションとコマンドラインツールを提供します。
用途
- 評価案:代表的なCIFファイルまたは計算ファイルを読み込み、材料解析ワークフローで構造と組成を一貫して表現できるかを評価します。
- 評価案:適切な熱力学エントリーから相図またはPourbaix図を作成し、選択した化学系を調べます。
- 評価案:ドキュメントの例を使い、電子構造計算から得られた状態密度データまたはバンド構造データを解析します。
- 評価案:Materials Projectのデータアクセスとローカルの構造解析または反応解析を組み合わせ、データベース連携と解析ライブラリを別々に評価します。
使い方
- 公式ドキュメントから始め、構造ファイル処理、熱力学解析、電子構造解析、データベース連携のいずれかのワークフローを選びます。モジュールを選択する前に、必要な入力を特定してください。
- リポジトリのREADMEでパッケージの分割について確認します。高レベルの解析と連携機能には
pymatgenを、コアオブジェクトとファイル入出力だけが必要な場合にはpymatgen-coreを選択してください。 - READMEおよびPyPIの掲載ページからリンクされているインストールガイドに従います。選択した機能の要件を確認してください。POTCARの生成には追加設定が必要であると明記されています。
- ドキュメント内の関連例、またはREADMEからリンクされているmatgenbノートブックを、規模が小さく代表的な入力に合わせて調整します。これは評価として行い、解析された構造と得られた結果が自身の想定と一致するかを確認してください。
- パッケージのリリースと使用した外部データソースを記録します。変更点はGitHub releasesで確認してください。質問にはMatSci forumを、再現可能な問題にはGitHub issuesを利用してください。