# What are the differences between crystal structure file formats like CIF, XYZ, PDB etc.?

We come across many file formats like CIF, XYZ, PDB, INS, cc1, p1, POSCAR, FDF, struct etc. Why do we have so many file formats to store crystal structure information? Are they redundant? Can someone give a historical perspective and advantages/disadvantages of these file formats?

The CIF format is a narrowed down derivative of a format called STAR. Both are used only in structural sciences, although they provide a general syntax for storing any data, similarly to XML, JSON, YAML, TOML, etc (and CIF is older than XML!). Usually, CIF is used together with a dictionary (think XML schema). It was first used in the small molecule world. About 20 years ago it was adapted to be the successor of the PDB format, called mmCIF. mmCIF uses CIF 1.1 syntax with a different dictionary. One visible difference is that mmCIF has dots in tags (_cell.length_a instead of _cell_length_a).