extract_struc.py
Script to extract structures from init_struc_data.pkl
or opt_struc_data.pkl
.
Output cif files.
One can specify structure ID(s) using -i
option.
Top k structures (the k most stable structures) can be extracted using -t
option.
-a
option is for outputting all the structures.
(note that many cif files will be output.)
Symmetrized cif files can be generated with -s
option.
Usage
usage: extract_struc.py [-h] [-a] [-i [INDEX ...]] [-t TOP] [-r] [-s] infile
positional arguments:
infile input file
options:
-h, --help show this help message and exit
-a, --all_id flag for all structures
-i [INDEX ...], --index [INDEX ...]
structure ID
-t TOP, --top TOP top k structures
-r, --rank flag for rank in file names
-s, --symmetrized flag for symmetrized structure
Examples
Structure ID
$ python3 extract_struc.py init_struc_data.pkl -i 7 10 12
7.cif
, 10.cif
, and 12.cif
are output.
For symmetrized cif,
$ python3 extract_struc.py init_struc_data.pkl -i 7 10 12 -s
Top k structures
rslt_data.pkl
is required in the same directory as the input.
Let us suppose a cryspy_rslt_energy_asc
file is as follows:
Spg_num Spg_sym Spg_num_opt Spg_sym_opt E_eV_atom Magmom Opt
9 110 I4_1cd 110 I4_1cd -1284.708037 NaN not_yet
16 4 P2_1 4 P2_1 -1284.693651 NaN done
97 92 P4_12_12 91 P4_122 -1284.692494 NaN done
8 57 Pbcm 57 Pbcm -1284.668504 NaN done
81 19 P2_12_12_1 19 P2_12_12_1 -1284.635684 NaN done
...
Top k(=3) structures can be extracted with:
$ python3 extract_struc.py ./data/pkl_data/opt_struc_data.pkl -t 3
In this example, rlst_data.pkl
must be in ./data/pkl_data/
.
9.cif
, 16.cif
, and 97.cif
are output.
The rank can be included in cif file names with -r
option:
$ python3 extract_struc.py ./data/pkl_data/opt_struc_data.pkl -t 3 -r
1_9.cif
, 2_16.cif
, and 3_97.cif
are output.
For symmetrized cif:
$ python3 extract_struc.py ./data/pkl_data/opt_struc_data.pkl -t 3 -rs
All the structures
You should make a directory.
$ mkdir init_cifs
$ cd init_cifs
$ python3 extract_struc.py init_struc_data.pkl -a
For symmetrized cif,
$ python3 extract_struc.py init_struc_data.pkl -as