get_cif プログラム仕様
get_cif.py
概要: Materials Project APIから結晶構造データを取得し、指定されたフォーマットで保存するスクリプトです。 詳細説明:
このスクリプトは、Materials ProjectのAPIキーを利用して、ユーザーが指定した化学式または元素組成に基づいて結晶構造を検索します。 検索結果の構造は、CIF形式(デフォルト)またはPOSCAR形式でファイルに保存されます。 スクリプトの実行には、環境変数 'MP_APIKEY' に有効なMaterials Project APIキーが設定されている必要があります。
- 使用方法:
python get_cif.py <formula> [output_format] [prec]
<formula>: 検索する化学式またはカンマ区切りの元素リスト (例: "TiO2", "Ti,O") [output_format]: 出力ファイルの形式 (デフォルト: "cif", その他 "poscar" など) [prec]: 対称性を分析する際の許容誤差 (デフォルト: 1.0e-3)
- 関連リンク:
- crystal.get_cif.get_structure(formula)[ソース]
概要: Materials Project APIから指定された化学式または元素組成に対応する結晶構造を取得します。 詳細説明:
環境変数 'MP_APIKEY' からAPIキーを取得し、MPRester を使用してMaterials Projectに接続します。 引数 formula がカンマ区切りで複数の元素を含む場合、それらの元素を含む構造を検索します。 単一の化学式の場合、その化学式に一致する構造を検索します。 見つかった構造は pymatgen.core.structure.Structure オブジェクトのリストとして返されます。 APIキーの取得失敗、MPResterの初期化失敗、またはデータが見つからない場合はエラーメッセージを表示し、Noneを返します。 検索結果の構造について、入力された元素がすべて含まれているかを確認し、含まれない場合は警告を出力してスキップします。
- パラメータ:
formula -- str: 検索対象の化学式 (例: "TiO2") またはカンマ区切りの元素組成 (例: "Ti,O")。
- 戻り値:
list[Structure] or None: 見つかった結晶構造のリスト、またはエラー発生時やデータが見つからない場合はNone。
- crystal.get_cif.main()[ソース]
概要: スクリプトの主要な実行フローを制御します。 詳細説明:
update_vars を呼び出してコマンドライン引数を処理し、グローバル変数を設定します。 次に、get_structure を使用してMaterials Projectから結晶構造を取得します。 構造が正常に取得された場合、save_structures を呼び出してそれらの構造をファイルに保存します。 最後に、usage 関数を呼び出してスクリプトの使用方法を表示し、終了プロンプトを表示してユーザーの入力を待ちます。
- crystal.get_cif.save_structures(structures, output_format, formula)[ソース]
概要: 取得した結晶構造を指定されたフォーマットでファイルに保存します。 詳細説明:
渡された結晶構造のリストを反復処理し、各構造を output_format に従ってファイルに書き出します。 SpacegroupAnalyzer を使用して構造を対称化してから保存します。 出力ファイル名は、構造の簡略化学式とMaterial IDに基づいて命名されます。 output_format が "poscar" の場合、最初のファイルは "POSCAR"、2番目以降は "POSCAR_2" などとなります。 その他のフォーマットの場合、"化学式_material_id.フォーマット" の形式で保存されます。
- パラメータ:
structures -- list[Structure]: 保存する結晶構造オブジェクトのリスト。
output_format -- str: 出力ファイルのフォーマット (例: "cif", "poscar")。
formula -- str: 元の検索に使用された化学式 (ファイル名の一部として利用される可能性がありますが、実際は`cformula`と`material_id`が使われます)。