Chiral Space Groups
The AFLOW prototype label is designed to show the stoichiometry of the crystal structure, the shape and number of atoms in the unit cell, the structure's space group, and the distribution of each type of atom in the crystal. In this tutorial we'll look at each of these parts, show how to put them together in a consistent manner, and then use the prototype label to construct input files to run the latest AFLOW code (Divilov, 2025) or to use in another electronic structure program.
Let's take apart a prototype label and look at the
individual pieces. (The complete prototype label protocol
was originally explained in Eckert, 2024.)
Rather than looking at something as simple as copper or as
complex as
Ti6F27(H3O)3,
we'll look at an intermediate structure,
K2AgSbS4, shown
in Fig. 3. If we look
at the page
for this structure in the Encyclopedia, we find that it
has:
AB2C4D
.
oP32
. If we look
ahead to the space group, we find that #34
is Pnn2, which has
a simple
(the P
in the symbol) orthorhombic
(the o
) lattice. Adding up all the
numbers in the Wyckoff positions we come up
with 32
atoms per unit cell. This gives
the symbol
oP32
.
34
.
Symbol | Name | Wyckoff Positions | AFLOW String |
---|---|---|---|
Ag | Silver | (2a) (2b) | a |
K | Potassium | (2a) (2b) (4c) | ab |
S | Sulfur | Four (4c) sites | 4c |
Sb | Antimony | (4c) | c |
2a
→ a
. We do have to account for the same
atom being on multiple sites with the same Wyckoff position.
Here there are four unique (4c) Wyckoff sites for sulfur.
We indicate this by putting a 4 in front of the c.
We separate the atomic species by underscores, so the
complete Wyckoff string is a_ab_4c_c
.
AB2C4D
oP32
32
a_ab_4c_c
AB2C4D_oP32_34_ab_abc_4c_c
.
The only problem with this label is that
the Encyclopedia
uses AB2C4D_oP32_34_ab_abc_4c_c-001
rather
than AB2C4D_oP32_34_ab_abc_4c_c
as the label
for K2AgSbS4. The -001
extension is there
because AB2C4D_oP32_34_ab_abc_4c_c
could
conceivably describe a completely different structure.
This is most easily shown by a different
label, A_oC8_64_f
, which is shared by three
structures: α-gallium
(Fig. 4),
black phosphorous
(Fig. 5),
and crystallized molecular
iodine (Fig. 6).
A_oC8_64_f
label, as it
tells us a lot about the structure. The somewhat
unsatisfactory answer is to add a three digit extension to
the code, with the number arbitrarily chosen.
There are many labels with multiple entries. The worst case
we have found so far is ABC_oP12_62_c_c_c
where
the extension goes from -001
to -017
*.
If a publication has provided a structure file† in the form of a Crystallographic Information FILE (CIF) or the structure file for an electronic structure code, we can let AFLOW determine the label. For example, we can download the Encyclopedia CIF for K2AgSbS4 from the link
https://www.aflow.org/prototype-encyclopedia/AB2C4D_oP32_34_ab_abc_4c_c-001/aflow.cif
https://www.aflow.org/prototype-encyclopedia/AB2C4D_oP32_34_ab_abc_4c_c-001
CIF Output
”.
If the structure you want isn't in AFLOW, and the authors have not provided a structure file, you may still be able to get a CIF:
The CIF for a given structure might also be available elsewhere. Our Crystallographic Information File lists some sources, some of which are free.
Once you have a CIF or another geometry file, feed it into AFLOW with the command
$ aflow --prototype --print_element_names < K2AgSbS4.cif
AFLOW label : AB2C4D_oP32_34_ab_abc_4c_c
params :
a,b/a,c/a,z1,z2,z3,z4,x5,y5,z5,x6,y6,z6,x7,y7,z7,x8,y8,z8,x9,y9,z9,x10,y10,z10
params values : 10.348, 1.01681, 0.767878, 0.9519, 0.448,
0.2249, 0.758, 0.2468, 0.2349, 0.948, 0.55, 0.7051,
0.2672, 0.7104, 0.5518, 0.6322, 0.9238, 0.7208, 0.3037,
0.7201, 0.9228, 0.5872, 0.7272, 0.7254, 0.4485
element names : Ag,K,S,Sb
which not only shows you the label, but also the
elements and geometric information for the structure, with
the values a, b, c, z1, … corresponding to the
coordinates found in
the Encyclopedia
page for K2AgSbS4.
The AFLOW prototype label is the key to using AFLOW. Once we have the label we can use it to print out a CIF or the geometry file needed to run an electronic structure code and use it to to see the crystal structure. We can also modify the structure by changing the elements or the geometric input parameters. We can even set up an AFLOW input file to do a full calculation of electronic properties.
AB_cF8_225_a_b-001
‡
as an example. We can get a POSCAR
(VASP) input file using the default
command:
$
§
where the
ClNa/AB_cF8_225_a_b-001 params=-1 SG=225 …
-2.000000
0.00000000000000 0.50000000000000 0.50000000000000
0.50000000000000 0.00000000000000 0.50000000000000
0.50000000000000 0.50000000000000 0.00000000000000
1 1
Direct(2) [A1B1]
0.00000000000000 0.00000000000000 0.00000000000000 A
0.50000000000000 0.50000000000000 0.50000000000000 B
params=-1
means “use what's
in the AFLOW database.”
(we truncated the first line of the output).
This is rather generic, so let's decorate it with atomic species:
$
where AFLOW picks the volume of the unit cell (58.2Å)
using Vegard's
Law.
ClNa/AB_cF8_225_a_b-001 params=-1 SG=225 …
-58.208200
0.00000000000000 0.50000000000000 0.50000000000000
0.50000000000000 0.00000000000000 0.50000000000000
0.50000000000000 0.50000000000000 0.00000000000000
1 1
Direct(2) [A1B1]
0.00000000000000 0.00000000000000 0.00000000000000 Cl
0.50000000000000 0.50000000000000 0.50000000000000 Na
If we instead want to use the experimental
lattice constant for table
salt, the NaCl web
page gives it as 5.639Å. We can add this to AFLOW
using the --params
flag:
If you want input for another electronic structure
program, tags such
as
$
ClNa/AB_cF8_225_a_b-001 params=5.639 SG=225 …
1.000000
0.00000000000000 2.81950000000000 2.81950000000000
2.81950000000000 0.00000000000000 2.81950000000000
2.81950000000000 2.81950000000000 0.00000000000000
1 1
Direct(2) [A1B1]
0.00000000000000 0.00000000000000 0.00000000000000 Cl
0.50000000000000 0.50000000000000 0.50000000000000 Na
--abinit
, --qe
,
and --elk
will give you the appropriate data.
If instead of electronic structure input you want a CIF, you
can use the command
which will also tell you everything you need to know
about the structure, albeit in 200+ lines.
$
Suppose you want to do a full electronic calculation for
NaCl, at another lattice constant, say 5.521Å. AFLOW
can set that up using the
command+
$
AFLOW V(4.0.5) creating
./AFLOWDATA/ClNa_sv/AB_cF8_225_a_b-001.AB:ANRL=421cf5e8d4a841cc62afc447c3a560ea/aflow.in
The aflow.in
file has all the information you
need to run the calculation, though you may want to throw in
more flags to refine it.
See the AFLOW
Schools tutorials,
the Encyclopedia Tutorials,
and the README
files in
the AFLOW
source code for more information.
Now we know how to construct an AFLOW label using a published crystal structure. That might not be the label that AFLOW wants to use. That's because different sets of Wyckoff positions can describe the same crystal structure, depending on where you put the crystal origin and how you orient the lattice in Cartesian space. Space group Pmmm #47 is perhaps the worst offender in this regard. It is an orthorhombic structure with no screw axes or glide planes. This allows us to rename the axes in any order we want e.g., putting the shortest axis in the $\hat{x}$ direction and the longest in the $\hat{z}$ direction, or the middle axis in the $\hat{x}$ direction and the shortest in the $\hat{z}$ direction, or any other permutation. Each choice of axes changes the occupied Wyckoff positions of the structure. This is one reason why $Pmmm$ has 27 Wyckoff letters, the most of any space group.¶
Fig. 7 shows an example of this. YBa2Cu3O7-x, also known as (1212C), is a perovskite superconductor in space group $Pmmm$ #47. The original publication (David, 1987) places the longest axis in the $\hat{z}$ direction, while the Encyclopedia places it in the $\hat{x}$ direction. This gives the atoms completely different Wyckoff sites, as shown in this table:
Atom | (David, 1987) | Encyclopedia | ||
---|---|---|---|---|
Wyckoff Letter | Coordinates | Wyckoff Letter | Coordinates | |
O I | (1e) | (0,½,0) | (1a) | (0,0,0) |
Cu I | (1a) | (0,0,0) | (1c) | (0,0,½) |
Y I | (1h) | (½,½,½) | (1f) | (½,½,0) |
O II | (2r) | (0,½,z) | (2i) | (x,0,0) |
Cu II | (2q) | (0,0,z) | (2j) | (x,0,½) |
O III | (2q) | (0,0,z) | (2j) | (x,0,½) |
Ba I | (2t) | (½,½,z) | (2k) | (x,½,0) |
O IV | (2s) | (½,0,z) | (2l) | (x,½,½) |
There is also an origin shift, with the origin moving from the Cu I atom in the original publication to the O I atom in the Encyclopedia. As a result the AFLOW label, which we would naively think would be A2BC7D_oP13_47_t_aq_eqrs_h⁑ is now A2B3C7D_oP13_47_k_cj_aijl_f.
What's going on? There are six possible axes orientations in Pmmm, leading to six possible AFLOW labels for YBa2Cu3O7-x. In addition, all of the first eight Wyckoff positions in Pmmm have the full mmm symmetry of the lattice so we can use any of them as the origin, giving 6 × 8 = 48 possible labels. For programming ease we would like to fix settle on one label per AFLOW prototype. To do that, we standardize the labels by defining the AFLOW Prototype Label Protocol. This updates the original AFLOW label construction method described above.
If done by hand this would be a lot of work for a label as
complicated as the one for
YBa2Cu3O7-x, but
fortunately AFLOW does it automatically, and you can see the
result using the aflow --prototype
command.
Given a structural reference we can often find a CIF or a POSCAR file that represents the structure in the literature♦, but sometimes we can't, especially with older literature and with computational predictions. In that case we can use AFLOW to produce a CIF or POSCAR from the published data.
As an example, let's look at YBa2Cu3O7-x again, starting with the original publication of (David, 1987). When this was published CIFs did not exist. Fortunately we now have a CIF for this structure, so we can check our work.
Table 1 of (David, 1987) gives all the crystallographic information needed for YBa2Cu3O7-x. We produce this below:
Atom Number | Atom | Wyckoff Letter | x | y | z |
---|---|---|---|---|---|
1 | Cu I | (1a) | 0 | 0 | 0 |
2 | O I | (1e) | 0 | ½ | 0 |
3 | Y I | (1h) | ½ | ½ | ½ |
4 | Cu II | (2q) | 0 | 0 | 0.3554 |
5 | O II | (2q) | 0 | 0 | 0.1579 |
6 | O III | (2r) | 0 | ½ | 0.3771 |
7 | O IV | (2s) | ½ | 0 | 0.3788 |
8 | Ba I | (2t) | ½ | ½ | 0.1844 |
We'll use the published Wyckoff positions rather than the rotated AFLOW positions. That's a lot easier, since there are 48 possible orientations plus origin choices and we can let AFLOW find the standard orientation when we're done.
The next thing to notice is that we reordered the structure. Now the structure is ordered by
To get all of this into AFLOW, we enter all of the data in the format
a,b/a,c/a,x1,y1,z1,
x2,y2,z2,
x3,y3,z3, …
In this particular case all of the values of zero and ½ are fixed, so we need to enter the values
a,b/a,c/a,z4,z5,z6,z7,z8
--params
string. Combined with the AFLOW label, Pearson symbol,
space group and composition we have
$ aflow --proto=A2B3C7D_oP13_47_t_aq_eqrs_h:Ba:Cu:O:Y --params=3.8187,1.01692,3.05567,0.3554,0.1579,0.3771,0.3788,0.1844
By default, this gives the output as a POSCAR
file:
BaCuOY/A2B3C7D_oP13_47_t_aq_eqrs_h.ABCD params=3.8187,1.01692,3.05567,0.3554,0.1579,0.3771,0.3788,0.1844 SG=47 …
1.000000
3.81870000000000 0.00000000000000 0.00000000000000
0.00000000000000 3.88331240400000 0.00000000000000
0.00000000000000 0.00000000000000 11.66868702900000
2 3 7 1
Direct(13) [A2B3C7D1]
0.50000000000000 0.50000000000000 0.18440000000000 Ba
0.50000000000000 0.50000000000000 0.81560000000000 Ba
0.00000000000000 0.00000000000000 0.00000000000000 Cu
0.00000000000000 0.00000000000000 0.35540000000000 Cu
0.00000000000000 0.00000000000000 0.64460000000000 Cu
0.00000000000000 0.50000000000000 0.00000000000000 O
0.00000000000000 0.00000000000000 0.15790000000000 O
0.00000000000000 0.00000000000000 0.84210000000000 O
0.00000000000000 0.50000000000000 0.37710000000000 O
0.00000000000000 0.50000000000000 0.62290000000000 O
0.50000000000000 0.00000000000000 0.37880000000000 O
0.50000000000000 0.00000000000000 0.62120000000000 O
0.50000000000000 0.50000000000000 0.50000000000000 Y
This gives the structure in the published coordinates. If,
however, we ask for a CIF file,
$ aflow --proto=A2B3C7D_oP13_47_t_aq_eqrs_h:Ba:Cu:O:Y --params=3.8187,1.01692,3.05567,0.3554,0.1579,0.3771,0.3788,0.1844 --cif
we get a 42 line file which you can
download here
as aflow.cif
. If
we look at the relevant parts of the CIF we find the lattice
constants⁌
_cell_length_a 11.6686870290
_cell_length_b 3.8187000000
_cell_length_c 3.8833124040
and the Wyckoff positions
Ba1 1.0000000000 0.8156000000 0.5000000000 0.0000000000
Biso 1.0 Ba 2 k
Cu2 1.0000000000 0.0000000000 0.0000000000 0.5000000000
Biso 1.0 Cu 1 c
Cu3 1.0000000000 0.6446000000 0.0000000000 0.5000000000
Biso 1.0 Cu 2 j
O4 1.0000000000 0.0000000000 0.0000000000 0.0000000000
Biso 1.0 O 1 a
O5 1.0000000000 0.8421000000 0.0000000000 0.5000000000
Biso 1.0 O 2 j
O6 1.0000000000 0.6229000000 0.0000000000 0.0000000000
Biso 1.0 O 2 i
O7 1.0000000000 0.6212000000 0.5000000000 0.5000000000
Biso 1.0 O 2 l
Y8 1.0000000000 0.5000000000 0.5000000000 0.0000000000
Biso 1.0 Y 1 f
This is obviously the preferred AFLOW orientation.
The structures are equivalent, as you can see by running the
commands
and
$
both of which produce the result
$
Alternatively, you can let AFLOW do the comparison
AFLOW label : A2B3C7D_oP13_47_k_cj_aijl_f
params : a,b/a,c/a,x4,x5,x6,x7,x8
params values : 11.6687,0.32726,0.332796,0.6229,0.6446,0.8421,0.8156,0.6212
which produces a lot of information ending with
$
with the value
CCCCC COMPLETE compare::compareInputStructures():
4.44089e-16 : MATCH -
[dir=/var/www/html/Encyclopedia/Tutorials/AFLOW_Prototype_Label/DATA/]
- [user=mike] - [host=mycroft] - [PID=403003] - [date=Sat
Jul 26 17:23:16 2025] -
[/home/runner/_work/AFLOW4/AFLOW4/src/modules/COMPARE/aflow_compare_structure.cpp:485]
4.44089e-16
indicating that the
structures are identical.
In this tutorial we've explained the construction of the AFLOW Prototype Label, how to use it to construct a Crystallographic Information File or an electronic structure input, and looked at the protocol we use to construct a “standard” label. If you've got any questions, please contact us.
* At the moment (summer 2025) only two of these entries are in the Encyclopedia, but all seventeen are available in the AFLOW database. Space group Pnma #62 has more inorganic crystal structures than any other high symmetry (orthorhombic and above) space group and only four Wyckoff positions, so there are many labels with large extensions.
† As they should.
‼ The CCDC only allows a limited number
of downloads per day for non-subscribers, so use this
sparingly. In addition, some CCDC CIFs are not compatible
with AFLOW, although they can usually be edited to work if
you know the proper format — compare the CCDC CIF to
an AFLOW CIF from the same space group.
Or write to the authors of the paper and ask for a
structure file. If enough readers do this consistently
maybe authors will always include a structure file in
their paper's supplementary information.
‡ For historic reasons the
tag AB_cF8_225_a_b
,
without the extension, will work here. Each structural
entry in the Encyclopedia will tell you which
labels will work with a given structure.
+ There is a big difference
between --proto
and --aflow_proto
.
¶ The 27th site is represented
by A
.
⁑ This was the original label in the Encyclopedia. As with all of the legacy labels you can still access this structure using that label.
♦ Some repositories which make CIF files available are listed in our Crystallographic Information File page.
⁌ The exact values of the lattice constants
are different because of the precision used when we
set values for b/a
and c/a
to
constructed the CIF.
This is a list of resources mentioned in the text: