7.4. ファイルフォーマット¶
入力パラメータファイル¶
入力パラメータファイルでは、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形式の箇条書きおよび
[ ... ]
にカンマ区切りで記述するほか、空白区切りで列挙する記法も可能です。例: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_id
と formula_pretty
は暗黙的に取得します。
取得したデータは、 option
セクションの output_dir
で指定したディレクトリ内に、物質ごとに material_id
をディレクトリ名とするディレクトリを作成し、その中に格納されます。
項目ごとに、項目名をファイル名としたファイルに保存されます。但し、結晶構造データ (structure
) は structure.cif
というファイル名で CIF形式で書き出されます。