Script to extract structures from init_struc_data.pkl or opt_struc_data.pkl.
This script can print stucture information and 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.
When outputting a symmetrized CIF file, you can also specify a tolerance with --tolerance.
Structure information is printed with -p.
If you use -p option, cif files are not output.
You can also read a gzipped file (e.g., opt_struc_data.pkl.gz).
Update History
2024 April 16: –tolerance option, gzip
2023 July 21: –print option
Usage
python3 extract_struc.py -h
or if you put the script in your PATH, you can omit python3
extract_struc.py -h
usage: extract_struc.py [-h][-p][-a][-i [INDEX ...]][-t TOP][-r][-s][--tolerance TOLERANCE] infile
positional arguments:
infile input file
options:
-h, --help show this help message and exit
-p, --print just print, e.g., extract_struc.py opt_struc_data.pkl -i 71012 -ps
-a, --all_id all structures, e.g., extract_struc.py opt_struc_data.pkl -as
-i [INDEX ...], --index [INDEX ...] structure ID, e.g., extract_struc.py opt_struc_data.pkl -i 71012 -s
-t TOP, --top TOP top k structures, e.g. (k = 3), extract_struc.py opt_struc_data.pkl -t 3 -s
-r, --rank add rank in file names, e.g., extract_struc.py opt_struc_data.pkl -t 3 -rs
-s, --symmetrized symmetrized structure, e.g., extract_struc.py opt_struc_data.pkl -i 71012 -s
--tolerance TOLERANCE
tolerance for symmetrization (default 0.01), e.g., extract_struc.py opt_struc_data.pkl -i 01 -s --tolerance 0.01
Examples
Print
The -p option can be used in combination with any option except for -s option.
extract_struc.py -p opt_struc_data.pkl -i 01
ID 0Full Formula (Na8 Cl8)Reduced Formula: NaCl
abc : 6.823618 6.823618 7.566454
angles: 90.000000 90.000000 96.650518
pbc : True True True
Sites (16)# SP a b c--- ---- -------- -------- --------
0 Na 0011 Na 00 0.5
2 Na 0.704707 0.295293 0.75
3 Na 0.295293 0.704707 0.25
4 Na 0.5 015 Na 0.5 0 0.5
6 Na 0 0.5 0.5
7 Na 0 0.5 08 Cl 0.5 0.5 09 Cl 0.5 0.5 0.5
10 Cl 0.484753 0.515247 0.75
11 Cl 0.515247 0.484753 0.25
12 Cl 0.828247 0.171753 0.851096
13 Cl 0.171753 0.828247 0.351096
14 Cl 0.828247 0.171753 0.648904
15 Cl 0.171753 0.828247 0.148904
ID 1Full Formula (Na8 Cl8)Reduced Formula: NaCl
abc : 8.145021 8.145021 4.324235
angles: 90.000000 90.000000 120.000000
pbc : True True True
Sites (16)# SP a b c--- ---- --------- --------- --------
0 Na 0.666667 0.333333 0.736206
1 Na 0.666667 0.333333 0.263794
2 Na 0.913147 0.086853 0.5
3 Na 0.913147 0.826295 0.5
4 Na 0.173705 0.086853 0.5
5 Na 0.77711 0.22289 06 Na 0.77711 0.55422 07 Na 0.44578 0.22289 08 Cl 0.027675 0.423376 0.5
9 Cl -0.423376 -0.395701 0.5
10 Cl 0.395701 -0.027675 0.5
11 Cl -0.423376 -0.027675 0.5
12 Cl 0.395701 0.423376 0.5
13 Cl 0.027675 -0.395701 0.5
14 Cl 0.333333 0.666667 0.5
15 Cl 000
Structure ID
extract_struc.py opt_struc_data.pkl -i 71012
7.cif, 10.cif, and 12.cif are output.
For symmetrized cif,
extract_struc.py opt_struc_data.pkl -i 71012 -s
2024 April 16 With the tolerance parameter (default 0.01)