Idealised Rock-Salt Structure — Crystallographic CIF (.cif)
A single-data-block CIF describing an idealised rock-salt lattice: cell parameters, space group, a symmetry-operation loop and an atom-site loop with fractional coordinates and occupancies. The '?' in the temperature field is CIF's marker for unknown, which is not the same as an empty value.
data_rock_salt_idealised
_audit_creation_method 'Novus Examples synthetic fixture'
_chemical_name_common 'idealised rock-salt structure model'
_chemical_formula_sum 'Cl1 Na1'
_chemical_formula_weight 58.44
_cell_length_a 5.64020
_cell_length_b 5.64020
_cell_length_c 5.64020
_cell_angle_alpha 90.0000
_cell_angle_beta 90.0000
_cell_angle_gamma 90.0000
_cell_volume 179.426
_cell_formula_units_Z 4
_space_group_name_H-M_alt 'F m -3 m'
_space_group_IT_number 225
_diffrn_ambient_temperature ?
loop_
_space_group_symop_operation_xyz
'x, y, z'
'-x, -y, z'
'-x, y, -z'
'x, -y, -z'
'z, x, y'
'y, z, x'
loop_
_atom_site_label
_atom_site_type_symbol
_atom_site_fract_x
_atom_site_fract_y
_atom_site_fract_z
_atom_site_occupancy
_atom_site_U_iso_or_equiv
Na1 Na 0.00000 0.00000 0.00000 1.000 0.01500
Cl1 Cl 0.50000 0.00000 0.00000 1.000 0.01500
# This is a textbook lattice model, not a refined experimental structure.
Specifications
- Format
- CIF 1.1
- Data Blocks
- 1
- Loops
- 2
- Atom Sites
- 2
- Symmetry Operations
- 6
- Cell Length Angstrom
- 5.6402
- Space Group Number
- 225
- Unknown Value Marker
- ?
- Idealised Model
- true
Testing contract
Expected to pass- Scenario
- Parse the data block, both loops, and the tags with and without values, then compute the cell volume from a, b and c.
- Expected result
- Two loops resolve with six symmetry operations and two atom sites, the computed volume matches the declared 179.426 cubic angstrom, and _diffrn_ambient_temperature reads as unknown rather than as the literal string '?'.
What is a .cif file?
CIF (Crystallographic Information File) is the IUCr's standard text format for crystal structures. It is a tagged plain-text format in which `_data_name value` pairs and `loop_` blocks carry unit-cell parameters, symmetry operations, atom sites with fractional coordinates and occupancies, and full experimental provenance. mmCIF, its macromolecular profile, is now the archival format of the Protein Data Bank.
How to use this file
Use an example .cif file to test crystallography parsers and structure viewers, exercising loop_ construct handling, quoted and multi-line semicolon-delimited values, and the reconstruction of Cartesian coordinates from fractional ones and the cell parameters.
How to use this file for testing
“Idealised Rock-Salt Structure — Crystallographic CIF (.cif)” is a deterministic Novus Examples fixture for Scientific data, Editor testing. Citation catalogs (BibTeX, RIS), chemistry structures (MDL Molfile, PDB), and gridded binary data (NetCDF, FITS) — for testing reference managers, molecule viewers, and scientific-data loaders.
Documented properties for this file: CIF 1.1. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Scientific fixtures are small, valid, and fully synthetic — no real organism, patient, sample, or observation. Point your parser or loader at the file and check it reads the documented records, variables, or headers; binary formats ship a readable twin or metadata listing for comparison.
Related files
- molBenzene — Molfile V3000 Extended Connection Table (.mol)Benzene written in the V3000 extended format, where the legacy counts line reports zero atoms and the real counts live in an M V30 COUNTS record. A parser that trusts the old counts line reads an empty molecule and reports no error whatsoever.

- csvChemistry Fixture Molecule Index (.csv)One row per molecule used across the chemistry fixtures, with formula, molecular weight, SMILES and the atom and bond counts each file should yield. It is the oracle a cheminformatics toolkit can be scored against without needing a second toolkit to generate the answers.

- molEthanol — MDL Molfile V2000 (.mol)Ethanol as a V2000 molfile with fixed-column 3D coordinates, a nine-atom counts line and an eight-bond block. The column widths are part of the format rather than a convention, so it is a genuine test of fixed-width parsing rather than of whitespace splitting.

- sdfEthanol — SDfile With Data Fields (.sdf)An SDfile wrapping the identical ethanol molfile plus five tagged data fields and the mandatory $$$$ terminator. The property block syntax — a header line, a value and a blank line — is where SDfile parsers usually diverge from molfile parsers.

- smiEthanol — SMILES String (.smi)Ethanol as a single tab-delimited SMILES record, the most compressed member of this family: three heavy atoms with every hydrogen implicit and no geometry whatsoever. Round-tripping molfile to SMILES and back is the classic lossy conversion, and this pair is the reference for it.

- xyzEthanol — XYZ Cartesian Coordinates (.xyz)The same ethanol geometry in XYZ format: an atom count, a free-text comment line and one line of element and coordinates per atom. XYZ carries no connectivity at all, so converting to it from the molfile is a lossy operation that this pair makes measurable.

Generated by generation/scientific.py. Free for any use, no attribution required — license.