7.4. ファイルフォーマット

入力パラメータファイル

入力パラメータファイルでは、getcif で Materials Project の物質材料データベースから結晶構造等のデータを取得するための設定情報を YAML形式で記述します。本ファイルは以下の部分から構成されます。

  1. databaseセクション: 接続するデータベースについての情報を記述します。

  2. optionセクション: 出力先のディレクトリや実行条件などを記述します。

  3. propertiesセクション: 検索条件を記述します。

  4. fieldsセクション: 取得データの種類を記述します。

database

target

接続先のデータベースを指定します。現在はこの項目は無視されます。

api_key_file (デフォルト値: materials_project.key)

データベースに接続する際の APIキーを格納したファイルのファイル名を指定します。ファイル名の拡張子は .key とします。 ファイルが存在しない、または有効なAPIキーが見つからない場合は、環境変数 MP_API_KEY または pymatgen の設定ファイル ~/.config/.pmgrcPMG_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形式の箇条書きおよび [ ... ] にカンマ区切りで記述するほか、空白区切りで列挙する記法も可能です。例:

    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 には元素種にワイルドカード * を指定できます。その場合は値を " " で囲みます。例:
    formula: "**O3"
    

    \(ABO_3\) 系の物質を指定します。

fields

取得するデータの種類を記述します。 項目のリストを YAML形式で列挙するほか、空白区切りの文字列として記述することもできます。文字列は YAML記法 | を用いて複数行で書くこともできます。 指定できる項目は Materials Project の API の fields パラメータに準拠します。項目のリストは Appendix を参照してください。また、 getcif --help で一覧を見ることができます。

material_idformula_pretty は暗黙的に取得します。

取得したデータは、 option セクションの output_dir で指定したディレクトリ内に、物質ごとに material_id をディレクトリ名とするディレクトリを作成し、その中に格納されます。 項目ごとに、項目名をファイル名としたファイルに保存されます。但し、結晶構造データ (structure) は structure.cif というファイル名で CIF形式で書き出されます。