.. _sec-getcif-fileformat: ====================== ファイルフォーマット ====================== 入力パラメータファイル ====================== 入力パラメータファイルでは、getcif で Materials Project の物質材料データベースから結晶構造等のデータを取得するための設定情報を YAML形式で記述します。本ファイルは以下の部分から構成されます。 #. databaseセクション: 接続するデータベースについての情報を記述します。 #. optionセクション: 出力先のディレクトリや実行条件などを記述します。 #. propertiesセクション: 検索条件を記述します。 #. fieldsセクション: 取得データの種類を記述します。 database -------------------------------- ``target`` 接続先のデータベースを指定します。現在はこの項目は無視されます。 ``api_key_file`` (デフォルト値: ``materials_project.key``) データベースに接続する際の APIキーを格納したファイルのファイル名を指定します。ファイル名の拡張子は ``.key`` とします。 ファイルが存在しない、または有効なAPIキーが見つからない場合は、環境変数 ``MP_API_KEY`` または pymatgen の設定ファイル ``~/.config/.pmgrc`` の ``PMG_MAPI_KEY`` からAPIキーを取得します。 APIキーファイルはテキスト形式です。 ``#`` から始まる行はコメントとして扱われます。前後の空白は無視されます。複数行からなる場合は最初の有効な行からキーを取得します。 option -------------------------------- ``output_dir`` (デフォルト値: ``""``) 取得データを格納するディレクトリを指定します。データは ``output_dir`` 以下に、material ID をディレクトリ名としたディレクトリに出力されます。指定がない場合はカレントディレクトリです。 ``dry_run`` (デフォルト値: ``False``) データベースへの接続は行わず、検索条件を出力して終了します。検索内容の確認を行うことができます。 ``symprec`` (デフォルト値: 0.1) 結晶構造データをCIFファイルに出力する際の対称性を判定する許容精度を指定します。デフォルトは 0.1 です。 ``symprec`` に 0.0 を指定した場合は ``symprec`` を指定しないものとして扱い、対称性を考慮しないCIFファイルが生成されます。 ``symprec`` は、結晶構造における対称性を判定する際の許容精度(tolerance)を指定するパラメータです。対称性の計算においては、原子位置の微細なずれや数値計算の精度の影響を考慮する必要があります。``symprec`` はこのずれの許容範囲を制御し、対称操作が適用されるかどうかを決定する際の閾値として機能します。 ``symprec`` を小さく設定する(例: 0.01)と、対称性の判定がより厳密になり、結晶構造のわずかなずれでも対称操作が適用されない可能性が高まります。その結果、より低い対称性の空間群が得られることがあります。逆に、``symprec`` を大きく設定する(例: 1.0)と、対称性の判定が緩やかになり、わずかなずれが無視され、より高い対称性が認められることがあります。 なお、 ``fields`` セクションで ``symmetry`` を指定すると、Materials Project でデフォルトの ``symprec=0.1`` で判定された対称性の情報を取得し、テキストファイル(symmetry)に出力します。 properties -------------------------------- 検索条件を記述します。 元素組成や結晶の対称性、物性値の範囲などの項目を、「項目名: 値」の形式で指定します。これらの条件は AND で扱われます。 指定できる項目は Materials Project の API に定義されていますが、指定方法は mp-api ライブラリの ``materials.summary.search`` のパラメータに準拠します。項目のリストは Appendix を参照してください。また、 ``getcif --help`` で一覧を見ることができます。 値の指定方法は次のとおりです。YAML形式に準拠しますが、一部に簡便な記法を用意しています。 - 数値、文字列 そのまま記述します。 - 真偽値 true または false を記述します - 数値や文字列のリスト YAML形式の箇条書きおよび ``[ ... ]`` にカンマ区切りで記述するほか、空白区切りで列挙する記法も可能です。例: .. code:: yaml element: Sr Ti - 数値の範囲 上限・下限のリストとして ``[ min, max ]`` のように記述するほか、空白区切りで ``min max`` のように記述することもできます。また、以下の記法も可能です。 ``<= max`` max 以下 ``< max`` max より小さい (実数の場合は ``<=`` と同等。整数の場合は ``<= max-1`` として扱われる) ``>= min`` min 以上 ``> min`` min より大きい (実数の場合は ``>=`` と同等。整数の場合は ``>= min+1`` として扱われる) ``min ~ max`` min 以上 max 以下 注記: - 記号と数値の間は空白を置きます。 - YAML記法では ``>`` は特殊文字として扱われるため、 ``>= min``, ``> min`` はそれぞれ ``">= min"``, ``"> min"`` のように ``" "`` で囲む必要があります。 - リストで記述する場合、 ``<= max``, ``>= min`` はそれぞれ ``[ None, max ]``, ``[ min, None ]`` のように表記します。 - ワイルドカード ``formula`` には元素種にワイルドカード ``*`` を指定できます。その場合は値を ``" "`` で囲みます。例: .. code:: yaml formula: "**O3" :math:`ABO_3` 系の物質を指定します。 fields -------------------------------- 取得するデータの種類を記述します。 項目のリストを YAML形式で列挙するほか、空白区切りの文字列として記述することもできます。文字列は YAML記法 ``|`` を用いて複数行で書くこともできます。 指定できる項目は Materials Project の API の ``fields`` パラメータに準拠します。項目のリストは Appendix を参照してください。また、 ``getcif --help`` で一覧を見ることができます。 ``material_id`` と ``formula_pretty`` は暗黙的に取得します。 取得したデータは、 ``option`` セクションの ``output_dir`` で指定したディレクトリ内に、物質ごとに ``material_id`` をディレクトリ名とするディレクトリを作成し、その中に格納されます。 項目ごとに、項目名をファイル名としたファイルに保存されます。但し、結晶構造データ (``structure``) は ``structure.cif`` というファイル名で CIF形式で書き出されます。