get_cif プログラム仕様
概要: 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)
- 関連リンク:
get_cif_usage
- crystal.get_cif.get_structure(formula)
概要: Materials Project APIから指定された化学式または元素組成に対応する結晶構造を取得します。
- 詳細説明:
環境変数 MP_APIKEY からAPIキーを取得し、MPRester を使用してMaterials Projectに接続します。 引数 formula がカンマ区切りで複数の元素を含む場合、それらの元素を含む構造を検索します。 単一の化学式の場合、その化学式に一致する構造を検索します。 見つかった構造は pymatgen.core.structure.Structure オブジェクトのリストとして返されます。 APIキーの取得失敗、MPResterの初期化失敗、またはデータが見つからない場合はエラーメッセージを表示し、Noneを返します。 検索結果の構造について、入力された元素がすべて含まれているかを確認し、含まれない場合は警告を出力してスキップします。
- 引数:
- param formula:
検索対象の化学式 (例: "TiO2") またはカンマ区切りの元素組成 (例: "Ti,O")。
- type formula:
str
- 戻り値:
- returns:
見つかった結晶構造のリスト、またはエラー発生時やデータが見つからない場合はNone。
- rtype:
list or 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.フォーマット" の形式で保存されます。
- 引数:
- param structures:
保存する結晶構造オブジェクトのリスト。
- type structures:
list
- param output_format:
出力ファイルのフォーマット (例: "cif", "poscar")。
- type output_format:
str
- param formula:
元の検索に使用された化学式 (ファイル名の一部として利用される可能性がありますが、実際はcformulaとmaterial_idが使われます)。
- type formula:
str
- crystal.get_cif.update_vars()
概要: コマンドライン引数を解析し、グローバル変数 formula, output_format, prec を更新します。
- 詳細説明:
sys.argv を読み込み、最初の引数から化学式または元素組成を設定します。 オプションで、2番目の引数から出力フォーマット、3番目の引数から対称性の許容誤差を設定します。 化学式が指定されていない場合はエラーメッセージを表示し、スクリプトを終了します。
- crystal.get_cif.usage()
概要: スクリプトの正しい使用方法をコンソールに表示します。
- 詳細説明:
この関数は、スクリプトが引数なしで実行された場合や、ユーザーが使用方法を知りたい場合に呼び出され、 必要なコマンドライン引数の形式と説明を出力します。