CoolFace
Datasetpublic

UnidentifiedHidden/hexopyranose_stereoisomers

Hexopyranose Stereoisomers — DFT-Optimized Geometries This dataset contains DFT-optimized 3D geometries for all 32 stereoisomers of hexopyranose (OCC1OC(O)C(O)C(O)C1O), a six-membered sugar ring with 5 stereocenters. It is designed for benchmarking molecular embedding methods that require fine stereochemical discrimination, such as the Coulomb Matrix and Bag of Bonds representations. Background Hexopyranose has 5 stereocenters, yielding 2⁵ = 32 possible… See the full description on the dataset page: https://huggingface.co/datasets/UnidentifiedHidden/hexopyranose_stereoisomers.

sourceHugging Faceapache-2.0updated 5mo agoView on Hugging Face
0likes29downloads
Dataset Card

Hexopyranose Stereoisomers — DFT-Optimized Geometries

This dataset contains DFT-optimized 3D geometries for all 32 stereoisomers of hexopyranose (OCC1OC(O)C(O)C(O)C1O), a six-membered sugar ring with 5 stereocenters. It is designed for benchmarking molecular embedding methods that require fine stereochemical discrimination, such as the Coulomb Matrix and Bag of Bonds representations.


Background

Hexopyranose has 5 stereocenters, yielding 2⁵ = 32 possible stereoisomers. For each isomer, two chair conformations are possible (Chair1 and Chair2). All 64 structures were optimized at the DFT level and verified as true minima via frequency analysis.

Each stereoisomer is identified by a stereokey: a 5-character string encoding the R/S configuration at each stereocenter in order (e.g., rrrrr, srrss).


Level of Theory

All geometry optimizations and frequency analyses were performed using:

  • —Software: ORCA 6.1.1
  • —Functional: ωB97X-D4 (with D4 dispersion correction)
  • —Basis set: aug-cc-pVTZ
  • —Auxiliary basis: def2/J (resolution-of-identity approximation)
  • —Verification: Frequency analyses confirm zero imaginary frequencies for all structures (true minima on the potential energy surface)

Dataset Structure

Chair1/
  <stereokey>/
    <stereokey>.xyz    # Optimized geometry + ORCA energy
    <stereokey>.out    # Full ORCA output (frequencies, thermochemistry, etc.)
Chair2/
  <stereokey>/
    <stereokey>.xyz
    <stereokey>.out
MostStable/
  <stereokey>/
    <stereokey>.xyz    # XYZ for the lower-energy chair of each isomer
SUGAR_ESTEREO_32_with_energies.csv
SUGAR_STEREO_32nk.csv
  • —Chair1/ and Chair2/: both chair conformations for all 32 stereoisomers (64 XYZ + 64 ORCA output files)
  • —MostStable/: the lower-energy chair conformation for each stereoisomer (32 XYZ files), used for molecular embedding generation
  • —SUGAR_ESTEREO_32_with_energies.csv: summary table with SMILES, stereokey, Chair1/Chair2 energies (Hartree), and most-stable chair label
  • —SUGAR_STEREO_32nk.csv: SMILES only, without stereokeys — intended for RDKit conformer generation workflows

XYZ File Format

Each .xyz file follows the extended XYZ convention:

24
Coordinates from ORCA-job rrrrr E -687.665819867529
  C   -2.80225741879395   -1.59146840850874    0.02158094187525
  C   -1.27780248588288   -1.70679722144387   -0.10167694686301
  ...
  H   -3.52726095386958   -4.56801585823898    1.10600640056001

OC[C@H]1O[C@@H](O)[C@H](O)[C@H](O)[C@H]1O
  • —Line 1: number of atoms (always 24 for hexopyranose: 6C + 12H + 6O)
  • —Line 2: comment line with ORCA job name and total electronic energy in Hartree
  • —Lines 3–26: element symbol and Cartesian coordinates in Ångströms
  • —Last line: isomeric SMILES string encoding the stereochemistry

CSV Format

SUGAR_ESTEREO_32_with_energies.csv

ColumnDescription
smilesIsomeric SMILES string
Key5-character stereokey (e.g., rrrrr)
chair1Total electronic energy of Chair1 conformation (Hartree)
chair2Total electronic energy of Chair2 conformation (Hartree)
MostStableWhich chair is lower in energy: Chair1 or Chair2

SUGAR_STEREO_32nk.csv

ColumnDescription
smilesIsomeric SMILES string (no stereokey)

Usage Examples

Load the summary CSV with pandas

python
import pandas as pd

df = pd.read_csv("SUGAR_ESTEREO_32_with_energies.csv")
print(df.head())
#                                               smiles    Key       chair1       chair2 MostStable
# 0  OC[C@@H]1O[C@H](O)[C@H](O)[C@H](O)[C@@H]1O   srrss -687.658966 -687.662046     Chair2

Parse an XYZ file manually

python
def parse_xyz(filepath):
    with open(filepath) as f:
        lines = f.readlines()
    n_atoms = int(lines[0].strip())
    comment = lines[1].strip()
    energy = float(comment.split("E ")[-1])
    atoms, coords = [], []
    for line in lines[2:2 + n_atoms]:
        parts = line.split()
        atoms.append(parts[0])
        coords.append([float(x) for x in parts[1:4]])
    smiles = lines[2 + n_atoms].strip()
    return {"n_atoms": n_atoms, "energy_hartree": energy,
            "atoms": atoms, "coords": coords, "smiles": smiles}

data = parse_xyz("MostStable/rrrrr/rrrrr.xyz")
print(data["energy_hartree"])  # -687.665819867529
print(data["smiles"])          # OC[C@H]1O[C@@H](O)[C@H](O)[C@H](O)[C@H]1O

Load with ASE (Atomistic Simulation Environment)

python
from ase.io import read

mol = read("MostStable/rrrrr/rrrrr.xyz")
print(mol.get_chemical_symbols())  # ['C', 'C', 'C', ...]
print(mol.get_positions())         # Cartesian coordinates as numpy array

Generate Coulomb Matrix embedding with morehub / DScribe

python
from dscribe.descriptors import CoulombMatrix
from ase.io import read
import numpy as np

cm = CoulombMatrix(n_atoms_max=24)

mols = []
for key in df["Key"]:
    mol = read(f"MostStable/{key}/{key}.xyz")
    mols.append(mol)

embeddings = cm.create(mols)
print(embeddings.shape)  # (32, 576)

Responsible AI

  • —Synthetic data: all structures are computationally generated — no experimental measurements
  • —No personal data: the dataset contains no personal or sensitive information
  • —Limitations: gas-phase DFT only (no solvent effects); only chair conformations included; single molecular scaffold; not intended for large-scale ML training without augmentation
  • —License: Apache 2.0

Citation

This dataset is associated with a NeurIPS 2026 Evaluations & Datasets Track submission. Citation will be updated upon acceptance.