Chemistry 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.
name,formula,molecular_weight_g_per_mol,smiles,heavy_atoms,total_atoms,bonds,in_this_library
methane,CH4,16.043,C,1,5,4,three-molecule-library.sdf
water,H2O,18.015,O,1,3,2,three-molecule-library.sdf
ethanol,C2H6O,46.069,CCO,3,9,8,ethanol.mol / .xyz / .sdf / .smi
benzene,C6H6,78.114,c1ccccc1,6,12,12,benzene-v3000.mol
sodium chloride,NaCl,58.440,[Na+].[Cl-],2,2,0,rock-salt-idealised.cif
Specifications
- Rows
- 5
- Columns
- 8
- Covers Formats
- mol, sdf, xyz, smi, cif
- Weight Source
- computed from standard atomic weights
- Usage
- an oracle for formula and atom-count extraction
Testing contract
Reference control- Scenario
- Extract the formula and atom count from every chemistry fixture with your toolkit and diff against this index.
- Expected result
- Each parsed file matches its row — ethanol gives C2H6O with 9 atoms and 8 bonds, benzene gives C6H6 with 12 atoms and 12 bonds — and the sodium chloride row reports zero bonds because the CIF has no connectivity.
What is a .csv file?
CSV (Comma-Separated Values) is a plain-text tabular format where rows are lines and fields are separated by commas, with quoting rules for values that contain delimiters, quotes, or newlines. It has no formal type system and depends on encoding and dialect conventions. It is the most portable format for tabular data exchange.
How to use this file
Use an example CSV to test parsers against quoting and embedded-delimiter edge cases, header handling, encoding detection, and import pipelines into databases or spreadsheets.
How to use this file for testing
“Chemistry Fixture Molecule Index (.csv)” is a deterministic Novus Examples fixture for Scientific data, Editor testing, Conversion 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: 5 rows · 8 columns. 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.
Code examples
import pandas as pd
df = pd.read_csv("molecule-index.csv")
print(df.head())
print(df.dtypes)Related files
- 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.

- csvDICOM-Shaped Dataset — Element Table Reference (.csv)Every element of the synthetic phantom dataset as tag, value representation, meaning and encoded length, in the ascending tag order the standard mandates. Diff a parser's element list against it to check both the ordering rule and the two different length encodings.

- fastaFASTA Contigs — One Line Per Record (.fasta)The same four contigs written one sequence per line rather than wrapped, which is how many pipelines emit FASTA and how many line-oriented parsers assume it always looks. Comparing against the wrapped twin proves a parser joins continuation lines instead of taking the first one.

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