コマンドのサブセクション

cryspy-Eplot

最終更新日:2026年10月16日

cryspy-Eplot コマンド

CrySPY version 1.4.1以降では,cryspy-Eplotコマンドがインストールされる. EA-vcでは,デフォルトで各世代の計算終了時に凸包図が自動的に生成・保存される.出力間隔の変更や自動出力の無効化は,[option]セクションのenergy_output_intervalで指定する(入力ファイル > [option] Sectionを参照). 後から描画パラメータを変更したい場合は,cryspy-Eplotコマンドを用いて再描画できる.

変更できる入力パラメーターは以下のページを参考.

実行方法とオプション

cryspy.inがあるディレクトリで,下記コマンドを実行.

cryspy-Eplot [options]
OptionDescription
-c, --composition-windowcryspy.inで指定された組成範囲を描画した図を保存する.詳細は組成範囲の確認を参照.

エネルギープロット(RS,EA)

energy_RS_10 energy_RS_10 energy_EA_gen_3 energy_EA_gen_3

凸包プロット(EA-vc)

通常プロット(2元系,3元系)

2元系の凸包プロット 2元系の凸包プロット 3元系の凸包プロット 3元系の凸包プロット

世代を指定した再描画

凸包は第3世代,表示する構造は第2世代を指定した例.

第3世代の凸包と第2世代の構造 第3世代の凸包と第2世代の構造

組成制限がある場合の描画

組成制限を設定した2元系・3元系の描画例.青色の領域が組成の許容範囲を表す.

組成制限を用いた2元系の凸包プロット 組成制限を用いた2元系の凸包プロット 組成制限を用いた3元系の凸包プロット 組成制限を用いた3元系の凸包プロット

組成範囲の確認(-c)

version 1.5.0以降では,組成制限が設定されている場合に,-cオプションを用いて許容される組成範囲をプロットできる.

EA-vcでmin_compまたはmax_compを指定している場合,次のコマンドで,現在のcryspy.inに設定された組成の許容範囲を描画できる. 探索結果のデータを必要としないため,探索を開始する前でも入力した組成制限を確認できる.

cryspy-Eplot -c

通常の2元系・3元系では,図は./data/convex_hull/composition_window_input.<fig_format>に保存される. fig_formatのデフォルトはsvgであり,[visual]セクションでpngやpdfにも変更できる. 原子種の配置は,同じく[visual]セクションのaxis_orderで指定する. ファイル名のinputは,世代番号によらず,実行時の入力に基づく図であることを表す.

以下は2元系・3元系の描画例.

2元系の組成の許容範囲 2元系の組成の許容範囲 3元系の組成の許容範囲 3元系の組成の許容範囲

この図はmin_compとmax_compから求めた連続的な組成領域を表す. ll_nat・ul_natによる整数の原子数の制約や,chargeによる電荷中性条件は反映されない. 入力例や図の見方は組成制限を参照.

-cを指定した場合は組成範囲の図を出力して終了する. 探索結果のエネルギーや凸包を再描画する場合は,-cを付けずにcryspy-Eplotを実行する.

軸の配置変更

cryspy.inの[visual]セクションでaxis_orderを変更し,cryspy-Eplotを実行すると,原子種の配置を変更して再描画できる. 設定の詳細はチュートリアル > EA-vc > 解析と可視化および入力ファイル > [visual]セクションを参照.

2元系では,atypeの順にl(左)とr(右)を指定する. 左はaxis_order = lr,右はaxis_order = rlの例.

2元系の軸配置:lr 2元系の軸配置:lr 2元系の軸配置:rl 2元系の軸配置:rl

3元系では,atypeの順にt(上),l(左),r(右)を指定する. 左はaxis_order = tlr,右はaxis_order = ltrの例.

3元系の軸配置:tlr 3元系の軸配置:tlr 3元系の軸配置:ltr 3元系の軸配置:ltr

化合物を基準とした凸包(terminals)

cryspy.inの[visual]セクションでterminalsに2つまたは3つの化合物組成を指定すると,それらを基準とした凸包を描画できる. この処理にはpymatgenのCompoundPhaseDiagramを使用している. 基準となる化合物組成の選び方により,3元系を擬3元系として,4元系を擬3元系として描画することもできる.ここでは,3元系を擬2元系として描画する例を示す. この設定はcryspy-Eplotによる事後解析用であり,探索中の凸包計算や自然選択には影響しない.

以下は,3元系のLi–Al–Oに電荷中性条件を課し,第30世代まで探索した例.[structure]セクションでは次のように設定している.

[structure]
atype = Li Al O
ll_nat = 0 0 0
ul_nat = 40 40 40
charge = 1 3 -2

この電荷中性条件を満たす組成は,3元系の組成図ではLi2OとAl2O3を結ぶ直線上にある.そのため,これらの化合物組成を基準にすることで,Li2O–Al2O3の擬2元系として凸包を描画できる.電荷中性条件の設定については,機能 > 電荷中性条件を参照.

左は元素を基準とした3元系の凸包,右はLi2OとAl2O3を基準とした擬2元系の凸包.

Li–Al–O系の元素を基準とした凸包 Li–Al–O系の元素を基準とした凸包 Li2OとAl2O3を基準とした凸包 Li2OとAl2O3を基準とした凸包

右の図は,[visual]セクションを以下のように設定してcryspy-Eplotを実行すると得られる.

[visual]
terminals = Li2O Al2O3
cryspy-Eplot

出力ファイル名には,基準とした化合物組成を表す_terminals_Li2O-Al2O3が付く.この例では,デフォルトのsvg形式で./data/convex_hull/conv_hull_gen_30_terminals_Li2O-Al2O3.svgに保存される.

化合物組成を2つ指定した場合,terminal_axis_orderを省略するとデフォルトのlrが使われ,terminalsの指定順にLi2Oが左,Al2O3が右に配置される. 指定した各化合物組成のデータが,描画に用いる相図データに含まれている必要がある. パラメータの詳細は入力ファイル > [visual]セクションを参照.

cryspy-calc-convex-hull

最終更新日:2026年10月16日

cryspy-calc-convex-hull コマンド

EA-vcの指定世代までの結果を使って,凸包と各構造のhull distanceを再計算するコマンド. cryspy-skipで不適切な構造を除外した後や,emin_ea・emax_eaでエネルギーの除外条件を変更した後に使用する.

CrySPYの計算ディレクトリで,世代番号を指定して実行する.

cryspy-calc-convex-hull 10

この例では,第1〜10世代の結果を使って,第10世代時点の凸包とhull distanceを再計算する. pd_data.pklとhdist_data.pklの該当世代のデータ,hull distanceの一覧を更新し,2元系・3元系では凸包の図も出力する.

詳しい手順は機能 > 計算のスキップを参照.

cryspy-skip

最終更新日:2026年10月16日

cryspy-skip コマンド

rslt_data.pklに記録済みの計算結果を取り消し,指定した構造をskip扱いにするコマンド. 正しくない電子状態などにより,異常なエネルギーが記録された場合に使用する.

CrySPYの計算ディレクトリで,構造IDを指定して実行する.複数のIDも指定できる.

cryspy-skip 198 157

この例では,ID 198と157の最適化構造とエネルギーを無効化し,計算結果のOptをskipに更新する. EA・EA-vcでは,エリートに登録されている場合はそのデータからも取り除く. EA-vcでは,必要に応じてcryspy-calc-convex-hullで凸包を再計算する.

詳しい手順や,計算途中でスキップする方法は機能 > 計算のスキップを参照.

cryspy-print

最終更新日:2026年10月16日

cryspy-print コマンド

v1.5.0以降では,cryspy-printコマンドでdata/pkl_data/にあるpickleファイルの内容を確認できる. CrySPY Utilityのprint_pkl.pyに代わるコマンドで,ファイルの種類に応じて内容や要約を表示する. rslt_data.pklでは,エネルギー順の表示,表示行数の指定,組成による絞り込み,結果ファイルの再出力もできる.

実行方法とオプション

cryspy-print infile [options]

入力ファイルは相対パスまたは絶対パスで指定できる.gzip圧縮したファイルも読み込み可能. ファイルの種類はファイル名で判別するため,rslt_data.pklなどの名前を変更せずに指定する.

引数・オプション説明
infile表示するpickleファイル.gzip圧縮したファイル(例:rslt_data.pkl.gz)も指定可能.
--no-sortrslt_data.pklをソートせず,保存されている行順で表示する.
--head N絞り込み・ソート後の先頭N行を表示する.Nは正の整数.
--tail N絞り込み・ソート後の末尾N行を表示する.Nは正の整数.
--all絞り込み・ソート後の全行を表示する.
-c N [N ...], --composition N [N ...]EA-vcのrslt_data.pklを,atypeの順に指定した組成比で絞り込む.
--writerslt_data.pklから./data/cryspy_rsltと./data/cryspy_rslt_energy_ascを再出力する.
-h, --helpヘルプを表示する.

--no-sort,--head,--tail,--all,--composition,--writeはrslt_data.pkl用のオプション. --head,--tail,--allは併用できない.--writeは表示用オプションと併用できない.

対応ファイルと表示内容

ファイル表示内容
input_data.pklセクションごとの入力設定.値がNoneの項目は表示しない.
init_struc_data.pkl,opt_struc_data.pkl,struc_step_data.pkl,elite_struc.pkl,init_dscrpt_data.pkl,opt_dscrpt_data.pkl保存されているデータの件数(Number of structures).構造ID一覧は表示しない.
rslt_data.pkl計算結果の表.デフォルトはエネルギーが低い順.
hdist_data.pkl最新世代と,その世代の構造数.空の場合はNo hull distance data.
pd_data.pkl最新世代と,その世代の安定エントリー数・全エントリー数.空の場合はNo phase diagram data.
cn_comb_data.pkl電荷中性条件の設定と,電荷中性を満たす組み合わせの数.cn_combがNoneの場合はその旨を表示する.

以下のファイルは内容を整形して表示する.

  • 共通:id_queueing.pkl,id_running.pkl,energy_step_data.pkl,force_step_data.pkl,stress_step_data.pkl,kpt_data.pkl,rng_state_data.pkl
  • EA:gen.pkl,ea_info.pkl,ea_origin.pkl,elite_fitness.pkl
  • EA-vc:nat_data.pkl
  • BO:n_selection.pkl,id_select_hist.pkl,bo_mean.pkl,bo_var.pkl,bo_score.pkl
  • LAQA:tot_step_select.pkl,laqa_energy.pkl,laqa_bias.pkl,laqa_score.pkl,laqa_step.pkl,laqa_struc.pkl

対応していないファイル名を指定するとエラーになる.

使用例

構造数・入力設定・fitnessの確認

cryspy-print ./data/pkl_data/init_struc_data.pkl

10件のデータが保存されている場合の表示:

Number of structures: 10

opt_struc_data.pklやelite_struc.pklも同様に構造数を表示する. 個々の構造を確認するには,cryspy-extract-strucの-pオプションを使用する.

cryspy-print ./data/pkl_data/input_data.pkl
cryspy-print ./data/pkl_data/elite_fitness.pkl

input_data.pklは[basic],[structure]などのセクションごとに設定を表示する. elite_fitness.pklは構造IDとfitnessの辞書を表示する.

計算結果の表示

cryspy-print ./data/pkl_data/rslt_data.pkl

Ef_eV_atom列がある場合はその値,ない場合はE_eV_atomの昇順で表示する. 100行以下なら全行を表示する.100行を超える場合は件数とソート条件を表示し,先頭100行を表示する.

cryspy-print ./data/pkl_data/rslt_data.pkl --head 10
cryspy-print ./data/pkl_data/rslt_data.pkl --tail 5
cryspy-print ./data/pkl_data/rslt_data.pkl --all

それぞれ,エネルギーが低い順に並べた表の先頭10行,末尾5行,全行を表示する. 保存されている行順で表示する場合は--no-sortを指定する.表示行数の指定とも併用できる.

cryspy-print ./data/pkl_data/rslt_data.pkl --no-sort --head 10

EA-vcの結果を組成で絞り込み

cryspy-print ./data/pkl_data/rslt_data.pkl -c 1 2 --head 10

atypeの順で組成比が1:2の構造に絞り込み,エネルギーが低い順に先頭10行を表示する. 原子数が(1, 2),(2, 4)など,比が等しい構造が対象となる. 元素数と同じ数の非負整数を指定し,少なくとも1つは正の整数にする. このオプションには,Num_atom列を持つEA-vcの結果が必要.該当する構造がない場合はその旨を表示する.

具体的な表示結果は,チュートリアル > EA-vc > 結果の確認 > 組成を指定して結果を確認を参照.

gzip圧縮したファイルの確認

cryspy-print ./data/pkl_data/rslt_data.pkl.gz --head 10

展開せずに読み込める.他の対応ファイルも同様にgzip圧縮したまま指定できる.

結果ファイルの再出力

cryspy.inがある実行ディレクトリで,次のように実行する.

cryspy-print ./data/pkl_data/rslt_data.pkl --write

以下のファイルを再出力する.既存のファイルは上書きされる.

  • ./data/cryspy_rslt:保存されている行順の結果表.
  • ./data/cryspy_rslt_energy_asc:Ef_eV_atom(列がなければE_eV_atom)の昇順の結果表.

出力先はコマンドを実行したディレクトリのdata/で,このディレクトリが必要. 実行内容はlog_cryspyにも記録される.

cryspy-extract-struc

最終更新日:2026年10月16日

cryspy-extract-struc コマンド

v1.5.0以降では,cryspy-extract-strucコマンドでinit_struc_data.pklやopt_struc_data.pklから構造を抽出し,cifファイルとして保存できる. CrySPY Utilityのextract_struc.pyをCrySPYに組み込んだコマンド.ファイル出力せず,構造情報を画面に表示することもできる.

実行方法とオプション

cryspy-extract-struc infile [options]

入力ファイルは相対パスまたは絶対パスで指定できる.cifファイルはコマンドを実行したディレクトリに保存される. -i,-a,-tのいずれか1つを指定する.これらは併用できない.

引数・オプション説明
infile構造データのpickleファイル.init_struc_data.pkl,opt_struc_data.pklなど.gzip圧縮したファイルも読み込み可能.
-i INDEX [INDEX ...], --index INDEX [INDEX ...]抽出する構造IDを指定する.複数指定可能.
-a, --all_id入力ファイル内の全構造を抽出する.
-t TOP, --top TOPrslt_data.pklのE_eV_atomが低い順に,指定した構造数を抽出する.
-p, --printcifを出力せず,構造情報を画面に表示する.
-r, --rank-tと併用し,出力ファイル名の先頭に順位を付ける.
-s, --symmetrized対称性情報付きのcifを出力する.
--tolerance TOLERANCE-sで対称性を判定する際の許容値.デフォルトは0.01.
-h, --helpヘルプを表示する.

使用例

構造IDを指定して抽出

cryspy-extract-struc ./data/pkl_data/opt_struc_data.pkl -i 0 1

構造IDが0,1の構造を,カレントディレクトリの0.cif,1.cifに保存する.存在しないIDは警告を出してスキップする.

cryspy-extract-struc ./data/pkl_data/opt_struc_data.pkl -i 0 1 -p

-pを付けると,cifファイルを作成せず,構造IDと構造情報を画面に表示する.

エネルギー上位の構造を抽出

cryspy-extract-struc ./data/pkl_data/opt_struc_data.pkl -t 3

エネルギーが低い順に3構造を抽出する.入力ファイルと同じディレクトリにrslt_data.pklが必要. 出力ファイル名は{ID}.cifとなる.

-rも指定すると,順位を含む{rank}_{ID}.cifとなる.順位は1から始まる.

cryspy-extract-struc ./data/pkl_data/opt_struc_data.pkl -t 3 -r

全構造を抽出

cryspy-extract-struc ./data/pkl_data/init_struc_data.pkl -a

全初期構造を{ID}.cifとして保存する.

対称性情報付きで出力

cryspy-extract-struc ./data/pkl_data/opt_struc_data.pkl -i 0 1 -s --tolerance 0.01

-sを付けると,空間群などの対称性情報を含むcifを出力する.--toleranceは省略可能. 対称性情報を付ける際に,セルの表現や原子数が変わる場合がある.

gzip圧縮したファイルから抽出

cryspy-extract-struc ./data/pkl_data/opt_struc_data.pkl.gz -i 0 1

gzip圧縮した構造データは,展開せずに読み込める.-a,-t,-p,-sなども同様に使用できる. -tを使う場合は,圧縮した入力ファイルと同じディレクトリにrslt_data.pklを置く.