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?
1 Answer
The XYZ format provides a list of atoms with minimal content: element and coordinates. This is often not sufficient, so people need other formats. In particular, XYZ cannot describe a crystal -- it doesn't include unit cell parameters.
The PDB format was designed with proteins and nucleic acids is mind. The format is old (from 1970's) and popular, so sometimes it's used even for inorganic materials, but it's well fitted only for systems with the model>chain>residue>atom hierarchy. Additionally, the fixed column format imposes limitations: residue name can have up to 3 characters, chain name only a single character, atom number - 5 digits.
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
).
Some software developers designed own file formats for their programs. So we also have a number of software-specific formats. This is a natural thing.
-
3$\begingroup$ Wow GREAT answer! There's so much in there! It was a tough question because it was "open-ended" so I wasn't sure what the best way to answer it would be. Surely ZMAT and SMILES could have been in the title too, but you did a great job :) $\endgroup$ Commented May 11, 2020 at 23:13
-
1$\begingroup$ I can't help it, but this seems utterly relevant: xkcd-927. How Standards Proliferate (See: A/C chargers, character encodings, instant messaging, etc.) Situation: There are 14 competing standards. Cueball: 14?! Ridiculous! We need to develop one universal standard that covers everyone's use cases. Ponytail: Yeah! Soon: Situation: There are 15 competing standards. $\endgroup$ Commented May 12, 2020 at 20:33